本申請涉及數(shù)智平臺,特別是涉及一種視頻流數(shù)據(jù)處理方法、裝置、計算機設備、存儲介質(zhì)和程序產(chǎn)品。
背景技術:
1、在電腦客戶端云桌面畫面展示中,主要通過clink數(shù)據(jù)安全協(xié)議實現(xiàn),由云主機的服務端將虛擬機桌面實時截取并轉發(fā)到對應的客戶端,客戶端接收到視頻流數(shù)據(jù)后會將其傳遞給gstreamer庫,完成最終的視頻解碼和畫面渲染顯示。
2、然而,由于gstreamer庫的解碼器創(chuàng)建和解碼是通過jni接口反射調(diào)用java層的mediacodec接口實現(xiàn)的,這種反射調(diào)用方式會存在額外的性能開銷,從而影響解碼效率和整體性能。
技術實現(xiàn)思路
1、基于此,有必要針對上述技術問題,提供一種能夠提高解碼效率的視頻流數(shù)據(jù)處理方法、裝置、計算機設備、存儲介質(zhì)和程序產(chǎn)品。
2、第一方面,本申請?zhí)峁┝艘环N視頻流數(shù)據(jù)處理方法,包括:
3、在接收到云主機發(fā)送的流模式啟動信號的情況下,初始化渲染引擎和硬件解碼器;
4、接收云主機發(fā)送的視頻流數(shù)據(jù),調(diào)用硬件解碼器對視頻流數(shù)據(jù)進行解碼,得到解碼數(shù)據(jù);
5、通過渲染引擎將解碼數(shù)據(jù)渲染至外部紋理結構,并通過渲染引擎將外部紋理結構渲染至云電腦客戶端的可視區(qū)域;
6、在接收到云主機發(fā)送的停止信號的情況下,停止調(diào)用硬件解碼器對視頻流數(shù)據(jù)進行解碼的過程,并通過硬件解碼器釋放解碼資源;解碼資源包括內(nèi)存資源、處理器資源和圖形渲染資源。
7、在其中一個實施例中,初始化渲染引擎的過程,包括:
8、獲取與紋理視圖相關聯(lián)的圖像緩沖區(qū);
9、通過第一接口將圖像緩沖區(qū)加載至原生層,并在原生層中將圖像緩沖區(qū)轉換為原生窗口對象;原生窗口對象用于為渲染引擎提供圖形繪制窗口。
10、在其中一個實施例中,初始化硬件解碼器的過程,包括:
11、創(chuàng)建解碼線程和數(shù)據(jù)隊列;解碼線程用于接收云主機發(fā)送的視頻流數(shù)據(jù),并將視頻流數(shù)據(jù)插入至數(shù)據(jù)隊列;
12、在解碼線程中調(diào)用第二接口創(chuàng)建硬件解碼器,并為硬件解碼器配置優(yōu)化參數(shù);優(yōu)化參數(shù)包括延時解碼參數(shù)和色彩優(yōu)化參數(shù)。
13、在其中一個實施例中,調(diào)用硬件解碼器對視頻流數(shù)據(jù)進程解碼,得到解碼數(shù)據(jù)的步驟,包括:
14、在解碼線程中調(diào)用硬件解碼器,從數(shù)據(jù)隊列中讀取視頻流數(shù)據(jù);
15、通過硬件解碼器對視頻流數(shù)據(jù)進行解碼,得到解碼數(shù)據(jù)。
16、在其中一個實施例中,通過渲染引擎將解碼數(shù)據(jù)渲染至外部紋理結構的步驟,包括:
17、根據(jù)解碼數(shù)據(jù)獲取視頻幀數(shù)據(jù);
18、調(diào)用渲染引擎執(zhí)行繪圖命令,將視頻幀數(shù)據(jù)渲染至外部紋理結構中;外部紋理結構用于存儲視頻幀數(shù)據(jù)。
19、在其中一個實施例中,通過渲染引擎將外部紋理結構渲染至云電腦客戶端的可視區(qū)域的步驟,包括:
20、通過渲染引擎,將外部紋理結構關聯(lián)至原生窗口對象;
21、通過原生窗口對象將外部紋理結構中的視頻幀數(shù)據(jù)渲染至云電腦客戶端的可視區(qū)域。
22、第二方面,本申請還提供了一種視頻流數(shù)據(jù)處理裝置,包括:
23、初始化模塊,用于在接收到云主機發(fā)送的流模式啟動信號的情況下,初始化渲染引擎和硬件解碼器;
24、解碼模塊,用于接收云主機發(fā)送的視頻流數(shù)據(jù),調(diào)用硬件解碼器對視頻流數(shù)據(jù)進行解碼,得到解碼數(shù)據(jù);
25、渲染模塊,用于通過渲染引擎將解碼數(shù)據(jù)渲染至外部紋理結構,并通過渲染引擎將外部紋理結構渲染至云電腦客戶端的可視區(qū)域;
26、釋放模塊,用于在接收到云主機發(fā)送的停止信號的情況下,停止調(diào)用硬件解碼器對視頻流數(shù)據(jù)進行解碼的過程,并通過硬件解碼器釋放解碼資源;解碼資源包括內(nèi)存資源、處理器資源和圖形渲染資源。
27、第三方面,本申請還提供了一種計算機設備,包括存儲器和處理器,存儲器存儲有計算機程序,處理器執(zhí)行計算機程序時實現(xiàn)第一方面中任意一項的方法步驟。
28、第四方面,本申請還提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)第一方面中任意一項的方法步驟。
29、第五方面,本申請還提供了一種計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)第一方面中任意一項的方法步驟。
30、上述視頻流數(shù)據(jù)處理方法、裝置、計算機設備、存儲介質(zhì)和程序產(chǎn)品,通過初始化渲染引擎和硬件解碼器,可以確保在接收到視頻流數(shù)據(jù)時能夠立即進行處理,減少啟動延遲,通過硬件解碼器的高效解碼能力,能夠確保視頻流數(shù)據(jù)的實時處理,提高解碼效率,減少資源消耗,從而提升整體的性能表現(xiàn)。同時,通過將解碼數(shù)據(jù)直接渲染到外部紋理結構,再渲染到可視區(qū)域,減少了不必要的數(shù)據(jù)轉換和復制,進一步優(yōu)化了資源的利用,提高了系統(tǒng)的運行效率。另外,通過在接收到停止信號時,及時釋放資源,確保系統(tǒng)資源的有效利用,為其他應用程序或任務提供足夠的資源。
1.一種視頻流數(shù)據(jù)處理方法,其特征在于,應用于云電腦客戶端;所述方法包括:
2.根據(jù)權利要求1所述的方法,其特征在于,所述初始化渲染引擎的過程,包括:
3.根據(jù)權利要求1所述的方法,其特征在于,初始化硬件解碼器的過程,包括:
4.根據(jù)權利要求3所述的方法,其特征在于,所述調(diào)用所述硬件解碼器對所述視頻流數(shù)據(jù)進程解碼,得到解碼數(shù)據(jù),包括:
5.根據(jù)權利要求1所述的方法,其特征在于,所述通過所述渲染引擎將所述解碼數(shù)據(jù)渲染至外部紋理結構,包括:
6.根據(jù)權利要求2所述的方法,其特征在于,所述通過所述渲染引擎將所述外部紋理結構渲染至所述云電腦客戶端的可視區(qū)域,包括:
7.一種視頻流數(shù)據(jù)處理裝置,其特征在于,所述裝置包括:
8.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執(zhí)行所述計算機程序時實現(xiàn)權利要求1至6中任一項所述的方法的步驟。
9.一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)權利要求1至6中任一項所述的方法的步驟。
10.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序被處理器執(zhí)行時實現(xiàn)權利要求1至6中任一項所述的方法的步驟。