[發明專利]一種基于web瀏覽器的多線程視頻解碼播放方法在審
| 申請號: | 202011335477.7 | 申請日: | 2020-11-25 |
| 公開(公告)號: | CN112291628A | 公開(公告)日: | 2021-01-29 |
| 發明(設計)人: | 楊凈 | 申請(專利權)人: | 杭州視洞科技有限公司 |
| 主分類號: | H04N21/4782 | 分類號: | H04N21/4782;H04N21/426;H04N21/443;H04N21/4402 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 310012 浙江省杭州市*** | 國省代碼: | 浙江;33 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 web 瀏覽器 多線程 視頻 解碼 播放 方法 | ||
本發明公開了一種基于web瀏覽器的多線程視頻解碼播放方法,包括以下步驟;步驟(1)、初始化解碼線程,并將其置為空閑狀態,線程數等于CPU核數,初始化順序很重要,要先初始化worker線程,再初始化WebAssembly模塊;步驟(2)、等待空閑線程;步驟(3)、瀏覽器主線程檢查是否存在空閑線程,如果無空閑線程,則返回步驟(2),如果有的話進入下一步;步驟(4)、將GOP數據以消息形式通知給worker線程;步驟(5)、worker線程利用WebAssembly技術,解碼主線程發送過來的視頻數據,將其解碼為YUV格式;步驟(6)、將YUV數據以消息形式通知給worker線程。本發明可改善,瀏覽器用WebAssembly技術播放視頻時,因為性能不足所產生的卡頓。
技術領域
本發明涉及計算機軟件技術領域,具體為一種基于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瀏覽器的多線程視頻解碼播放方法的原理框圖。
具體實施方式
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于杭州視洞科技有限公司,未經杭州視洞科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202011335477.7/2.html,轉載請聲明來源鉆瓜專利網。





