一種用于多媒體播放的方法與設備的制造方法
【技術領域】
[0001]本發(fā)明涉及互聯(lián)網(wǎng)技術領域,尤其涉及一種用于多媒體播放的技術。
【背景技術】
[0002]隨著流媒體技術的不斷發(fā)展,越來越多的用戶習慣于在網(wǎng)上進行音視頻的點播或直播。然而在音視頻的播放過程中,經(jīng)常會出現(xiàn)播放卡頓或播放不連續(xù)等問題。
[0003]圖1示出了現(xiàn)有技術中一種用于多媒體播放的系統(tǒng)架構示意圖。服務器用于提供音視頻等多媒體的中轉服務,并通過網(wǎng)絡環(huán)境(如網(wǎng)絡運營商),將多媒體流發(fā)送至客戶端。客戶端包括網(wǎng)絡緩存隊列、流解析器和播放模塊,其中,所述網(wǎng)絡緩存隊列用于為數(shù)據(jù)的接收與發(fā)送提供緩存,流解析器則將原始數(shù)據(jù)解析成用于播放的音視頻數(shù)據(jù),最后由播放模塊進行播放。
[0004]然而,由于該方法僅包含一層緩存隊列(即網(wǎng)絡緩存隊列),因此,該緩存隊列只能緩沖因為網(wǎng)絡導致的不流暢行為,而對于如編解碼卡頓導致的播放不連續(xù),或在解析與播放過程中出現(xiàn)的播放不連續(xù)問題則無法處理。此外,在線視頻播放,尤其是直播時,對數(shù)據(jù)的時效性要求較高;而在當前技術中,由于僅能通過直接拋棄該網(wǎng)絡緩沖隊列中的最新的數(shù)據(jù)或最老的數(shù)據(jù)來實現(xiàn)同步,因此,會導致播放效果生硬,影響用戶體驗。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種用于多媒體播放的方法與設備。
[0006]根據(jù)本發(fā)明的一個方面,提供了一種用于多媒體播放的方法,其中,該方法包括:
[0007]a獲取一個或多個流媒體數(shù)據(jù)包,其中,所述流媒體數(shù)據(jù)包對應于待播放的多媒體資源;
[0008]b在第一緩沖隊列中對所述流媒體數(shù)據(jù)包進行緩沖,以獲得一個或多個第一緩沖數(shù)據(jù)包;
[0009]c解析所述第一緩沖數(shù)據(jù)包,以獲得一個或多個待播放數(shù)據(jù)包;
[0010]d在第二緩沖隊列中對所述待播放數(shù)據(jù)包進行緩沖,以獲得一個或多個第二緩沖數(shù)據(jù)包;
[0011 ] e播放所述第二緩沖數(shù)據(jù)包。
[0012]根據(jù)本發(fā)明的另一方面,還提供了一種用于多媒體播放的播放設備,其中,該設備包括:
[0013]獲取裝置,用于獲取一個或多個流媒體數(shù)據(jù)包,其中,所述流媒體數(shù)據(jù)包對應于待播放的多媒體資源;
[0014]第一緩沖裝置,用于在第一緩沖隊列中對所述流媒體數(shù)據(jù)包進行緩沖,以獲得一個或多個第一緩沖數(shù)據(jù)包;
[0015]解析裝置,用于解析所述第一緩沖數(shù)據(jù)包,以獲得一個或多個待播放數(shù)據(jù)包;
[0016]第二緩沖裝置,用于在第二緩沖隊列中對所述待播放數(shù)據(jù)包進行緩沖,以獲得一個或多個第二緩沖數(shù)據(jù)包;
[0017]播放裝置,用于播放所述第二緩沖數(shù)據(jù)包。
[0018]與現(xiàn)有技術相比,本發(fā)明分別在獲取流媒體數(shù)據(jù)包以及解析數(shù)據(jù)包之間、解析數(shù)據(jù)包以及播放數(shù)據(jù)包之間引入兩個緩沖隊列,以對待播放的媒體資源的數(shù)據(jù)包進行緩沖,從而解決了由于網(wǎng)絡以及編解碼導致的播放卡頓或壞幀等問題,同時也解決了多線程死鎖以及多線程垃圾數(shù)據(jù)等問題,提高了系統(tǒng)運行效率以及播放效果,使得播放穩(wěn)定性更好,語音或是視頻流更加流暢,改善了用戶體驗。
[0019]而且,本發(fā)明還可以基于多種方式,確定第一緩沖隊列和/或第二緩沖隊列的長度,從而使得所述緩沖隊列在緩沖數(shù)據(jù)包時更加靈活,符合當前的系統(tǒng)處理需求,提高了系統(tǒng)運行效率以及播放效果,使得播放穩(wěn)定性更好,語音或是視頻流更加流暢,改善了用戶體驗。
[0020]而且,本發(fā)明還可以在所述第一緩沖隊列和/或所述第二緩沖隊列已滿時,根據(jù)拋棄規(guī)則拋棄所述第一緩沖隊列和/或所述第二緩沖隊列中的一個或多個數(shù)據(jù)包;進一步地,還可以根據(jù)預定條件確定與所述第一緩沖隊列和/或所述第二緩沖隊列相對應的拋棄規(guī)則;從而采用多種靈活的拋棄規(guī)則,解決了現(xiàn)有技術中播放效果生硬、用戶體驗不佳的問題,保證了播放質(zhì)量與播放效果,使得播放穩(wěn)定性更好,語音或是視頻流更加流暢,提高了系統(tǒng)運行效率,改善了用戶體驗。
【附圖說明】
[0021]通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:
[0022]圖1示出了現(xiàn)有技術中一種用于多媒體播放的系統(tǒng)架構示意圖;
[0023]圖2示出了根據(jù)本發(fā)明一個方面的一種用于多媒體播放的系統(tǒng)架構示意圖;
[0024]圖3示出根據(jù)本發(fā)明一個方面的一種用于多媒體播放的播放設備示意圖;
[0025]圖4示出根據(jù)本發(fā)明一個優(yōu)選實施例的一種用于多媒體播放的播放設備示意圖;
[0026]圖5示出根據(jù)本發(fā)明另一個方面的一種用于多媒體播放的方法流程圖;
[0027]圖6示出根據(jù)本發(fā)明一個優(yōu)選實施例的一種用于多媒體播放的方法流程圖;
[0028]圖7(a)至圖7(d)示出了根據(jù)本發(fā)明的一個優(yōu)選實施例的用于多媒體播放的拋棄策略示意圖。
[0029]附圖中相同或相似的附圖標記代表相同或相似的部件。
【具體實施方式】
[0030]在更加詳細地討論示例性實施例之前應當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各項操作描述成順序的處理,但是其中的許多操作可以被并行地、并發(fā)地或者同時實施。此外,各項操作的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應于方法、函數(shù)、規(guī)程、子例程、子程序等等。
[0031]在上下文中所稱“播放設備”,即為“計算機設備”,也稱為“電腦”,是指可以通過運行預定程序或指令來執(zhí)行數(shù)值計算和/或邏輯計算等預定處理過程的智能電子設備,其可以包括處理器與存儲器,由處理器執(zhí)行在存儲器中預存的存續(xù)指令來執(zhí)行預定處理過程,或是由ASIC、FPGA、DSP等硬件執(zhí)行預定處理過程,或是由上述二者組合來實現(xiàn)。
[0032]—般情況下,所述播放設備即為用戶設備,即客戶端。其中,所述用戶設備包括但不限于個人電腦、筆記本電腦、平板電腦、智能手機、PDA等。此外,所述播放設備也可以由所述用戶設備與其他第三方設備(如網(wǎng)絡設備)相集成而組成;在此,所述網(wǎng)絡設備包括但不限于單個網(wǎng)絡服務器、多個網(wǎng)絡服務器組成的服務器組或基于云計算(Cloud Computing)的由大量計算機或網(wǎng)絡服務器構成的云,其中,云計算是分布式計算的一種,由一群松散耦合的計算機集組成的一個超級虛擬計算機。其中,所述網(wǎng)絡包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡等。
[0033]需要說明的是,所述用戶設備、網(wǎng)絡設備和網(wǎng)絡等僅為舉例,其他現(xiàn)有的或今后可能出現(xiàn)的用戶設備、網(wǎng)絡設備或網(wǎng)絡如可適用于本發(fā)明,也應包含在本發(fā)明保護范圍以內(nèi),并以引用方式包含于此。
[0034]這里所公開的具體結構和功能細節(jié)僅僅是代表性的,并且是用于描述本發(fā)明的示例性實施例的目的。但是本發(fā)明可以通過許多替換形式來具體實現(xiàn),并且不應當被解釋成僅僅受限于這里所闡述的實施例。
[0035]應當理解的是,雖然在這里可能使用了術語“第一”、“第二”等等來描述各個單元,但是這些單元不應當受這些術語限制。使用這些術語僅僅是為了將一個單元與另一個單元進行區(qū)分。舉例來說,在不背離示例性實施例的范圍的情況下,第一單元可以被稱為第二單元,并且類似地第二單元可以被稱為第一單元。這里所使用的術語“和/或”包括其中一個或更多所列出的相關聯(lián)項目的任意和所有組合。
[0036]這里所使用的術語僅僅是為了描述具體實施例而不意圖限制示例性實施例。除非上下文明確地另有所指,否則這里所使用的單數(shù)形式“一個”、“一項”還意圖包括復數(shù)。還應當理解的是,這里所使用的術語“包括”和/或“包含”規(guī)定所陳述的特征、整數(shù)、步驟、操作、單元和/或組件的存在,而不排除存在或添加一個或更多其他特征、整數(shù)、步驟、操作、單元、組件和/或其組合。
[0037]還應當提到的是,在一些替換實現(xiàn)方式中,所提到的功能/動作可以按照不同于附圖中標示的順序發(fā)生。舉例來說,取決于所涉及的功能/動作,相繼示出的兩幅圖實際上可以基本上同時執(zhí)行或者有時可以按照相反的順序來執(zhí)行。
[0038]下面結合附圖對本發(fā)明作進一步詳細描述。
[0039]圖2示出了根據(jù)本發(fā)明一個方面的一種用于多媒體播放的系統(tǒng)架構示意圖。
[0040]服務器用于提供音視頻等多媒體的中轉服務,并通過網(wǎng)絡環(huán)境(如網(wǎng)絡運營商),將多媒體流發(fā)送至客戶端??蛻舳税ňW(wǎng)絡數(shù)據(jù)收發(fā)模塊、第一緩沖隊列、音視頻編解碼器、第二緩沖隊列和播放模塊,其中,所述網(wǎng)絡數(shù)據(jù)收發(fā)模塊用于進行數(shù)據(jù)的接收與發(fā)送,所述第一緩沖隊列用于為數(shù)據(jù)的接收與發(fā)送提供緩存,音視頻編解碼器在充當接收方時則將原始數(shù)據(jù)解碼成用于播放的音視頻數(shù)據(jù),在充當發(fā)送方時則將待發(fā)送的數(shù)據(jù)進行編碼,第二緩沖隊列對解碼后或解碼前的音視頻數(shù)據(jù)提供緩存,最后由播放模塊進行播放。
[0041]利用所述第一緩沖隊列與所述第二緩沖隊列,所述網(wǎng)絡數(shù)據(jù)收發(fā)模塊、音視頻編解碼器所對應的編解碼模塊以及播放模塊被拆分成了多個線程,即網(wǎng)絡收發(fā)線程、編解碼線程以及播放線程。所述第一緩沖隊列與所述第二緩沖隊列分別位于上述三個模塊之間,使得網(wǎng)絡數(shù)據(jù)的獲取、解析、播放不在同一層上進行,從而解決了多線程并行帶來的諸多問題,如多線程死鎖等,同時,也提高了整個系統(tǒng)的運行效率。
[0042]圖3示出根據(jù)本發(fā)明一個方面的一種用于多媒體播放的播放設備示意圖。其中,所述播放設備包括獲取裝置1、第一緩沖裝置2、解析裝置3、第二緩沖裝置4、播放裝置5 ο具體地,所述獲取裝置I獲取一個或多個流媒體數(shù)據(jù)包,其中,所述流媒體數(shù)據(jù)包對應于待播放的多媒體資源;所述第一緩沖裝置2在第一緩沖隊列中對所述流媒體數(shù)據(jù)包進行緩沖,以獲得一個或多個第一緩沖數(shù)據(jù)包;所述解析裝置3解析所述第一緩沖數(shù)據(jù)包,以獲得一個或多個待播放數(shù)據(jù)包;所述第二緩沖裝置4在第二緩沖隊列中對所述待播放數(shù)據(jù)包進行緩沖,以獲得一個或多個第二緩沖數(shù)據(jù)包;所述播放裝置5播放所述第二緩沖數(shù)據(jù)包。
[0043]所述獲取裝置I獲取一個或多個流媒體數(shù)據(jù)包,其中,所述流媒體數(shù)據(jù)包對應于待播放的多媒體資源。
[0044]具體地,所述獲取裝置I基