[發(fā)明專(zhuān)利]一種播放庫(kù)在不穩(wěn)定網(wǎng)絡(luò)下的流暢播放控制方法有效
| 申請(qǐng)?zhí)枺?/td> | 201310734781.2 | 申請(qǐng)日: | 2013-12-27 |
| 公開(kāi)(公告)號(hào): | CN103747317A | 公開(kāi)(公告)日: | 2014-04-23 |
| 發(fā)明(設(shè)計(jì))人: | 李江明;俞翔;吳仲謀;李歡;陳剛 | 申請(qǐng)(專(zhuān)利權(quán))人: | 高新興科技集團(tuán)股份有限公司 |
| 主分類(lèi)號(hào): | H04N21/43 | 分類(lèi)號(hào): | H04N21/43;H04N21/433;H04N21/438 |
| 代理公司: | 廣州粵高專(zhuān)利商標(biāo)代理有限公司 44102 | 代理人: | 邱奕才;廖繼海 |
| 地址: | 510530 廣東省廣*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 播放 不穩(wěn)定 網(wǎng)絡(luò) 流暢 控制 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域以及多媒體技術(shù)領(lǐng)域,涉及到網(wǎng)絡(luò)流媒體數(shù)據(jù)的流暢播放,具體涉及一種播放庫(kù)在不穩(wěn)定網(wǎng)絡(luò)下的流暢播放控制方法。
背景技術(shù)
所謂流媒體是指采用流式傳輸?shù)姆绞皆贗nternet播放的媒體格式。?在采用流式傳輸方式的系統(tǒng)中,用戶不必像非流式播放那樣等到整個(gè)文件全部下載完畢后才能看到當(dāng)中的內(nèi)容,而是只需要經(jīng)過(guò)幾秒鐘或幾十秒的啟動(dòng)延時(shí)即可在用戶計(jì)算機(jī)上利用相應(yīng)的播放器對(duì)壓縮的視頻或音頻等流式媒體文件進(jìn)行播放,剩余的部分將繼續(xù)進(jìn)行下載,直至播放完畢。
而關(guān)于網(wǎng)絡(luò)流媒體數(shù)據(jù)流暢播放的問(wèn)題,目前通常的解決方案有2種,分別為一級(jí)緩存方案和二級(jí)緩存方案,具體如下:
一級(jí)緩存方案:播放器只設(shè)置一個(gè)緩存區(qū),2個(gè)線程。一個(gè)線程負(fù)責(zé)收網(wǎng)絡(luò)數(shù)據(jù),另一個(gè)線程負(fù)責(zé)解碼顯示。收網(wǎng)絡(luò)數(shù)據(jù)的線程在收到網(wǎng)絡(luò)數(shù)據(jù)之后放入這個(gè)緩存區(qū),然后,繼續(xù)去收數(shù)據(jù),另外一個(gè)線程根據(jù)當(dāng)前視頻幀里面的時(shí)間戳信息延時(shí)一段時(shí)間,去取下一幀來(lái)解碼顯示。
二級(jí)緩存方案:播放器設(shè)置2個(gè)緩存區(qū),3個(gè)線程。第一個(gè)線程負(fù)責(zé)收網(wǎng)絡(luò)數(shù)據(jù),第二個(gè)線程負(fù)責(zé)解碼,第三個(gè)線程負(fù)責(zé)顯示。收網(wǎng)絡(luò)數(shù)據(jù)的線程在收到網(wǎng)絡(luò)數(shù)據(jù)之后放入第一個(gè)緩存區(qū),然后,繼續(xù)去收數(shù)據(jù)。解碼線程去讀第一個(gè)緩存區(qū)里面的數(shù)據(jù)來(lái)解碼,解碼完成的數(shù)據(jù)放入第二個(gè)緩存區(qū),如果取不到數(shù)據(jù)來(lái)解碼,則休眠一段時(shí)間再繼續(xù)取。顯示線程根據(jù)當(dāng)前顯示的視頻幀里面的時(shí)間戳信息延時(shí)一段時(shí)間,然后去第二個(gè)緩存區(qū)取下一幀來(lái)顯示,如果取不到幀就休眠一段時(shí)間。
但是上述兩種方案對(duì)于視頻的播放均不能保證流暢,存在相應(yīng)缺點(diǎn)不足。
一級(jí)緩存方案的缺點(diǎn):解碼和顯示都是放在一個(gè)線程里面執(zhí)行,由于每一幀的解碼時(shí)間一般都不同,所以每一幀的顯示時(shí)間也就不同,最后導(dǎo)致視頻播放不流暢。
二級(jí)緩存方案的缺點(diǎn):解碼和顯示分開(kāi)來(lái)了,分別由不同的線程處理。但是依然存在2個(gè)問(wèn)題:第一,顯示線程根據(jù)當(dāng)前顯示的視頻幀里面的時(shí)間戳信息延時(shí)一段時(shí)間,然后去下一幀來(lái)顯示,由于網(wǎng)絡(luò)媒體數(shù)據(jù)視頻到達(dá)的時(shí)間不穩(wěn)定,很可能緩存取空,這樣一來(lái)線程必須增加延時(shí),結(jié)果視頻顯示時(shí)間就不均衡,視頻就不流暢了。第二,顯示線程通過(guò)線程睡眠來(lái)做延時(shí),通常這個(gè)睡眠的時(shí)間是不精確的,所以也會(huì)導(dǎo)致視頻顯示時(shí)間不均衡,視頻不流暢。
發(fā)明內(nèi)容
為了解決現(xiàn)有技術(shù)存在的問(wèn)題,本發(fā)明提供了一種播放庫(kù)在不穩(wěn)定網(wǎng)絡(luò)下的流暢播放控制方法,保證網(wǎng)絡(luò)流媒體數(shù)據(jù)的流暢播放。
本發(fā)明采用的技術(shù)方案如下:
一種播放庫(kù)在不穩(wěn)定網(wǎng)絡(luò)下的流暢播放控制方法,其特征在于,包括以下步驟:
S1.設(shè)置第一線程接收網(wǎng)絡(luò)視頻數(shù)據(jù)并把它存放在第一緩存區(qū);
S2.設(shè)置第二線程讀取第一緩存區(qū)內(nèi)的數(shù)據(jù)并進(jìn)行解碼,解碼完成后數(shù)據(jù)存放在第二緩存區(qū);
S3.設(shè)置一個(gè)多媒體定時(shí)器根據(jù)網(wǎng)絡(luò)情況和流暢需求通過(guò)幀的采集時(shí)間、顯示時(shí)間和閾值來(lái)對(duì)第二緩存區(qū)待顯示的幀進(jìn)行處理,使視頻顯示達(dá)到流暢。
另外,如果第二線程取不到數(shù)據(jù)來(lái)解碼,則休眠一段時(shí)間再繼續(xù)取。
本發(fā)明與現(xiàn)有技術(shù)的最大不同之處在于:采用了定時(shí)器來(lái)對(duì)已解碼顯示的幀做延時(shí)處理來(lái)保證視頻的流暢播放,而不是依靠線程休眠。
所述多媒體定時(shí)器的處理步驟包括:
??S11.取解碼后的幀:檢查是否有從第二緩存區(qū)里面取到的未顯示的幀,如果沒(méi)有,就去第二緩存區(qū)里面取,如果取不到就立即返回。
具體地,定時(shí)器對(duì)解碼后的幀是起顯示作用的,當(dāng)?shù)诙€程解碼好幀后便會(huì)把它們存放在第二緩存區(qū)里,此時(shí)定時(shí)器會(huì)啟動(dòng)自檢程序,如果當(dāng)前在定時(shí)器里有未顯示的幀即刻處理,如果沒(méi)有就立即去第二緩存區(qū)里面取。
S22.計(jì)算當(dāng)前幀的顯示等待時(shí)間:如果當(dāng)前幀是第一幀,則等待時(shí)間為0,表示立即顯示;否則,等待時(shí)間=(當(dāng)前幀的采集時(shí)間?-上一幀的采集時(shí)間)-?(當(dāng)前時(shí)間?-?上一幀顯示的時(shí)間)?+?根據(jù)未顯示的解碼后的幀數(shù)變化的閾值;如果計(jì)算出的等待時(shí)間是大于0,多媒體定時(shí)器消息函數(shù)立即返回,繼續(xù)等待,不做顯示;如果等于0,顯示當(dāng)前幀。
所述計(jì)算閾值具體是根據(jù)網(wǎng)絡(luò)情況和流暢需求等級(jí)設(shè)定一個(gè)待顯示幀數(shù)參考值,如果顯示緩存區(qū)中待顯示的幀數(shù)是參考值,這個(gè)閾值就是0。接下來(lái),如果少于這個(gè)參考值就加大這個(gè)閾值使其大于0,表示增加等待,顯示放慢,如果大于這個(gè)參考值就減少這個(gè)值使其小于0,表示減少等待,顯示加快。
這里是定時(shí)器處理幀的核心內(nèi)容,它會(huì)根據(jù)網(wǎng)絡(luò)情況和流暢需求對(duì)幀進(jìn)行檢測(cè)處理以決定它們顯示等待的時(shí)間。
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于高新興科技集團(tuán)股份有限公司,未經(jīng)高新興科技集團(tuán)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310734781.2/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
H04N 圖像通信,如電視
H04N21-00 可選的內(nèi)容分發(fā),例如交互式電視,VOD〔視頻點(diǎn)播〕
H04N21-20 .專(zhuān)門(mén)適用于內(nèi)容分發(fā)的專(zhuān)用服務(wù)器,例如:VOD服務(wù)器;其操作
H04N21-40 .專(zhuān)門(mén)適用于接收內(nèi)容或者與內(nèi)容交互的客戶端設(shè)備,如STB[機(jī)頂盒];相關(guān)操作
H04N21-60 .用于在服務(wù)器和客戶端之間或者在遠(yuǎn)程客戶端之間的視頻分配的網(wǎng)絡(luò)結(jié)構(gòu)或者處理
H04N21-80 .通過(guò)內(nèi)容產(chǎn)生器獨(dú)立于分配過(guò)程實(shí)現(xiàn)的內(nèi)容或附加數(shù)據(jù)的生成或處理;內(nèi)容本身
H04N21-81 ..其單媒體部件
- 網(wǎng)絡(luò)和網(wǎng)絡(luò)終端
- 網(wǎng)絡(luò)DNA
- 網(wǎng)絡(luò)地址自適應(yīng)系統(tǒng)和方法及應(yīng)用系統(tǒng)和方法
- 網(wǎng)絡(luò)系統(tǒng)及網(wǎng)絡(luò)至網(wǎng)絡(luò)橋接器
- 一種電力線網(wǎng)絡(luò)中根節(jié)點(diǎn)網(wǎng)絡(luò)協(xié)調(diào)方法和系統(tǒng)
- 一種多網(wǎng)絡(luò)定位方法、存儲(chǔ)介質(zhì)及移動(dòng)終端
- 網(wǎng)絡(luò)裝置、網(wǎng)絡(luò)系統(tǒng)、網(wǎng)絡(luò)方法以及網(wǎng)絡(luò)程序
- 從重復(fù)網(wǎng)絡(luò)地址自動(dòng)恢復(fù)的方法、網(wǎng)絡(luò)設(shè)備及其存儲(chǔ)介質(zhì)
- 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法、裝置及存儲(chǔ)介質(zhì)
- 網(wǎng)絡(luò)管理方法和裝置





