一種流媒體實時播放方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種流媒體播放控制方法,屬于信息處理領(lǐng)域。
【背景技術(shù)】
[0002]目前移動終端市場擁有率越來越高。通過移動終端觀看音頻/視頻等富媒體信息的用戶需求越來越高。當(dāng)前主流媒體播放器通常需要在播放富媒體資源前先進(jìn)行資源緩沖,媒體播放器一般在資源徹底緩沖完成或者僅當(dāng)媒體資源緩沖到快進(jìn)位置后才可以進(jìn)行音視頻媒體資源的播放。
[0003]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下不足:
(I)采用如上方式的媒體資源播放方法,如果待播放媒體資源較大或當(dāng)用戶快進(jìn)快退操作較頻繁時,用戶打開媒體資源的等待時間就會較長。(2)同時在進(jìn)行快進(jìn)和后退功能時用戶亦需要等待媒體資源的緩沖,極大程度上影響了用戶的體驗。
【發(fā)明內(nèi)容】
[0004]本發(fā)明要解決的技術(shù)問題是針對上述不足,提供一種流媒體實時播放方法,采用本發(fā)明的播放方法,實現(xiàn)了以下目的:
1、根據(jù)網(wǎng)絡(luò)實際情況自適應(yīng)調(diào)整下載速度的高效數(shù)據(jù)下載。
[0005]2、快速定位快進(jìn)快退資源位置,多線程高效緩存待播放媒體資源。
[0006]3、在網(wǎng)絡(luò)狀況受限的情況下,實現(xiàn)服務(wù)器與客戶端間媒體資源高速傳輸、
流暢播放。
[0007]為解決以上問題,本發(fā)明采用以下技術(shù)方案:
一種流媒體實時播放方法,包括服務(wù)器端媒體資源處理步驟、客戶端處理步驟和快進(jìn)快退處理策略步驟。
[0008]以下是對上述技術(shù)方案的進(jìn)一步改進(jìn):
所述服務(wù)器端媒體資源處理步驟,包括網(wǎng)絡(luò)探針探測網(wǎng)絡(luò)狀態(tài)、媒體資源預(yù)處理、建立目錄索引結(jié)構(gòu)步驟。
[0009]所述網(wǎng)絡(luò)探針探測網(wǎng)絡(luò)狀態(tài)步驟,服務(wù)器端開啟守護(hù)進(jìn)程通過固定頻率向網(wǎng)絡(luò)中發(fā)送icmp數(shù)據(jù)包探測的方式,根據(jù)icmp報文的應(yīng)答時延計算網(wǎng)絡(luò)平均時延來確定當(dāng)前網(wǎng)絡(luò)的擁塞狀況。
所述網(wǎng)絡(luò)探針探測網(wǎng)絡(luò)狀態(tài)步驟,網(wǎng)絡(luò)探測方法采用對一段時間內(nèi)的多點采樣經(jīng)過濾網(wǎng)絡(luò)時延真實性后,幾何平均時延的方式獲得網(wǎng)絡(luò)往返時延值。
[0010]所述媒體資源預(yù)處理步驟,通過網(wǎng)絡(luò)探針探測后獲取得到網(wǎng)絡(luò)平均時延值后,在富媒體資源通過網(wǎng)絡(luò)分發(fā)到客戶終端設(shè)備前在服務(wù)器端需經(jīng)過預(yù)處理過程將富媒體數(shù)據(jù)進(jìn)行切割。
[0011]所述媒體資源預(yù)處理步驟,切割方式采用按照時長、切割后每段切片資源大小等策略進(jìn)行切割操作; 切割后媒體資源的切片個數(shù)與網(wǎng)絡(luò)優(yōu)劣狀態(tài)直接相關(guān),網(wǎng)絡(luò)狀態(tài)較好時,減小切片個數(shù),提高媒體資源播放時視頻緩沖效率;當(dāng)網(wǎng)絡(luò)狀態(tài)較差時,增加切片個數(shù),使得每個切片的資源大小較小。
[0012]所述建立目錄索引結(jié)構(gòu)步驟,媒體資源預(yù)處理過程結(jié)束后,針對切割后的切片片段建立目錄索引結(jié)構(gòu);建立好的目錄索引結(jié)構(gòu)記錄了媒體資源切割過程中所參照的切割規(guī)則以及各個切片的詳細(xì)信息。
[0013]所述快進(jìn)快退處理策略步驟,當(dāng)客戶端接收到用戶發(fā)出的快進(jìn)/后退請求后,客戶端首先根據(jù)用戶快進(jìn)快退的位置計算的出該快進(jìn)快退時間點所對應(yīng)的媒體資源起始時間位置;
然后客戶端通過查詢本地目錄索引結(jié)構(gòu)獲取該起始時間應(yīng)對應(yīng)的切片片段;
在確認(rèn)好起始播放的切片片段后,客戶端判定本地是否已經(jīng)下載完成該片段,如有則直接播放;否則客戶端會啟動多線程對該切片片段以及該切片片段后續(xù)的切片進(jìn)行下載。
[0014]所述客戶端處理步驟,包括客戶端媒體資源下載播放、客戶端自適應(yīng)匹配網(wǎng)絡(luò)狀況和客戶端合并視頻切片步驟。
[0015]所述客戶端媒體資源下載播放步驟,客戶端媒體資源下載過程中,終端設(shè)備首先向服務(wù)器發(fā)送請求獲取服務(wù)器端通過網(wǎng)絡(luò)探針方式所得到的連接服務(wù)器與客戶端間的網(wǎng)絡(luò)狀態(tài)參數(shù),并啟動初始線程下載服務(wù)器端存儲的目錄索引結(jié)構(gòu);
所述客戶端自適應(yīng)匹配網(wǎng)絡(luò)狀況步驟,客戶端設(shè)備通過分析當(dāng)前網(wǎng)絡(luò)狀況時延值td相較于之前測得的網(wǎng)絡(luò)平均時延值tp之間的差值絕對值是否超過設(shè)定門限值Θ,如果td-tp I > Θ,客戶端則重新計算應(yīng)啟動的線程個數(shù)N以及調(diào)整未下載任務(wù)的重新劃分;
所述客戶端合并視頻切片步驟,客戶端在接到用戶播放請求后會根據(jù)下載的目錄索引結(jié)構(gòu)重新對視頻切片按序進(jìn)行播放。
[0016]本發(fā)明基于媒體資源切割以及目錄索引的媒體資源播放方法,具有以下優(yōu)點:
1、通過視頻切割技術(shù)結(jié)合建立目錄索引結(jié)構(gòu)的方法可以實現(xiàn)富媒體資源根據(jù)網(wǎng)絡(luò)實際情況自適應(yīng)調(diào)整下載速度的高效數(shù)據(jù)下載。
[0017]2、通過目錄索引結(jié)構(gòu)可以有效響應(yīng)客戶端快進(jìn)請求,不需要等待媒體資源下載至快進(jìn)點或者必須等待整個視頻完整下載后才可以實現(xiàn)快進(jìn)后退功能。滿足用戶實時在線播放流媒體資源的同時,可以快速進(jìn)行媒體快進(jìn)和后退的功能。
[0018]3、本方法對于媒體數(shù)據(jù)較大的資源可以將大任務(wù)進(jìn)行分割為多個獨立小任務(wù),對于后續(xù)視頻處理過程可以采用流水線方式同步處理,具有提升整個處理流程效率的優(yōu)勢。
[0019]4、經(jīng)試驗,選取多種網(wǎng)絡(luò)環(huán)境下發(fā)媒體資源發(fā)現(xiàn)對于幾十MB或者較小的文件,媒體資源下發(fā)效率相對于傳統(tǒng)單線程下發(fā)方式可提升20%-30% ;對于幾百MB,幾G大小的媒體資源下發(fā)時效率可以提升60%左右。
[0020]5、實測證明本方法對于較大文件通過文件切割,采用并發(fā)任務(wù)傳輸?shù)姆绞娇梢杂行У奶岣呙襟w資源下發(fā)效率,充分利用了網(wǎng)絡(luò)的空閑資源。
[0021]下面結(jié)合附圖和實施例對本發(fā)明做進(jìn)一步說明。
【附圖說明】
[0022]附圖1本發(fā)明實施例中服務(wù)器端媒體資源處理過程示意圖; 附圖2本發(fā)明實施例中客戶端處理流程示意圖;
附圖3本發(fā)明實施例中客戶端快進(jìn)快退功能處理流程示意圖。
【具體實施方式】
[0023]實施例1
如圖1、圖2、圖3所示,一種流媒體實時播放方法,采用如下步驟處理待分發(fā)傳輸?shù)拿襟w資源數(shù)據(jù)。
[0024]一、服務(wù)器端媒體資源處理步驟
服務(wù)器端媒體資源處理過程如附圖1所示,主要由3個模塊組成:網(wǎng)絡(luò)狀態(tài)探測模塊、預(yù)處理模塊、建立目錄索引模塊;
如下按照媒體資源在服務(wù)器端處理過程的先后順序分別介紹上述3個模塊。
[0025]( I)網(wǎng)絡(luò)探針探測網(wǎng)絡(luò)狀態(tài)
實施過程如附圖1所示,服務(wù)器端開啟守護(hù)進(jìn)程通過固定頻率向網(wǎng)絡(luò)中發(fā)送i cmp數(shù)據(jù)包探測的方式,根據(jù)icmp報文的應(yīng)答時延計算網(wǎng)絡(luò)平均時延來確定當(dāng)前網(wǎng)絡(luò)的擁塞狀況;選取采樣頻率大小與網(wǎng)絡(luò)時延值計算的精確度有關(guān),頻率越大,抽樣點數(shù)越多,計算的網(wǎng)絡(luò)時延值會越精確;但抽樣點數(shù)過多會給網(wǎng)絡(luò)帶來額外網(wǎng)絡(luò)負(fù)擔(dān)。取值過程中采樣頻率的取值需權(quán)衡網(wǎng)絡(luò)壓力、服務(wù)器壓力以及時延精確度三者之間的關(guān)系,通常情況下服務(wù)器每隔5s-10s發(fā)送網(wǎng)絡(luò)探測數(shù)據(jù)包即可滿足時延計算精確度要求。
[0026]為排除網(wǎng)絡(luò)狀態(tài)的不穩(wěn)定性,本方法中的網(wǎng)絡(luò)探測方法采用對一段時間內(nèi)的多點采樣經(jīng)過濾網(wǎng)絡(luò)時延真實性后,幾何平均時延的方式獲得網(wǎng)絡(luò)往返時延值。
[0027]本方法中隨機(jī)選擇抽樣點數(shù)的方法為,設(shè)上文中采樣間隔為1s發(fā)送一個采樣數(shù)據(jù)包,則在每個采樣的1s間隔內(nèi)隨機(jī)選擇1s內(nèi)的一個時間點發(fā)送網(wǎng)絡(luò)探測數(shù)據(jù)包。
[0028]在收到網(wǎng)絡(luò)返回的計算時延值后需過濾返回值的真實性,排除某一時間點因為短暫網(wǎng)絡(luò)擁塞或者探測數(shù)據(jù)包丟失等引起的時延值計算不準(zhǔn)確因素。對過濾后的數(shù)據(jù)包采用求幾何平均值的方式計算平均時延。目前在相關(guān)文獻(xiàn)中,對于計算網(wǎng)絡(luò)時延值的方法中,采用隨機(jī)采樣抽點探測后并過濾網(wǎng)絡(luò)返回值真實性后再計算幾何平均值的方法比較少見。多數(shù)探測方法采用隨機(jī)抽樣檢測后直接通過算術(shù)平均或者其他求平均值的方法計算網(wǎng)絡(luò)時延平均值。這種方法相較本方法中采用過濾真實性的網(wǎng)絡(luò)時延探測方法在精確度上存在劣勢,沒有充分考慮網(wǎng)絡(luò)狀態(tài)的突發(fā)情況。
[0029](2)媒體資源預(yù)處理
通過步驟(I)中的網(wǎng)絡(luò)探針探測后獲取得到網(wǎng)絡(luò)平均時延值后,在富媒體資源通過網(wǎng)絡(luò)分發(fā)到客戶終端設(shè)備前在服務(wù)器端需經(jīng)過預(yù)處理過程將富媒體數(shù)據(jù)進(jìn)行切割。
[0030]切割方式結(jié)合當(dāng)前網(wǎng)絡(luò)擁塞狀態(tài)可采用類似按照時長、切割后每段切片資源大小等策略進(jìn)行切割操作。
[0031]切割后媒體資源的切片個數(shù)與網(wǎng)絡(luò)優(yōu)劣狀態(tài)直接相關(guān),網(wǎng)絡(luò)狀態(tài)較好時,應(yīng)減小切片個數(shù),提高媒體資源播放時視頻緩沖效率。當(dāng)網(wǎng)絡(luò)狀態(tài)較差時,應(yīng)增加切片個數(shù),使得每個切片的資源大小較小,保證在媒體緩沖時可以快速下載每個切片,實現(xiàn)媒體資源流暢播放。
[0032]具體切片個數(shù)計算方法描述如下:設(shè)步驟(I)中計算得到網(wǎng)絡(luò)平均時延用tp表示,經(jīng)服務(wù)器切割模塊預(yù)處理后分割得到的切片個數(shù)用C表示,在不考慮網(wǎng)絡(luò)狀態(tài)時按照預(yù)定切片大小或者預(yù)定切片時間進(jìn)行切割所獲得的切片個數(shù)用M表示,網(wǎng)絡(luò)最后一次抽樣獲取得到的網(wǎng)絡(luò)時延值用td表示。
[0033]則服務(wù)器端自適應(yīng)匹配網(wǎng)絡(luò)狀態(tài)后,切片個數(shù)關(guān)系滿足C= a *tp/td*M。
[0034]其中參數(shù)α為針對計算公式中對時延變化導(dǎo)致切片個數(shù)變化大小而設(shè)定的一個調(diào)節(jié)因子,在對媒體資源預(yù)處理切割過程中,如果需要對時延變化做出更靈敏反應(yīng),則可以設(shè)定α為一較大數(shù)值。如不需要過高靈敏度,則可以設(shè)定為一個較小數(shù)值。出于實際工程應(yīng)用中,減輕智能終端以及服務(wù)器處理壓力,α不宜設(shè)置為過大數(shù)值,在智能終端應(yīng)用開發(fā)中設(shè)定α =0.8。
[0035](3)建立目錄索引結(jié)構(gòu)
媒體資源預(yù)處理過程結(jié)束后,為便于服務(wù)器與客戶端后續(xù)媒體資源信息處理流程,針對切割后的切片片段建立目錄索引結(jié)構(gòu)。
[0036]建立好的目錄索引結(jié)構(gòu)記錄了媒體資源切割過程中所參照的切割規(guī)則以及各個切片的詳細(xì)信息。例如切割方式按照時長還是大小,切割總塊數(shù),切割時長為多少(如果采用按照時長進(jìn)行切割),切割大小為多少(如果采用按照大小進(jìn)行切割),各個切割字視頻的片段命名以及起始時長等信息。
[0037]二、客戶