一種流媒體播放器智能緩沖方法
【專利摘要】本發(fā)明提供一種流媒體播放器智能緩沖方法,其具體緩沖方法為:設(shè)置多線程加速緩沖:記錄已經(jīng)播放數(shù)據(jù)的頭指針和尾指針,判斷是否達(dá)到特定的多線程緩沖條件,達(dá)到后,分段劃分,啟動(dòng)響應(yīng)的線程去下載請(qǐng)求數(shù)據(jù),上述頭指針與尾指針之間的內(nèi)容就是即將播放的內(nèi)容;設(shè)置合理的緩沖消耗及觸發(fā)緩沖機(jī)制。該一種流媒體播放器智能緩沖方法和現(xiàn)有技術(shù)相比,在不提高成本的前提下,改善用戶體驗(yàn),實(shí)用性強(qiáng),播放平穩(wěn)流暢,使用效果理想,易于推廣。
【專利說(shuō)明】一種流媒體播放器智能緩沖方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)字電視【技術(shù)領(lǐng)域】,具體的說(shuō)是一種不提高成本、改善用戶體驗(yàn)的流媒體播放器智能緩沖方法。
【背景技術(shù)】
[0002]2013年8月17日,國(guó)務(wù)院發(fā)布了“寬帶中國(guó)”戰(zhàn)略實(shí)施方案,當(dāng)前中國(guó)正在迎來(lái)更高的帶寬環(huán)境,為通過(guò)網(wǎng)絡(luò)的OTT機(jī)頂盒產(chǎn)品帶來(lái)了生機(jī)。通過(guò)網(wǎng)絡(luò)的ott產(chǎn)品與普通的dvb產(chǎn)品對(duì)比具有很強(qiáng)的優(yōu)勢(shì)。Ott盒子可以實(shí)現(xiàn)dvb產(chǎn)品的所有功能,并且無(wú)需鋪設(shè)多余的線路減輕運(yùn)營(yíng)以及裝維人員的負(fù)擔(dān),隨著Android系統(tǒng)和寬帶中國(guó)的發(fā)展,相信ott產(chǎn)品將會(huì)得到更好的發(fā)展。但是由于目前網(wǎng)絡(luò)的因素,ott盒子在收看高清以及藍(lán)光的節(jié)目時(shí),仍然無(wú)法達(dá)到和dvb產(chǎn)品的體驗(yàn)。主要原因就是由于網(wǎng)絡(luò)帶寬限制導(dǎo)致的收看時(shí)的卡頓,嚴(yán)重影響了用戶體驗(yàn)。
[0003]目前的各個(gè)廠家的播放器大部分并沒(méi)有針對(duì)這種特殊且復(fù)雜的情況進(jìn)行深入的優(yōu)化,導(dǎo)致用戶在使用ott產(chǎn)品收看直播或者高清點(diǎn)播的時(shí)候,出現(xiàn)了各種問(wèn)題,主要的就是卡頓問(wèn)題,給用戶帶來(lái)了很差的使用體驗(yàn)。影響了 ott盒子產(chǎn)品的推廣。
[0004]目前我國(guó)網(wǎng)速絕大部分是4M下行帶寬,通過(guò)OTT機(jī)頂盒產(chǎn)品收看高清節(jié)目,由于帶寬限制,經(jīng)常出現(xiàn)卡頓或者換臺(tái)速度緩慢的問(wèn)題,嚴(yán)重影響用戶體驗(yàn)。在寬帶中國(guó)如火如荼的發(fā)展時(shí),如何使OTT機(jī)頂盒產(chǎn)品與DVB產(chǎn)品可以同臺(tái)競(jìng)爭(zhēng),主要就集中在用戶體驗(yàn)方面。而用戶體驗(yàn)的提高,主要依賴性能優(yōu)良的播放器,除了裝備優(yōu)秀的硬件解碼芯片,如何在不提高成本的前提下,改善用戶體驗(yàn),是一大難題?;诖耍菊f(shuō)明致力于提供一種不提高成本下的解決方案,改善用戶的使用體驗(yàn)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的技術(shù)任務(wù)是解決現(xiàn)有技術(shù)的不足,提供一種不提高成本、流媒體播放器智能緩沖方法。
[0006]本發(fā)明的技術(shù)方案是按以下方式實(shí)現(xiàn)的,該一種流媒體播放器智能緩沖方法,其具體緩沖方法為:
一、設(shè)置多線程加速緩沖:記錄已經(jīng)播放數(shù)據(jù)的頭指針和尾指針,判斷是否達(dá)到特定的多線程緩沖條件,達(dá)到后,分段劃分,啟動(dòng)響應(yīng)的線程去下載請(qǐng)求數(shù)據(jù),具體的數(shù)值,依賴于具體的網(wǎng)絡(luò)環(huán)境,服務(wù)器片源清晰度以及播放器配置,上述頭指針與尾指針之間的內(nèi)容就是即將播放的內(nèi)容;
二、設(shè)置合理的緩沖消耗及觸發(fā)緩沖機(jī)制:假設(shè)某段時(shí)間客戶OTT盒子從流媒體服務(wù)器的平均下載速度S,客戶點(diǎn)播的視頻碼率M,人的心理接受卡頓時(shí)間T,為了保證T,在緩沖區(qū)準(zhǔn)備好適量的數(shù)據(jù)后才能發(fā)送給底層播放器去處理播放,該緩沖數(shù)據(jù)的最小值為M*T,如果不符合條件,則讓播放器暫停等待。
[0007]所述步驟一的詳細(xì)內(nèi)容為:播放器維護(hù)一個(gè)環(huán)狀的緩沖列表,用于緩沖從服務(wù)器端獲取的數(shù)據(jù),播放器播放時(shí)通過(guò)特定的接口從中獲取數(shù)據(jù)進(jìn)行播放,緩沖區(qū)的大小根據(jù)各自的情況進(jìn)行設(shè)計(jì),播放器維護(hù)一個(gè)空閑頭指針和空閑尾指針,所述空閑頭指針是指有效數(shù)據(jù)尾指針、空閑尾指針是指數(shù)據(jù)頭指針,兩者之間的數(shù)據(jù)是無(wú)效數(shù)據(jù),之外的數(shù)據(jù)是有效的未播放數(shù)據(jù),當(dāng)空閑數(shù)據(jù)超過(guò)臨界值時(shí),啟動(dòng)多線程下載,根據(jù)具體的網(wǎng)絡(luò)環(huán)境和緩沖大小,劃分不同數(shù)量的線程,同時(shí)啟動(dòng)下載工作,直到填滿目前的空閑緩沖區(qū),并及時(shí)更新響應(yīng)的指針位置。
[0008]所述步驟二中將適量緩沖數(shù)據(jù)發(fā)送給底層服務(wù)器時(shí),首先啟動(dòng)一個(gè)線程下載,每T/2做一次緩沖檢查,如果空閑區(qū)域大于T/2*M則啟動(dòng)多線程下載;每個(gè)線程負(fù)責(zé)T*2*M的數(shù)據(jù)量下載。
[0009]本發(fā)明與現(xiàn)有技術(shù)相比所產(chǎn)生的有益效果是:
本發(fā)明的一種流媒體播放器智能緩沖方法改善用戶在使用OTT機(jī)頂盒產(chǎn)品收看直播節(jié)目的觀看體驗(yàn),在不提高成本的前提下,改善用戶體驗(yàn),實(shí)用性強(qiáng),播放平穩(wěn)流暢,使用效果理想,易于推廣。
【專利附圖】
【附圖說(shuō)明】
[0010]附圖1是本發(fā)明的多線程緩沖示意圖。
【具體實(shí)施方式】
[0011]下面結(jié)合附圖對(duì)本發(fā)明的一種流媒體播放器智能緩沖方法作以下詳細(xì)說(shuō)明。
[0012]本發(fā)明與現(xiàn)有技術(shù)的區(qū)別在于輸出的影音信號(hào)從一路擴(kuò)展到多路,從而能夠反映多個(gè)場(chǎng)景。如附圖1所示提供一種流媒體播放器智能緩沖方法,其具體緩沖方法為:
一、設(shè)置多線程加速緩沖:記錄已經(jīng)播放數(shù)據(jù)的頭指針和尾指針,判斷是否達(dá)到特定的多線程緩沖條件,達(dá)到后,分段劃分,啟動(dòng)響應(yīng)的線程去下載請(qǐng)求數(shù)據(jù),具體的數(shù)值,依賴于具體的網(wǎng)絡(luò)環(huán)境,服務(wù)器片源清晰度以及播放器配置,上述頭指針與尾指針之間的內(nèi)容就是即將播放的內(nèi)容。
[0013]該步驟一的詳細(xì)內(nèi)容為:播放器維護(hù)一個(gè)環(huán)狀的緩沖列表,用于緩沖從服務(wù)器端獲取的數(shù)據(jù),播放器播放時(shí)通過(guò)特定的接口從中獲取數(shù)據(jù)進(jìn)行播放,緩沖區(qū)的大小根據(jù)各自的情況進(jìn)行設(shè)計(jì)。
[0014]程序應(yīng)當(dāng)維護(hù)一個(gè)空閑頭start指針(也即是有效數(shù)據(jù)尾指針)和空閑end尾指針(也就是有線數(shù)據(jù)頭指針),兩者之間的數(shù)據(jù)是無(wú)效數(shù)據(jù),之外的數(shù)據(jù)是有效的未播放數(shù)據(jù)(播放器可以通過(guò)特定接口獲取其中的數(shù)據(jù))。
[0015]當(dāng)空閑數(shù)據(jù)超過(guò)臨界值時(shí),啟動(dòng)多線程下載,根據(jù)具體的網(wǎng)絡(luò)環(huán)境和緩沖大小,劃分不同數(shù)量的線程,同時(shí)啟動(dòng)下載工作,直到填滿目前的空閑緩沖區(qū),注意及時(shí)更新響應(yīng)的指針位置。
[0016]二、設(shè)置合理的緩沖消耗及觸發(fā)緩沖機(jī)制:緩沖策略的設(shè)計(jì),涉及到很多因素。需要使用一個(gè)數(shù)學(xué)模型去建模模擬。假設(shè)某段時(shí)間客戶OTT盒子從流媒體服務(wù)器的平均下載速度S(注意S并不恒定是隨著時(shí)間在不斷變化的),客戶點(diǎn)播的視頻碼率(或者片源清晰度)M,人的心理接受卡頓時(shí)間T (小于這個(gè)時(shí)間人們?cè)谑湛垂?jié)目的時(shí)候就會(huì)感到頻繁卡頓)。
[0017]必須明確的一點(diǎn)是,S〈M絕對(duì)會(huì)出現(xiàn)暫停的現(xiàn)象,但外觀表現(xiàn)是“短時(shí)間內(nèi)頻繁卡頓”還是“長(zhǎng)時(shí)間暫停緩沖”,就和緩沖策略有關(guān)。S>M就像本地播放,都無(wú)需緩沖。最合理的方案是根據(jù)M和實(shí)時(shí)的S定制的T,每隔一段時(shí)間,隨時(shí)調(diào)整緩沖策略。這樣既照顧用戶感受,又兼顧性能。
[0018]首先我們討論我們的緩沖區(qū)應(yīng)該設(shè)置為多大合適,從定義可知最小應(yīng)該為M*T否則在M為0的極限情況下,客戶可能會(huì)感到卡頓。如果硬件RAM配置大,可適當(dāng)增加緩沖區(qū)大小。目前流行的硬件配置都可以緩沖I分鐘左右,而T大約在3s以內(nèi)。
[0019]在數(shù)據(jù)準(zhǔn)備好了后,就可以發(fā)送的播放器進(jìn)行播放處理,為了避免頻繁的卡頓,可知最小是M*T的緩沖量時(shí)才能發(fā)送給播放器進(jìn)行播放。因此在進(jìn)行緩沖接口設(shè)計(jì)的時(shí)候要注意,如果不符合條件,則讓播放器暫停等待。
[0020]應(yīng)該在何時(shí)觸發(fā)多線程下載機(jī)制,到底啟動(dòng)幾個(gè)線程,也要合理的設(shè)計(jì),避免造成cpu使用率過(guò)高的情況。本說(shuō)明建議啟動(dòng)一個(gè)線程,每T/2做一次緩沖檢查,如果空閑區(qū)域大于T/2*M則啟動(dòng)多線程下載。每個(gè)線程負(fù)責(zé)T*2*M的數(shù)據(jù)量下載。經(jīng)過(guò)實(shí)踐,該處理可以即節(jié)省cpu又可以高效的緩沖數(shù)據(jù)。
[0021]實(shí)施例:假設(shè)某款硬件采用了 IG ram,除了操作系統(tǒng)占用剩余600M內(nèi)存空間。假設(shè)某客戶的ott盒子從片源服務(wù)器下載的速度為1M/S人們認(rèn)為的頻繁卡頓的最高時(shí)間為3S,片源碼率為2M/S,則該客戶收看的時(shí)候必然會(huì)產(chǎn)生暫停緩沖的現(xiàn)象,為了避免長(zhǎng)時(shí)間的暫停和頻繁的卡頓現(xiàn)象發(fā)生,建議播放器做如下的操作。
[0022]首先申請(qǐng)240M內(nèi)存用于構(gòu)建循環(huán)緩沖,一開(kāi)始會(huì)啟動(dòng)240/(3*2*2) =20 (如果線程過(guò)多,導(dǎo)致了 cpu使用率過(guò)高,可以根據(jù)情況限制線程個(gè)數(shù)),同時(shí)向服務(wù)器發(fā)起下載請(qǐng)求。同時(shí)啟動(dòng)檢測(cè)緩沖線程每3/2=2s左右左檢測(cè),當(dāng)達(dá)到2*3=6M,可是播放數(shù)據(jù),由于播放的同時(shí),后臺(tái)在緩沖數(shù)據(jù),因此很快填滿數(shù)據(jù),同時(shí)有檢測(cè)線程的檢測(cè),播放器會(huì)盡最大程度的平穩(wěn)播放下去,從而提高用戶體驗(yàn)。
[0023]除說(shuō)明書所述的技術(shù)特征外,均為本領(lǐng)域技術(shù)人員的公知技術(shù)。
【權(quán)利要求】
1.一種流媒體播放器智能緩沖方法,其特征在于:其具體緩沖方法為: 一、設(shè)置多線程加速緩沖:記錄已經(jīng)播放數(shù)據(jù)的頭指針和尾指針,判斷是否達(dá)到特定的多線程緩沖條件,達(dá)到后,分段劃分,啟動(dòng)響應(yīng)的線程去下載請(qǐng)求數(shù)據(jù),具體的數(shù)值,依賴于具體的網(wǎng)絡(luò)環(huán)境,服務(wù)器片源清晰度以及播放器配置,上述頭指針與尾指針之間的內(nèi)容就是即將播放的內(nèi)容; 二、設(shè)置合理的緩沖消耗及觸發(fā)緩沖機(jī)制:假設(shè)某段時(shí)間客戶OTT盒子從流媒體服務(wù)器的平均下載速度S,客戶點(diǎn)播的視頻碼率M,人的心理接受卡頓時(shí)間T,為了保證T,在緩沖區(qū)準(zhǔn)備好適量的數(shù)據(jù)后才能發(fā)送給底層播放器去處理播放,該緩沖數(shù)據(jù)的最小值為M*T,如果不符合條件,則讓播放器暫停等待。
2.根據(jù)權(quán)利要求1所述的一種流媒體播放器智能緩沖方法,其特征在于:所述步驟一的詳細(xì)內(nèi)容為:播放器維護(hù)一個(gè)環(huán)狀的緩沖列表,用于緩沖從服務(wù)器端獲取的數(shù)據(jù),播放器播放時(shí)通過(guò)特定的接口從中獲取數(shù)據(jù)進(jìn)行播放,緩沖區(qū)的大小根據(jù)各自的情況進(jìn)行設(shè)計(jì),播放器維護(hù)一個(gè)空閑頭指針和空閑尾指針,所述空閑頭指針是指有效數(shù)據(jù)尾指針、空閑尾指針是指數(shù)據(jù)頭指針,兩者之間的數(shù)據(jù)是無(wú)效數(shù)據(jù),之外的數(shù)據(jù)是有效的未播放數(shù)據(jù),當(dāng)空閑數(shù)據(jù)超過(guò)臨界值時(shí),啟動(dòng)多線程下載,根據(jù)具體的網(wǎng)絡(luò)環(huán)境和緩沖大小,劃分不同數(shù)量的線程,同時(shí)啟動(dòng)下載工作,直到填滿目前的空閑緩沖區(qū),并及時(shí)更新響應(yīng)的指針位置。
3.根據(jù)權(quán)利要求1或2所述的一種流媒體播放器智能緩沖方法,其特征在于:所述步驟二中將適量緩沖數(shù)據(jù)發(fā)送給底層服務(wù)器時(shí),首先啟動(dòng)一個(gè)線程下載,每T/2做一次緩沖檢查,如果空閑區(qū)域大于T/2*M則啟動(dòng)多線程下載;每個(gè)線程負(fù)責(zé)T*2*M的數(shù)據(jù)量下載。
【文檔編號(hào)】H04N21/462GK103596036SQ201310558911
【公開(kāi)日】2014年2月19日 申請(qǐng)日期:2013年11月12日 優(yōu)先權(quán)日:2013年11月12日
【發(fā)明者】劉小衛(wèi), 周元元 申請(qǐng)人:浪潮齊魯軟件產(chǎn)業(yè)有限公司