CN112291628A - 一种基于web浏览器的多线程视频解码播放方法 - Google Patents

一种基于web浏览器的多线程视频解码播放方法 Download PDF

Info

Publication number
CN112291628A
CN112291628A CN202011335477.7A CN202011335477A CN112291628A CN 112291628 A CN112291628 A CN 112291628A CN 202011335477 A CN202011335477 A CN 202011335477A CN 112291628 A CN112291628 A CN 112291628A
Authority
CN
China
Prior art keywords
thread
decoding
video
idle
method based
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011335477.7A
Other languages
English (en)
Inventor
杨净
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Shidong Technology Co ltd
Original Assignee
Hangzhou Shidong Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Shidong Technology Co ltd filed Critical Hangzhou Shidong Technology Co ltd
Priority to CN202011335477.7A priority Critical patent/CN112291628A/zh
Publication of CN112291628A publication Critical patent/CN112291628A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4782Web browsing, e.g. WebTV
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明公开了一种基于web浏览器的多线程视频解码播放方法,包括以下步骤;步骤(1)、初始化解码线程,并将其置为空闲状态,线程数等于CPU核数,初始化顺序很重要,要先初始化worker线程,再初始化WebAssembly模块;步骤(2)、等待空闲线程;步骤(3)、浏览器主线程检查是否存在空闲线程,如果无空闲线程,则返回步骤(2),如果有的话进入下一步;步骤(4)、将GOP数据以消息形式通知给worker线程;步骤(5)、worker线程利用WebAssembly技术,解码主线程发送过来的视频数据,将其解码为YUV格式;步骤(6)、将YUV数据以消息形式通知给worker线程。本发明可改善,浏览器用WebAssembly技术播放视频时,因为性能不足所产生的卡顿。

Description

一种基于web浏览器的多线程视频解码播放方法
技术领域
本发明涉及计算机软件技术领域,具体为一种基于web浏览器的多线程视频解码播放方法。
背景技术
目前要在浏览器端播放视频,一般首选通过HTML5所提供的默认音视频API来实现播放,但是这种方式只支持H.264/VP8/webm等有限格式,遇到播放HEVC等浏览器不默认支持的视频格式,一般采用浏览器插件或WebAssembly来实现视频解码,浏览器插件的方式,兼容性不好,各主流浏览器标准不一致。采用WebAssembly技术软解视频数据,虽然兼容性较好,但是存在性能低下的问题,播放视频易产生卡顿的现象,鉴于此,提出一种基于web浏览器的多线程视频解码播放方法。
发明内容
本发明的目的在于提供一种基于web浏览器的多线程视频解码播放方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于web浏览器的多线程视频解码播放方法,包括以下步骤;
步骤(1)、初始化解码线程,并将其置为空闲状态,线程数等于CPU核数,初始化顺序很重要,要先初始化worker线程,再初始化WebAssembly模块;
步骤(2)、等待空闲线程;
步骤(3)、浏览器主线程检查是否存在空闲线程,如果无空闲线程,则返回步骤(2),如果有的话进入下一步;
步骤(4)、将GOP数据以消息形式通知给worker线程;
步骤(5)、worker线程利用WebAssembly技术,解码主线程发送过来的视频数据,将其解码为YUV格式;
步骤(6)、将YUV数据以消息形式通知给worker线程;
步骤(7)、由于是多线程并行解码,主线程收到YUV数据的顺序为乱序,故需要按照播放顺序进行排序;
步骤(8)、将排序后的YUV数据,按规定时间渲染到屏幕上。
优选的,步骤(1)中,初始化webassembly模块时,配置子线程调用webassembly解码模块的函数,获取音频和视频数据的配置信息。
优选的,步骤(5)中,加载webassembly解码模块时,通过回调函数的形式通知播放环境已具备,播放环境已具备的表现形式采用自动播放或播放按钮变更为可用状态。
本发明提出的一种基于web浏览器的多线程视频解码播放方法,有益效果在于:本发明可改善,浏览器用WebAssembly技术播放视频时,因为性能不足所产生的卡顿。
附图说明
图1为本发明所述一种基于web浏览器的多线程视频解码播放方法的原理流程图;
图2为本发明所述所述一种基于web浏览器的多线程视频解码播放方法的原理框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-2,本发明提供一种技术方案:一种基于web浏览器的多线程视频解码播放方法,包括以下步骤;步骤(1)、初始化解码线程,并将其置为空闲状态,线程数等于CPU核数,初始化顺序很重要,要先初始化worker线程,再初始化WebAssembly模块,初始化webassembly模块时,配置子线程调用webassembly解码模块的函数,获取音频和视频数据的配置信息;步骤(2)、等待空闲线程;步骤(3)、浏览器主线程检查是否存在空闲线程,如果无空闲线程,则返回步骤(2),如果有的话进入下一步;步骤(4)、将GOP数据以消息形式通知给worker线程;步骤(5)、worker线程利用WebAssembly技术,解码主线程发送过来的视频数据,将其解码为YUV格式,加载webassembly解码模块时,通过回调函数的形式通知播放环境已具备,播放环境已具备的表现形式采用自动播放或播放按钮变更为可用状态;步骤(6)、将YUV数据以消息形式通知给worker线程;步骤(7)、由于是多线程并行解码,主线程收到YUV数据的顺序为乱序,故需要按照播放顺序进行排序;步骤(8)、将排序后的YUV数据,按规定时间渲染到屏幕上。
通过多线程来对整个解码流程进行优化,使解码动作得以并行,从而提高视频播放整体流畅度,WebAssembly本身支持多线程,但是其兼容性较差,不能完全适配主流浏览器,因此采用JavaScript的worker线程,来实现对浏览器多线程的支持;
多线程解码采用的策略为,以GOP为单位的帧间多线程解码,主线程以GOP为单位,对缓存的视频数据进行分发,给负责解码的worker线程传递视频数据,解码线程的数量取决于系统CPU的核数,解码线程使用WebAssembly技术进行软解,将软解出来的YUV数据传递给主线程,主线程对这些YUV数据依照原始视频的时间顺序进行排序,然后渲染到屏幕上,由于解码动作由串行化为了并行,所以在单位时间内,多核CPU上能解码的帧数会变多,从而可以提高解码效率,减少卡顿。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (3)

1.一种基于web浏览器的多线程视频解码播放方法,其特征在于:包括以下步骤;
步骤(1)、初始化解码线程,并将其置为空闲状态,线程数等于CPU核数,初始化顺序很重要,要先初始化worker线程,再初始化WebAssembly模块;
步骤(2)、等待空闲线程;
步骤(3)、浏览器主线程检查是否存在空闲线程,如果无空闲线程,则返回步骤(2),如果有的话进入下一步;
步骤(4)、将GOP数据以消息形式通知给worker线程;
步骤(5)、worker线程利用WebAssembly技术,解码主线程发送过来的视频数据,将其解码为YUV格式;
步骤(6)、将YUV数据以消息形式通知给worker线程;
步骤(7)、由于是多线程并行解码,主线程收到YUV数据的顺序为乱序,故需要按照播放顺序进行排序;
步骤(8)、将排序后的YUV数据,按规定时间渲染到屏幕上。
2.根据权利要求1所述的一种基于web浏览器的多线程视频解码播放方法,其特征在于:步骤(1)中,初始化webassembly模块时,配置子线程调用webassembly解码模块的函数,获取音频和视频数据的配置信息。
3.根据权利要求1所述的一种基于web浏览器的多线程视频解码播放方法,其特征在于:步骤(5)中,加载webassembly解码模块时,通过回调函数的形式通知播放环境已具备,播放环境已具备的表现形式采用自动播放或播放按钮变更为可用状态。
CN202011335477.7A 2020-11-25 2020-11-25 一种基于web浏览器的多线程视频解码播放方法 Pending CN112291628A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011335477.7A CN112291628A (zh) 2020-11-25 2020-11-25 一种基于web浏览器的多线程视频解码播放方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011335477.7A CN112291628A (zh) 2020-11-25 2020-11-25 一种基于web浏览器的多线程视频解码播放方法

Publications (1)

Publication Number Publication Date
CN112291628A true CN112291628A (zh) 2021-01-29

Family

ID=74425384

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011335477.7A Pending CN112291628A (zh) 2020-11-25 2020-11-25 一种基于web浏览器的多线程视频解码播放方法

Country Status (1)

Country Link
CN (1) CN112291628A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113395523A (zh) * 2021-06-11 2021-09-14 深圳市斯博科技有限公司 基于并行线程的图像解码方法、装置、设备及存储介质
CN114845162A (zh) * 2021-02-01 2022-08-02 北京字节跳动网络技术有限公司 视频播放方法、装置、电子设备及存储介质
CN115243102A (zh) * 2022-09-21 2022-10-25 天讯瑞达通信技术有限公司 基于Web技术的视频播放方法、装置、设备以及存储介质
WO2023273360A1 (zh) * 2021-06-29 2023-01-05 稿定(厦门)科技有限公司 一种基于浏览器的实时音频处理方法、系统、储存装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110198479A (zh) * 2019-05-24 2019-09-03 浪潮软件集团有限公司 一种基于webassembly的浏览器音视频解码播放方法
US20200252413A1 (en) * 2019-02-04 2020-08-06 Cloudflare, Inc. Remoting application across a network using draw commands with an isolator application
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN111881401A (zh) * 2020-08-04 2020-11-03 浪潮云信息技术股份公司 基于WebAssembly的浏览器深度学习方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200252413A1 (en) * 2019-02-04 2020-08-06 Cloudflare, Inc. Remoting application across a network using draw commands with an isolator application
CN110198479A (zh) * 2019-05-24 2019-09-03 浪潮软件集团有限公司 一种基于webassembly的浏览器音视频解码播放方法
CN111641838A (zh) * 2020-05-13 2020-09-08 深圳市商汤科技有限公司 一种浏览器视频播放方法、装置以及计算机存储介质
CN111881401A (zh) * 2020-08-04 2020-11-03 浪潮云信息技术股份公司 基于WebAssembly的浏览器深度学习方法及系统

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114845162A (zh) * 2021-02-01 2022-08-02 北京字节跳动网络技术有限公司 视频播放方法、装置、电子设备及存储介质
CN114845162B (zh) * 2021-02-01 2024-04-02 北京字节跳动网络技术有限公司 视频播放方法、装置、电子设备及存储介质
CN113395523A (zh) * 2021-06-11 2021-09-14 深圳市斯博科技有限公司 基于并行线程的图像解码方法、装置、设备及存储介质
WO2023273360A1 (zh) * 2021-06-29 2023-01-05 稿定(厦门)科技有限公司 一种基于浏览器的实时音频处理方法、系统、储存装置
CN115243102A (zh) * 2022-09-21 2022-10-25 天讯瑞达通信技术有限公司 基于Web技术的视频播放方法、装置、设备以及存储介质
CN115243102B (zh) * 2022-09-21 2023-02-28 天讯瑞达通信技术有限公司 基于Web技术的视频播放方法、装置、设备以及存储介质

Similar Documents

Publication Publication Date Title
CN112291628A (zh) 一种基于web浏览器的多线程视频解码播放方法
US11706483B2 (en) Video playing method and apparatus, and electronic device
CN110557670B (zh) 在网页页面中播放视频的方法、装置、终端和存储介质
CN111641838A (zh) 一种浏览器视频播放方法、装置以及计算机存储介质
CN112422508A (zh) 一种在浏览器网页中播放视频的方法及系统
CN103475927B (zh) 在线视频实时变速播放方法及系统
CN111355976B (zh) 一种基于hevc标准的视频直播方法及系统
JP2001346205A (ja) 信号の誤りを隠蔽する方法
CN103747317A (zh) 一种播放库在不稳定网络下的流畅播放控制方法
CN104780422A (zh) 流媒体播放方法及流媒体播放器
US20110122954A1 (en) Decoding Interdependent Frames of a Video Display
CN101277381A (zh) 一种视频图像处理方法及装置
CN105187895A (zh) 针对移动平台硬件加速播放视频的数据缓存方法及系统
CN109348279A (zh) 一种推流方法、装置、设备及存储介质
CN112653904B (zh) 一种基于pts与dts修改的快速视频裁剪方法
CN103078810A (zh) 一种高效率富媒体展现系统和方法
CN109151571B (zh) 数字电视中基于GStreamer框架的流媒体播放器提升画质的方法
US7751687B2 (en) Data processing apparatus, data processing method, data processing system, program, and storage medium
CN104023260A (zh) 硬件解码实现方法、装置及播放器
CN112637660A (zh) 一种安卓电视视频应用起播的图像稳定方法
CN112203097A (zh) 一种自适应视频解码方法、装置,终端设备及存储介质
CN115914745A (zh) 视频的解码方法、装置、电子设备及计算机可读介质
CN115225615B (zh) 虚幻引擎像素流送方法及装置
CN109218809B (zh) 一种流媒体的播放方法和装置
CN112019858B (zh) 一种视频播放方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210129