新四季網

播放視頻的方法、裝置和客戶端的製作方法

2023-06-26 19:36:21 1

播放視頻的方法、裝置和客戶端的製作方法
【專利摘要】本發明提出一種播放視頻的方法、裝置和客戶端。其中,所述方法包括以下步驟:向視頻播放器提供視頻數據流;加載虛擬視頻硬體加速器,並通過虛擬視頻硬體加速器對視頻數據流進行解碼;以及將解碼後的視頻數據流反饋至視頻播放器,以通過視頻播放器進行播放。本發明實施例方法,降低CPU和內存資源的佔有,播放效果好,用戶體驗好。
【專利說明】播放視頻的方法、裝置和客戶端
【技術領域】
[0001]本發明涉及視頻處理【技術領域】,尤其涉及一種播放視頻的方法、裝置和客戶端。
【背景技術】
[0002]隨著網際網路技術的高速發展,越來越多的網民喜歡在線觀看視頻。目前,由於在線視頻的網站多提供採用Flash(例如由macromedia公司推出的交互式矢量圖和Web動畫的標準)播放器播放的視頻,因此Flash播放器的使用越來越普遍。
[0003]目前的Flash播放器首先獲取視頻數據流,之後使用Flash播放器自帶的軟體解碼器對視頻數據流進行解碼。但是,採用Flash播放器播放時至少存在以下問題,由於目前採用Flash播放器播放的視頻數據格式多為H.264 (一種高度壓縮的數字視頻編解碼標準),然而Flash播放器自帶的軟體解碼器針對H.264格式的視頻數據在解碼時佔用很大的資源,因此Flash播放器在解碼時會搶奪大量的CPlXCentral Processing Unit,中央處理器)與內存資源,影響播放效果,導致用戶體驗差。並且對於低端設備,例如配置較低的終端來說,該問題更為明顯。

【發明內容】

[0004]本發明旨在至少解決上述技術問題之一。
[0005]為此,本發明的第一個目的在於提出一種播放視頻的方法。該方法降低CPU和內存資源的佔有,播放效果好,用戶體驗好。
[0006]本發明的第二個目的在於提出一種播放視頻的裝置。
[0007]本發明的第三個目的在於提出一種客戶端。
[0008]為了實現上述目的,本發明第一方面實施例的播放視頻的方法,包括以下步驟:向視頻播放器提供視頻數據流;加載虛擬視頻硬體加速器,並通過所述虛擬視頻硬體加速器對所述視頻數據流進行解碼;以及將解碼後的所述視頻數據流反饋至所述視頻播放器,以通過所述視頻播放器進行播放。
[0009]本發明實施例的播放視頻的方法,視頻播放器將視頻數據流通過虛擬視頻硬體加速器進行解碼,極大地減少視頻播放器採用自身的軟體解碼器解碼時對資源的索取,降低CPU和內存資源的佔有,另外,虛擬視頻硬體加速器可以設計成更高性能的解碼器,解碼效率高,由此,在線視頻播放效果好,用戶體驗好。
[0010]為了實現上述目的,本發明第二方面實施例的播放視頻的裝置,包括:視頻數據流提供模塊,用於向視頻播放器提供視頻數據流;加速器加載模塊,用於加載虛擬視頻硬體加速器,並通過所述虛擬視頻硬體加速器對所述視頻數據流進行解碼;以及播放控制模塊,用於將解碼後的所述視頻數據流反饋至所述視頻播放器,以通過所述視頻播放器進行播放。
[0011]本發明實施例的播放視頻的裝置,視頻播放器將視頻數據流通過虛擬視頻硬體加速器進行解碼,極大地減少視頻播放器採用自身的軟體解碼器解碼時對資源的索取,降低CPU和內存資源的佔有,另外,虛擬視頻硬體加速器可以設計成更高性能的解碼器,解碼效率高,由此,在線視頻播放效果好,用戶體驗好。
[0012]為了實現上述目的,本發明第三方面實施例的客戶端,包括:外殼,屏幕,處理器和電路板;所述屏幕安置在所述外殼上,所述電路板安置在所述外殼圍成的空間內部,所述處理器設置在所述電路板上;所述處理器用於處理數據,具體用於:向視頻播放器提供視頻數據流;加載虛擬視頻硬體加速器,並通過所述虛擬視頻硬體加速器對所述視頻數據流進行解碼;以及將解碼後的所述視頻數據流反饋至所述視頻播放器,以通過所述視頻播放器進行播放。
[0013]本發明實施例的客戶端,視頻播放器將視頻數據流通過虛擬視頻硬體加速器進行解碼,極大地減少視頻播放器採用自身的軟體解碼器解碼時對資源的索取,降低CPU和內存資源的佔有,另外,虛擬視頻硬體加速器可以設計成更高性能的解碼器,解碼效率高,由此,在線視頻播放效果好,用戶體驗好。
[0014]本發明附加的方面和優點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發明的實踐了解到。
【專利附圖】

【附圖說明】
[0015]本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中,
[0016]圖1是根據本發明一個實施例的播放視頻的方法的流程圖;
[0017]圖2是根據本發明另一個實施例的播放視頻的方法的流程圖;
[0018]圖3是根據本發明一個具體實施例的播放視頻的方法的流程圖;
[0019]圖4是根據本發明另一個具體實施例的播放視頻的方法的流程圖;
[0020]圖5是根據本發明再一個具體實施例的播放視頻的方法的流程圖;
[0021]圖6是根據本發明一個實施例的通過播放視頻的裝置的結構示意圖;
[0022]圖7是根據本發明另一個實施例的播放視頻的裝置的結構示意圖;以及
[0023]圖8是根據本發明一個具體實施例的播放視頻的裝置的結構示意圖。
【具體實施方式】
[0024]下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用於解釋本發明,而不能理解為對本發明的限制。相反,本發明的實施例包括落入所附加權利要求書的精神和內涵範圍內的所有變化、修改和等同物。
[0025]在本發明的描述中,需要理解的是,術語「第一」、「第二」等僅用於描述目的,而不能理解為指示或暗示相對重要性。在本發明的描述中,需要說明的是,除非另有明確的規定和限定,術語「相連」、「連接」應做廣義理解,例如,可以是固定連接,也可以是可拆卸連接,或一體地連接;可以是機械連接,也可以是電連接;可以是直接相連,也可以通過中間媒介間接相連。對於本領域的普通技術人員而言,可以具體情況理解上述術語在本發明中的具體含義。此外,在本發明的描述中,除非另有說明,「多個」的含義是兩個或兩個以上。
[0026]流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用於實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,並且本發明的優選實施方式的範圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本發明的實施例所屬【技術領域】的技術人員所理解。
[0027]目前,在線視頻的網站採用Flash播放器播放視頻,Flash播放器播放視頻主要以H.264格式為主,在解碼時搶奪大量的系統CPU與內存資源,影響播放效果,用戶體驗差。為了解決上述問題,本發明提出一種播放視頻的方法、裝置和客戶端,通過欺騙Flash播放器,虛擬出一個視頻硬體加速器對視頻進行解碼以節省CPU和內存資源。下面參考附圖描述根據本發明實施例的播放視頻的方法、裝置和客戶端。
[0028]圖1是根據本發明一個實施例的播放視頻的方法的流程圖。如圖1所示,播放視頻的方法包括以下步驟。
[0029]S101,向視頻播放器提供視頻數據流。
[0030]在本發明的一個實施例中,視頻播放器為Flash視頻播放器。應當理解,本發明主要解決的問題是Flash視頻播放器在解碼時搶奪大量的系統CPU與內存資源,本領域的技術人員很容易理解其他具有類似問題的視頻播放器也在本發明的範圍之內,在後續的說明中為了方便理解主要以Flash視頻播放器為主。
[0031]具體地,用戶在客戶端通過瀏覽器類應用程式訪問並加載在線視頻網站,瀏覽器類應用程式根據加載的在線視頻啟動Flash視頻播放器,其中Flash視頻播放器可以以插件的形式存在瀏覽器類應用程式中,之後瀏覽器類應用程式從在線視頻網站的伺服器上獲取視頻數據流,並提供給Flash視頻播放器。
[0032]S102,加載虛擬視頻硬體加速器,並通過虛擬視頻硬體加速器對視頻數據流進行解碼。
[0033]其中,Flash視頻播放器可以採用兩種方式對視頻數據流進行解碼,一種是採用Flash視頻播放器本身的軟體解碼器進行解碼,另一種是訪問系統中的硬體解碼器進行解碼,其中,硬體解碼器可帶來更加優越的解碼效率,例如,Broadcom CrystalHD Decoder (非常著名的視頻解碼器硬體,普通用戶極少會單獨購買)。所以,Flash視頻播放器在獲取視頻數據流之後,首先會詢問系統中是否存在這樣的硬體解碼器,由於Flash視頻播放器本身的軟體解碼器在解碼時搶奪大量的CPU和內存,不希望通過Flash視頻播放器本身的軟體解碼器進行解碼,因此,加載一個虛擬視頻硬體加速器,使得Flash視頻播放器在詢問系統中是否存在硬體解碼器時欺騙Flash視頻播放器以通過虛擬視頻硬體加速器進行解碼,該虛擬視頻硬體加速器可以是任何高性能的軟體解碼器,並具有比Flash視頻播放器自身的軟體解碼器更加優秀的解碼效果,例如FFmpeg(開源免費跨平臺的視頻和音頻流方案,包含了非常先進的音頻/視頻編解碼庫)等。
[0034]S103,將解碼後的視頻數據流反饋至視頻播放器,以通過視頻播放器進行播放。
[0035]具體地,Flash視頻播放器會按照預設規律例如I毫秒的時間間隔詢問虛擬視頻硬體加速器是否解碼成功,如果解碼成功,則通過解碼數據輸出接口將解碼後的視頻數據流反饋至Flash視頻播放器。
[0036]本發明實施例的播放視頻的方法,視頻播放器將視頻數據流通過虛擬視頻硬體加速器進行解碼,極大地減少視頻播放器採用自身的軟體解碼器解碼時對資源的索取,降低CPU和內存資源的佔有,另外,虛擬視頻硬體加速器可以設計成更高性能的解碼器,解碼效率高,由此,在線視頻播放效果好,用戶體驗好。
[0037]圖2是根據本發明另一個實施例的播放視頻的方法的流程圖。下面結合圖2詳細說明加載虛擬視頻硬體加速器的過程,具體地,如圖2所示,播放視頻的方法包括以下步驟。
[0038]S201,向視頻播放器提供視頻數據流。
[0039]S202,截取視頻播放器的調用請求,調用請求用於調用系統接口函數。
[0040]S203,將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑。
[0041 ] 在本發明的一個實施例中,系統接口函數可為AP1.LoadLibrary接口函數,用於加載系統文件,該系統是客戶端的作業系統,客戶端可以是PCXPersonal Computer,個人計算機)或移動終端,移動終端可為智慧型手機、平板電腦、個人數字助理、電子書等具有各種作業系統的硬體設備。
[0042]具體地,Flash視頻播放器通過調用系統接口函數判斷系統中是否具有硬體解碼器,系統接口函數中包括硬體解碼器加載文件的文件路徑,在此過程中,截取視頻播放器的該調用請求,並將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑。
[0043]S204,恢復調用請求,並根據文件路徑加載虛擬視頻硬體加速器,以通過虛擬視頻硬體加速器對視頻數據流進行解碼。
[0044]具體地,虛擬視頻硬體加速器向Flash視頻播放器提供三個接口:初始化接口、數據流輸入接口和解碼數據輸出接口,首先,Flash視頻播放器對虛擬視頻硬體加速器進行初始化,之後將視頻數據流通過數據流輸入接口傳輸至虛擬視頻硬體加速器中進行解碼。
[0045]S205,將解碼後的視頻數據流反饋至視頻播放器,以通過視頻播放器進行播放。
[0046]本發明實施例的播放視頻的方法,通過修改系統接口函數的調用參數加載虛擬視頻硬體加速器進行解碼,簡捷,效率高。
[0047]在截取視頻播放器的調用請求時,可以通過鉤子函數實現。圖3是根據本發明一個具體實施例的播放視頻的方法的流程圖。如圖3所示,播放視頻的方法包括以下步驟。
[0048]S301,向視頻播放器提供視頻數據流。
[0049]S302,通過鉤子函數截取視頻播放器的調用請求,調用請求用於調用系統接口函數。
[0050]其中,鉤子函數用於監控系統接口函數,及在當系統接口函數被調用時截取調用請求並修改系統接口函數的調用參數中的文件路徑。
[0051 ] 在本發明的一個實施例中,系統接口函數為AP1.LoadLibrary接口函數。
[0052]具體地,每當Flash視頻播放器調用系統接口函數時,在該系統接口函數還沒有根據文件路徑調用對應的硬體解碼器的加載文件之前,鉤子函數先捕獲該調用請求,並獲取系統接口函數的調用參數,以獲得對該系統接口函數的控制權,並對該系統接口函數的調用參數進行加工處理,例如,修改調用參數中的文件路徑等。
[0053]S303,將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑。[0054]S304,恢復調用請求,並根據文件路徑加載虛擬視頻硬體加速器,以通過虛擬視頻硬體加速器對視頻數據流進行解碼。
[0055]S305,將解碼後的視頻數據流反饋至視頻播放器,以通過視頻播放器進行播放。
[0056]本發明實施例的播放視頻的方法,通過鉤子函數截取視頻播放器的調用請求,並將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑,提升效率。
[0057]視頻數據流音頻壓縮數據流和視頻壓縮數據流(即圖像數據),針對音頻壓縮數據流可以通過Flash視頻播放器自身的軟體解碼器進行解碼,虛擬視頻硬體加速器只需對視頻壓縮數據流進行解碼。圖4是根據本發明另一個具體實施例的播放視頻的方法的流程圖。如圖4所示,播放視頻的方法包括以下步驟。
[0058]S401,向視頻播放器提供視頻數據流。
[0059]S402,視頻播放器對視頻數據流進行分離,以獲取視頻數據流的音頻壓縮數據流和視頻壓縮數據流。
[0060]S403,通過鉤子函數截取視頻播放器的調用請求,調用請求用於調用系統接口函數。
[0061]S404,將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑。
[0062]S405,恢復調用請求,並根據文件路徑加載虛擬視頻硬體加速器,以通過虛擬視頻硬體加速器對視頻數據流進行解碼。
[0063]S406,視頻播放器的解碼器對音頻壓縮數據流進行解碼。
[0064]其中,S403和S406的執行不分先後順序。
[0065]S407,將解碼後的視頻壓縮數據流反饋至視頻播放器,以通過視頻播放器進行播放。
[0066]本發明實施例的播放視頻的方法,通過視頻播放器對視頻數據流的音頻壓縮數據流進行解碼,虛擬視頻硬體加速器對視頻數據流的視頻壓縮數據流進行解碼,進一步提升效率。
[0067]根據文件路徑加載虛擬視頻硬體加速器,首先,通過文件路徑獲取虛擬視頻硬體加速器的加載文件,然後,根據加載文件加載虛擬視頻硬體加速器。圖5是根據本發明再一個具體實施例的播放視頻的方法的流程圖。如圖5所示,播放視頻的方法包括以下步驟。
[0068]S501,向視頻播放器提供視頻數據流。
[0069]S502,通過鉤子函數截取視頻播放器的調用請求,調用請求用於調用系統接口函數。
[0070]S503,將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑。
[0071]S504,恢復調用請求,並通過文件路徑獲取虛擬視頻硬體加速器的加載文件。
[0072]S505,根據加載文件加載虛擬視頻硬體加速器,以通過虛擬視頻硬體加速器對視頻數據流進行解碼。
[0073]S506,將解碼後的視頻數據流反饋至視頻播放器,以通過視頻播放器進行播放。
[0074]本發明實施例的播放視頻的方法,進一步提升效率。[0075]為了實現上述實施例,本發明還提出一種播放視頻的裝置。
[0076]圖6是根據本發明一個實施例的播放視頻的裝置的結構示意圖。如圖6所示,播放視頻的裝置包括:視頻數據流提供模塊110、加速器加載模塊120和播放控制模塊130。
[0077]具體地,視頻數據流提供模塊110用於向視頻播放器提供視頻數據流。在本發明的一個實施例中,視頻播放器為Flash視頻播放器。應當理解,本發明主要解決的問題是Flash視頻播放器在解碼時搶奪大量的系統CPU與內存資源,本領域的技術人員很容易理解其他具有類似問題的視頻播放器也在本發明的範圍之內,在後續的說明中為了方便理解主要以Flash視頻播放器為主。
[0078]更具體地,用戶在客戶端通過瀏覽器類應用程式訪問並加載在線視頻網站,瀏覽器類應用程式根據加載的在線視頻啟動Flash視頻播放器,其中Flash視頻播放器可以以插件的形式存在瀏覽器類應用程式中,之後瀏覽器類應用程式從在線視頻網站的伺服器上獲取視頻數據流,並提供給Flash視頻播放器。
[0079]加速器加載模塊120用於加載虛擬視頻硬體加速器,並通過虛擬視頻硬體加速器對視頻數據流進行解碼。
[0080]其中,Flash視頻播放器可以採用兩種方式對視頻數據流進行解碼,一種是採用Flash視頻播放器本身的軟體解碼器進行解碼,另一種是訪問系統中的硬體解碼器進行解碼,其中,硬體解碼器可帶來更加優越的解碼效率,例如,Broadcom CrystalHD Decoder。所以,Flash視頻播放器在獲取視頻數據流之後,首先會詢問系統中是否存在這樣的硬體解碼器,由於Flash視頻播放器本身的軟體解碼器在解碼時搶奪大量的CPU和內存,不希望通過Flash視頻播放器本身的軟體解碼器進行解碼,因此,加載一個虛擬視頻硬體加速器,使得Flash視頻播放器在詢問系統中是否存在硬體解碼器時欺騙Flash視頻播放器以通過虛擬視頻硬體加速器進行解碼,該虛擬視頻硬體加速器可以是任何高性能的軟體解碼器,並具有比Flash視頻播放器自身的軟體解碼器更加優秀的解碼效果,例如FFmpeg等。
[0081]播放控制模塊130用於將解碼後的視頻數據流反饋至視頻播放器,以通過視頻播放器進行播放。更具體地,Flash視頻播放器會按照預設規律例如I毫秒的時間間隔詢問虛擬視頻硬體加速器是否解碼成功,如果解碼成功,則播放控制模塊130控制通過解碼數據輸出接口將解碼後的視頻數據流反饋至Flash視頻播放器。
[0082]本發明實施例的播放視頻的裝置,視頻播放器將視頻數據流通過虛擬視頻硬體加速器進行解碼,極大地減少視頻播放器採用自身的軟體解碼器解碼時對資源的索取,降低CPU和內存資源的佔有,另外,虛擬視頻硬體加速器可以設計成更高性能的解碼器,解碼效率高,由此,在線視頻播放效果好,用戶體驗好。
[0083]圖7是根據本發明另一個實施例的播放視頻的裝置的結構示意圖。如圖7所示,播放視頻的裝置包括:視頻數據流提供模塊110、加速器加載模塊120、播放控制模塊130、截取單元121、修改單元122和加載單元123,其中,加速器加載模塊120包括截取單元121、修改單元122和加載單元123。
[0084]具體地,截取單元121用於截取視頻播放器的調用請求,調用請求用於調用系統接口函數。
[0085]修改單元122用於將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑。[0086]在本發明的一個實施例中,系統接口函數可為AP1.LoadLibrary接口函數,用於加載系統文件,該系統是客戶端的作業系統,客戶端可以是PC或移動終端,移動終端可為智慧型手機、平板電腦、個人數字助理、電子書等具有各種作業系統的硬體設備。
[0087]更具體地,Flash視頻播放器通過調用系統接口函數判斷系統中是否具有硬體解碼器,系統接口函數中包括硬體解碼器加載文件的文件路徑,在此過程中,截取視頻播放器的該調用請求,並將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑。
[0088]加載單元123用於恢復調用請求,並根據文件路徑加載虛擬視頻硬體加速器。
[0089]更具體地,虛擬視頻硬體加速器向Flash視頻播放器提供三個接口:初始化接口、數據流輸入接口和解碼數據輸出接口,首先,Flash視頻播放器對虛擬視頻硬體加速器進行初始化,之後將視頻數據流通過數據流輸入接口傳輸至虛擬視頻硬體加速器中進行解碼。
[0090]在本發明的一個實施例中,截取單元121還用於:通過鉤子函數截取視頻播放器的調用請求,其中,鉤子函數用於監控系統接口函數,及在當系統接口函數被調用時截取調用請求並修改系統接口函數的調用參數中的文件路徑。在本發明的一個實施例中,系統接口函數為AP1.LoadLibrary接口函數。具體地,每當Flash視頻播放器調用系統接口函數時,在該系統接口函數還沒有根據文件路徑調用對應的硬體解碼器的加載文件之前,鉤子函數先捕獲該調用請求,並獲取系統接口函數的調用參數,以獲得對該系統接口函數的控制權,並對該系統接口函數的調用參數進行加工處理,例如,修改調用參數中的文件路徑
坐寸ο
[0091]在本發明的一個實施例中,加載單元123還用於:通過文件路徑獲取虛擬視頻硬體加速器的加載文件,並根據加載文件加載虛擬視頻硬體加速器。
[0092]圖8是根據本發明一個具體實施例的播放視頻的裝置的結構示意圖。如圖8所示,播放視頻的裝置包括:視頻數據流提供模塊110、加速器加載模塊120、截取單元121、修改單元122、加載單元123、播放控制模塊130和分離模塊140,其中,加速器加載模塊120包括截取單元121、修改單元122和加載單元123。
[0093]具體地,視頻數據流包括音頻壓縮數據流和視頻壓縮數據流,針對音頻壓縮數據流可以通過Flash視頻播放器自身的軟體解碼器進行解碼,虛擬視頻硬體加速器只需對視頻壓縮數據流進行解碼。分離模塊140用於在系統接口函數截取單元121截取視頻播放器的調用請求之前對視頻數據流進行分離,以獲取視頻數據流的音頻壓縮數據流和視頻壓縮數據流,其中,虛擬視頻硬體加速器對音頻壓縮數據流進行解碼,視頻播放器的解碼器對音頻壓縮數據流進行解碼。
[0094]為了實現上述實施例,本發明又提出一種客戶端。
[0095]一種客戶端,包括:外殼,屏幕,處理器和電路板;屏幕安置在外殼上,電路板安置在外殼圍成的空間內部,處理器設置在電路板上;處理器用於處理數據,具體用於執行以下步驟:
[0096]S101』,向視頻播放器提供視頻數據流。
[0097]在本發明的一個實施例中,視頻播放器為Flash視頻播放器。應當理解,本發明主要解決的問題是Flash視頻播放器在解碼時搶奪大量的系統CPU與內存資源,本領域的技術人員很容易理解其他具有類似問題的視頻播放器也在本發明的範圍之內,在後續的說明中為了方便理解主要以Flash視頻播放器為主。
[0098]具體地,用戶在客戶端通過瀏覽器類應用程式訪問並加載在線視頻網站,瀏覽器類應用程式根據加載的在線視頻啟動Flash視頻播放器,其中Flash視頻播放器可以以插件的形式存在瀏覽器類應用程式中,之後瀏覽器類應用程式從在線視頻網站的伺服器上獲取視頻數據流,並提供給Flash視頻播放器。
[0099]S102』,加載虛擬視頻硬體加速器,並通過虛擬視頻硬體加速器對視頻數據流進行解碼。
[0100]其中,Flash視頻播放器可以採用兩種方式對視頻數據流進行解碼,一種是採用Flash視頻播放器本身的軟體解碼器進行解碼,另一種是訪問系統中的硬體解碼器進行解碼,其中,硬體解碼器可帶來更加優越的解碼效率,例如,Broadcom CrystalHD Decoder (非常著名的視頻解碼器硬體,普通用戶極少會單獨購買)。所以,Flash視頻播放器在獲取視頻數據流之後,首先會詢問系統中是否存在這樣的硬體解碼器,由於Flash視頻播放器本身的軟體解碼器在解碼時搶奪大量的CPU和內存,不希望通過Flash視頻播放器本身的軟體解碼器進行解碼,因此,加載一個虛擬視頻硬體加速器,使得Flash視頻播放器在詢問系統中是否存在硬體解碼器時欺騙Flash視頻播放器以通過虛擬視頻硬體加速器進行解碼,該虛擬視頻硬體加速器可以是任何高性能的軟體解碼器,並具有比Flash視頻播放器自身的軟體解碼器更加優秀的解碼效果,例如FFmpeg(開源免費跨平臺的視頻和音頻流方案,包含了非常先進的音頻/視頻編解碼庫)等。
[0101]S103』,將解碼後的視頻數據流反饋至視頻播放器,以通過視頻播放器進行播放。
[0102]具體地,Flash視頻播放器會按照預設規律例如I毫秒的時間間隔詢問虛擬視頻硬體加速器是否解碼成功,如果解碼成功,則通過解碼數據輸出接口將解碼後的視頻數據流反饋至Flash視頻播放器。
[0103]本發明實施例的客戶端,視頻播放器將視頻數據流通過虛擬視頻硬體加速器進行解碼,極大地減少視頻播放器採用自身的軟體解碼器解碼時對資源的索取,降低CPU和內存資源的佔有,另外,虛擬視頻硬體加速器可以設計成更高性能的解碼器,解碼效率高,由此,在線視頻播放效果好,用戶體驗好。
[0104]在本發明的一個實施例中,加載虛擬視頻硬體加速器時,處理器還用於:截取視頻播放器的調用請求,調用請求用於調用系統接口函數,並將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑,以及恢復調用請求,並根據文件路徑加載虛擬視頻硬體加速器。
[0105]在本發明的一個實施例中,系統接口函數可為AP1.LoadLibrary接口函數,用於加載系統文件,該系統是客戶端的作業系統,客戶端可以是PC或移動終端,移動終端可為智慧型手機、平板電腦、個人數字助理、電子書等具有各種作業系統的硬體設備。
[0106]具體地,Flash視頻播放器通過調用系統接口函數判斷系統中是否具有硬體解碼器,系統接口函數中包括硬體解碼器加載文件的文件路徑,在此過程中,截取視頻播放器的該調用請求,並將系統接口函數的調用參數中的文件路徑修改為虛擬視頻硬體加速器的文件路徑。此外,虛擬視頻硬體加速器向Flash視頻播放器提供三個接口:初始化接口、數據流輸入接口和解碼數據輸出接口,首先,Flash視頻播放器對虛擬視頻硬體加速器進行初始化,之後將視頻數據流通過數據流輸入接口傳輸至虛擬視頻硬體加速器中進行解碼。[0107]在截取視頻播放器的調用請求時,可以通過鉤子函數實現。在本發明的一個實施例中,處理器還用於執行以下步驟:通過鉤子函數截取視頻播放器的調用請求,調用請求用於調用系統接口函數,其中,鉤子函數用於監控系統接口函數,及在當系統接口函數被調用時截取調用請求並修改系統接口函數的調用參數中的文件路徑。具體地,每當Flash視頻播放器調用系統接口函數時,在該系統接口函數還沒有根據文件路徑調用對應的硬體解碼器的加載文件之前,鉤子函數先捕獲該調用請求,並獲取系統接口函數的調用參數,以並獲得對該系統接口函數的控制權,並對該系統接口函數的調用參數進行加工處理,例如,修改調用參數中的文件路徑等。
[0108]視頻數據流包括音頻壓縮數據流和視頻壓縮數據流,針對音頻壓縮數據流可以通過Flash視頻播放器自身的軟體解碼器進行解碼,虛擬視頻硬體加速器只需對視頻壓縮數據流進行解碼。在本發明的一個實施例中,處理器還用於執行以下步驟:在截取視頻播放器的調用請求之前,通過視頻播放器對視頻數據流進行分離,以獲取視頻數據流的音頻壓縮數據流和視頻壓縮數據流,其中,虛擬視頻硬體加速器對視頻壓縮數據流進行解碼,視頻播放器的解碼器對音頻壓縮數據流進行解碼。
[0109]在本發明的一個實施例中,處理器還用於:通過文件路徑獲取虛擬視頻硬體加速器的加載文件;以及根據加載文件加載虛擬視頻硬體加速器。
[0110]應當理解,本發明的各部分可以用硬體、軟體、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟體或固件來實現。例如,如果用硬體來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用於對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場可編程門陣列(FPGA)等。
[0111]在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
[0112]儘管已經示出和描述了本發明的實施例,本領域的普通技術人員可以理解:在不脫離本發明的原理和宗旨的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發明的範圍由權利要求及其等同物限定。
【權利要求】
1.一種播放視頻的方法,其特徵在於,包括以下步驟: 向視頻播放器提供視頻數據流; 加載虛擬視頻硬體加速器,並通過所述虛擬視頻硬體加速器對所述視頻數據流進行解碼;以及 將解碼後的所述視頻數據流反饋至所述視頻播放器,以通過所述視頻播放器進行播放。
2.根據權利要求1所述的方法,其特徵在於,所述加載虛擬視頻硬體加速器,具體包括: 截取所述視頻播放器的調用請求,所述調用請求用於調用系統接口函數; 將所述系統接口函數的調用參數中的文件路徑修改為所述虛擬視頻硬體加速器的文件路徑;以及 恢復所述調用請求,並根據所述文件路徑加載所述虛擬視頻硬體加速器。
3.根據權利要求2所述的方法,其特徵在於,所述截取所述視頻播放器的調用請求,具體包括: 通過鉤子函數截取所述視頻播放器的所述調用請求,其中,所述鉤子函數用於監控所述系統接口函數,及在當所述系統接 口函數被調用時截取所述調用請求並修改所述系統接口函數的調用參數中的文件路徑。
4.根據權利要求2或3所述的方法,其特徵在於,在所述截取所述視頻播放器的調用請求之前,還包括: 所述視頻播放器對所述視頻數據流進行分離,以獲取所述視頻數據流的音頻壓縮數據流和視頻壓縮數據流,其中,所述虛擬視頻硬體加速器對所述視頻壓縮數據流進行解碼,所述視頻播放器的解碼器對所述音頻壓縮數據流進行解碼。
5.根據權利要求2或3所述的方法,其特徵在於,所述根據文件路徑加載所述虛擬視頻硬體加速器具體包括: 通過所述文件路徑獲取所述虛擬視頻硬體加速器的加載文件;以及 根據所述加載文件加載所述虛擬視頻硬體加速器。
6.根據權利要求1所述的方法,其特徵在於,所述播放器為Flash播放器。
7.一種播放視頻的裝置,其特徵在於,包括: 視頻數據流提供模塊,用於向視頻播放器提供視頻數據流; 加速器加載模塊,用於加載虛擬視頻硬體加速器,並通過所述虛擬視頻硬體加速器對所述視頻數據流進行解碼;以及 播放控制模塊,用於將解碼後的所述視頻數據流反饋至所述視頻播放器,以通過所述視頻播放器進行播放。
8.根據權利要求7所述的裝置,其特徵在於,所述加速器加載模塊包括: 截取單元,用於截取所述視頻播放器的調用請求,所述調用請求用於調用系統接口函數; 修改單元,用於將所述系統接口函數的調用參數中的文件路徑修改為所述虛擬視頻硬體加速器的文件路徑;以及 加載單元,用於恢復所述調用請求,並根據所述文件路徑加載所述虛擬視頻硬體加速器。
9.根據權利要求8所述的裝置,其特徵在於,所述截取單元還用於: 通過鉤子函數截取所述視頻播放器的所述調用請求,其中,所述鉤子函數用於監控所述系統接口函數,及在當所述系統接口函數被調用時截取所述調用請求並修改所述系統接口函數的調用參數中的文件路徑。
10.根據權利要求8或9所述的裝置,其特徵在於,還包括: 分離模塊,用於在所述截取視頻播放器的調用請求之前對所述視頻數據流進行分離,以獲取所述視頻數據流的音頻壓縮數據流和視頻壓縮數據流,其中,所述虛擬視頻硬體加速器對所述視頻壓縮數據流進行解碼,所述視頻播放器的解碼器對所述音頻壓縮數據流進行解碼。
11.根據權利要求8或9所述的裝置,其特徵在於,所述加載單元還用於: 通過所述文件路徑獲取所述虛擬視頻硬體加速器的加載文件,並根據所述加載文件加載所述虛擬視頻硬體加速器。
12.根據權利要求11所述的裝置,其特徵在於,所述播放器為Flash播放器。
13.一種客戶端,其特徵在於,包括:外殼,屏幕,處理器和電路板; 所述屏幕安置在所述外殼上,所述電路板安置在所述外殼圍成的空間內部,所述處理器設置在所述電路板上; 所述處理器用於處理數據,具體用於: 向視頻播放器提供視頻數據流 ; 加載虛擬視頻硬體加速器,並通過所述虛擬視頻硬體加速器對所述視頻數據流進行解碼;以及 將解碼後的所述視頻數據流反饋至所述視頻播放器,以通過所述視頻播放器進行播放。
14.如權利要求13所述的客戶端,其特徵在於,所述處理器還用於: 截取所述視頻播放器的調用請求,所述調用請求用於調用系統接口函數; 將所述系統接口函數的調用參數中的文件路徑修改為所述虛擬視頻硬體加速器的文件路徑;以及 恢復所述調用請求,並根據所述文件路徑加載所述虛擬視頻硬體加速器。
15.如權利要求14所述的客戶端,其特徵在於,所述處理器還用於: 通過鉤子函數截取所述視頻播放器的所述調用請求,其中,所述鉤子函數用於監控所述系統接口函數,及在當所述系統接口函數被調用時截取所述調用請求並修改所述系統接口函數的調用參數中的文件路徑。
16.如權利要求14或15所述的客戶端,其特徵在於,所述處理器還用於: 在所述截取所述視頻播放器的調用請求之前,通過所述視頻播放器對所述視頻數據流進行分離,以獲取所述視頻數據流的音頻壓縮數據流和視頻壓縮數據流,其中,所述虛擬視頻硬體加速器對所述視頻壓縮數據流進行解碼,所述視頻播放器的解碼器對所述音頻壓縮數據流進行解碼。
17.如權利要求14或15所述的客戶端,其特徵在於,所述處理器還用於: 通過所述文件路徑獲取所述虛擬視頻硬體加速器的加載文件;以及根據所述加載文件加載所述虛擬視頻硬體加速器。
18.如權利要求1.3所述的客戶端,其特徵在於,所述播放器為Flash播放器。
【文檔編號】H04N21/81GK103428582SQ201310392125
【公開日】2013年12月4日 申請日期:2013年9月2日 優先權日:2013年9月2日
【發明者】宋雷, 張志和 申請人:貝殼網際(北京)安全技術有限公司, 北京金山網絡科技有限公司, 北京金山安全軟體有限公司, 珠海市君天電子科技有限公司, 可牛網絡技術(北京)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀