两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

一種視頻播放方法、裝置、電子設(shè)備及存儲介質(zhì)與流程

文檔序號:40610601發(fā)布日期:2025-01-07 20:53閱讀:8來源:國知局
一種視頻播放方法、裝置、電子設(shè)備及存儲介質(zhì)與流程

本發(fā)明涉及視頻處理,尤其涉及一種視頻播放方法、裝置、電子設(shè)備及存儲介質(zhì)。


背景技術(shù):

1、隨著語音社交、直播社交等互聯(lián)網(wǎng)社交方式的興起,虛擬禮物成為一種比較常見的交互功能,通常地,在用戶贈送虛擬禮物后,會在客戶端上播放虛擬禮物對應(yīng)的動畫效果。常見的虛擬禮物視頻動畫的有mp4、svga(scalablevector?graphicsanimation,可伸縮矢量圖形動畫)、vap(videoanimationplayer,視頻動畫播放器)等格式。

2、目前,在電腦端播放視頻多媒體文件,需要使用ffmpeg(fastforwardmovingpicture?experts?group,快轉(zhuǎn)動態(tài)圖像專家組)進行視頻解碼,使用directx進行渲染。在視頻播放過程中,使用directx進行渲染需要占用一個窗口句柄,渲染的視頻位于整個窗口,導(dǎo)致播放一個視頻就需要開辟一個窗口。并且,窗口渲染的內(nèi)容,無法和其它顯示的視頻內(nèi)容進行疊加,存在顯示層級的問題。由此,播放多個視頻時資源占用較大,軟件容易崩潰,對軟件的使用影響較大。


技術(shù)實現(xiàn)思路

1、本發(fā)明提供一種一種視頻播放方法、裝置、電子設(shè)備及存儲介質(zhì),用以解決現(xiàn)有技術(shù)中電腦端播放視頻存在顯示層級問題、浪費窗口句柄資源的缺陷,實現(xiàn)徹底解決視頻播放的層級問題,顯示的視頻內(nèi)容可以和其它視頻內(nèi)容任意疊加,視頻不再依賴窗口顯示,降低軟件崩潰所帶來的影響。

2、本發(fā)明提供一種視頻播放方法,包括:

3、第一進程將至少一個目標(biāo)視頻的播放信息發(fā)送給第二進程;

4、所述第二進程根據(jù)所述播放信息,加載并解碼所述目標(biāo)視頻,依次得到所述目標(biāo)視頻的每一幀視頻幀數(shù)據(jù);

5、所述第二進程將所述每一幀視頻幀數(shù)據(jù)依次寫入共享內(nèi)存塊;

6、所述第一進程從所述共享內(nèi)存塊依次讀取所述每一幀視頻幀數(shù)據(jù);

7、所述第一進程將所述每一幀視頻幀數(shù)據(jù)依次渲染至顯示界面以實現(xiàn)播放。

8、根據(jù)本發(fā)明提供的一種視頻播放方法,所述所述第二進程將所述每一幀視頻幀數(shù)據(jù)依次寫入共享內(nèi)存塊,包括:

9、所述第二進程每將一幀視頻幀數(shù)據(jù)寫入所述共享內(nèi)存塊時,判斷當(dāng)前寫入的視頻幀數(shù)據(jù)是否為所述目標(biāo)視頻的最后一幀視頻幀數(shù)據(jù);

10、如果否,將所述共享內(nèi)存塊的預(yù)設(shè)內(nèi)存標(biāo)志位更改為第一預(yù)設(shè)標(biāo)識,其中,所述第一預(yù)設(shè)標(biāo)識用于表征當(dāng)前寫入的視頻幀數(shù)據(jù)為未讀取狀態(tài);

11、如果是,將所述共享內(nèi)存塊的預(yù)設(shè)內(nèi)存標(biāo)志位更改為第二預(yù)設(shè)標(biāo)識,其中,所述第二預(yù)設(shè)標(biāo)識用于表征所述目標(biāo)視頻為寫入完成狀態(tài)。

12、根據(jù)本發(fā)明提供的一種視頻播放方法,所述所述第一進程從所述共享內(nèi)存塊依次讀取所述每一幀視頻幀數(shù)據(jù),包括:

13、所述第一進程每訪問一次所述共享內(nèi)存塊時,讀取并判斷所述預(yù)設(shè)內(nèi)存標(biāo)志位;

14、如果所述預(yù)設(shè)內(nèi)存標(biāo)志位為所述第一預(yù)設(shè)標(biāo)識,則讀取一幀視頻幀數(shù)據(jù),并將所述預(yù)設(shè)內(nèi)存標(biāo)志位更改為第三預(yù)設(shè)標(biāo)識,其中,所述第三預(yù)設(shè)標(biāo)識用于表征已寫入的視頻幀數(shù)據(jù)為已讀取狀態(tài)。

15、根據(jù)本發(fā)明提供的一種視頻播放方法,所述所述第一進程每訪問一次所述共享內(nèi)存塊時,讀取并判斷所述預(yù)設(shè)內(nèi)存標(biāo)志位之后,還包括:

16、如果所述預(yù)設(shè)內(nèi)存標(biāo)志位為所述第二預(yù)設(shè)標(biāo)識,則讀取所述共享內(nèi)存塊中的最后一幀視頻幀數(shù)據(jù),并將所述預(yù)設(shè)內(nèi)存標(biāo)志位更改為第四預(yù)設(shè)標(biāo)識,其中,所述第四預(yù)設(shè)標(biāo)識用于表征所述目標(biāo)視頻為讀取完成狀態(tài);

17、結(jié)束讀取所述共享內(nèi)存塊并釋放內(nèi)存資源。

18、根據(jù)本發(fā)明提供的一種視頻播放方法,所述所述第一進程每訪問一次所述共享內(nèi)存塊時,讀取并判斷所述預(yù)設(shè)內(nèi)存標(biāo)志位之后,還包括:

19、如果所述預(yù)設(shè)內(nèi)存標(biāo)志位為所述第三預(yù)設(shè)標(biāo)識,重復(fù)讀取所述預(yù)設(shè)內(nèi)存標(biāo)志位;

20、如果重復(fù)讀取所述預(yù)設(shè)內(nèi)存標(biāo)志位為所述第三預(yù)設(shè)標(biāo)識的次數(shù)超過預(yù)設(shè)閾值,則停止讀取所述共享內(nèi)存塊并釋放內(nèi)存資源。

21、根據(jù)本發(fā)明提供的一種視頻播放方法,所述所述第二進程根據(jù)所述播放信息,加載并解碼所述目標(biāo)視頻,依次得到所述目標(biāo)視頻的每一幀視頻幀數(shù)據(jù),包括:

22、所述第二進程根據(jù)所述播放信息,加載所述目標(biāo)視頻;

23、解碼所述目標(biāo)視頻;

24、當(dāng)解碼得到第一幀視頻幀數(shù)據(jù),創(chuàng)建所述共享內(nèi)存塊,并將所述共享內(nèi)存塊的內(nèi)存地址發(fā)送給所述第一進程;

25、所述所述第二進程將所述每一幀視頻幀數(shù)據(jù)依次寫入共享內(nèi)存塊,包括:

26、所述第二進程將所述第一幀視頻幀數(shù)據(jù)寫入所述共享內(nèi)存塊。

27、根據(jù)本發(fā)明提供的一種視頻播放方法,所述所述第一進程將所述每一幀視頻幀數(shù)據(jù)依次渲染至顯示界面以實現(xiàn)播放,包括:

28、所述第一進程獲取所述目標(biāo)視頻的播放區(qū)域信息;

29、根據(jù)所述播放區(qū)域信息,將所述目標(biāo)視頻的所述每一幀視頻幀數(shù)據(jù)依次渲染至對應(yīng)的播放區(qū)域中,其中,所述播放區(qū)域位于所述顯示界面的范圍內(nèi)。

30、根據(jù)本發(fā)明提供的一種視頻播放方法,所述方法還包括:

31、當(dāng)所述第二進程檢測到無法向所述共享內(nèi)存塊寫入數(shù)據(jù)時,停止解碼所述目標(biāo)視頻,并重新啟動進程,以等待接收下一次解碼任務(wù)。

32、本發(fā)明還提供一種視頻播放裝置,包括:

33、發(fā)送模塊,用于第一進程將至少一個目標(biāo)視頻的播放信息發(fā)送給第二進程;

34、解碼模塊,用于所述第二進程根據(jù)所述播放信息,加載并解碼所述目標(biāo)視頻,依次得到所述目標(biāo)視頻的每一幀視頻幀數(shù)據(jù);

35、寫入模塊,用于所述第二進程將所述每一幀視頻幀數(shù)據(jù)依次寫入共享內(nèi)存塊;

36、讀取模塊,用于所述第一進程從所述共享內(nèi)存塊依次讀取所述每一幀視頻幀數(shù)據(jù),

37、渲染模塊,用于所述第一進程將所述每一幀視頻幀數(shù)據(jù)依次渲染至顯示界面以實現(xiàn)播放。

38、本發(fā)明還提供一種電子設(shè)備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)如上述任一種所述視頻播放方法。

39、本發(fā)明還提供一種非暫態(tài)計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如上述任一種所述視頻播放方法。

40、本發(fā)明提供的一種視頻播放方法、裝置、電子設(shè)備及存儲介質(zhì),當(dāng)需要播放視頻時,通過將視頻解碼、視頻渲染分為兩個進程執(zhí)行,視頻解碼進程將解碼出來視頻幀數(shù)據(jù)寫入共享內(nèi)存,視頻渲染進程從共享內(nèi)存讀取視頻幀數(shù)據(jù)進行渲染,從而在顯示界面中實現(xiàn)播放。本發(fā)明基于內(nèi)存共享實現(xiàn)了高效的視頻播放性能,視頻不再依賴視頻播放組件進行解碼渲染,無需依賴窗口顯示,可以在顯示界面的任意區(qū)域進行顯示,并且徹底解決視頻播放的層級問題,顯示的內(nèi)容可以和其它內(nèi)容任意疊加,實現(xiàn)多個視頻播放顯示;相對于現(xiàn)有技術(shù)中視頻播放組件內(nèi)存占用較大,播放過多視頻容易導(dǎo)致軟件崩潰,本發(fā)明可以將崩潰導(dǎo)致的影響降到最低,也能降低對cpu的消耗及要求。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
郑州市| 溧阳市| 吉隆县| 和龙市| 湘潭市| 信丰县| 新田县| 监利县| 介休市| 崇仁县| 望都县| 子长县| 旌德县| 广饶县| 嵊泗县| 大新县| 黄骅市| 连平县| 清水县| 庆阳市| 长乐市| 四平市| 崇仁县| 潼关县| 靖边县| 手机| 应用必备| 杭州市| 东光县| 临邑县| 福海县| 攀枝花市| 靖远县| 正宁县| 陵水| 威海市| 温州市| 都江堰市| 乃东县| 镇沅| 台中市|