亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

音/視頻直播方法、裝置及控制方法、裝置的制造方法

文檔序號(hào):9420718閱讀:347來源:國知局
音/視頻直播方法、裝置及控制方法、裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)傳輸技術(shù)領(lǐng)域,尤其涉及一種基于TCP直播系統(tǒng)消除時(shí)延抖動(dòng)的音/視頻直播方法、裝置及對(duì)應(yīng)的控制方法、裝置。
【背景技術(shù)】
[0002]視頻直播系統(tǒng)是把現(xiàn)場的視頻信號(hào)(如攝像頭、攝像機(jī))和語音信號(hào)(如麥克風(fēng))進(jìn)行實(shí)時(shí)采集編碼,通過網(wǎng)絡(luò)發(fā)送到服務(wù)器上去,用戶可以用過網(wǎng)絡(luò)實(shí)時(shí)觀看。一個(gè)最簡單的視頻直播系統(tǒng)模型由五個(gè)環(huán)節(jié)構(gòu)成:采集、編碼、傳輸、解碼、播放。由于現(xiàn)實(shí)的因素使得視頻直播系統(tǒng)的實(shí)現(xiàn)不是那么簡單,其涉及到很多專業(yè)技術(shù)。
[0003]時(shí)延抖動(dòng)(jitter)作為視頻直播系統(tǒng)中的一項(xiàng)重要的QoS參數(shù),對(duì)語音通信質(zhì)量有著直接的影響。因此需要采用一定的措施來防止時(shí)延抖動(dòng),從而保證一定的直播質(zhì)量。
[0004]時(shí)延抖動(dòng)(jitter)是指由于各種延遲的變化導(dǎo)致網(wǎng)絡(luò)中的數(shù)據(jù)分組到達(dá)速率的變化。網(wǎng)絡(luò)時(shí)延是指一個(gè)IP包在網(wǎng)絡(luò)上傳輸所需的時(shí)間,它包括算法時(shí)延、編碼延遲、網(wǎng)絡(luò)傳輸時(shí)延和抖動(dòng)緩沖時(shí)延。網(wǎng)絡(luò)時(shí)延抖動(dòng)就是網(wǎng)絡(luò)延遲一會(huì)大一會(huì)小,在這種情況下,即使發(fā)送方是定時(shí)發(fā)送數(shù)據(jù)包,而接收方的接收也無法同樣定時(shí),有時(shí)一個(gè)周期內(nèi)一個(gè)包也接收不到,有時(shí)一個(gè)周期內(nèi)接收到好幾個(gè)包。如果網(wǎng)絡(luò)抖動(dòng)的較嚴(yán)重,數(shù)據(jù)包還有可能丟棄。如此,導(dǎo)致接收方聽到的聲音就是一卡一卡的。
[0005]為了消除時(shí)延抖動(dòng),通常采用抖動(dòng)緩沖技術(shù)(JitterBuffer),即在接收方設(shè)定一個(gè)緩沖區(qū),數(shù)據(jù)報(bào)到達(dá)時(shí)首先進(jìn)入緩沖池暫存,隨后系統(tǒng)再以平滑的速率將數(shù)據(jù)包從緩沖池中取出,經(jīng)解壓后播放給用戶。這種緩沖技術(shù)可以在一定限度內(nèi)有效消除語音抖動(dòng),并提尚首質(zhì)O
[0006]JitterBuffer的緩沖深度取決于網(wǎng)絡(luò)抖動(dòng)的程度,網(wǎng)絡(luò)抖動(dòng)越大,緩沖深度越大,播放的延遲就越大。所以JitterBuffer是利用了較高的延遲來換取流暢的播放,相比聲音——^來說,稍微大一點(diǎn)的延遲但更流暢的效果,其主觀體驗(yàn)要更好。當(dāng)然JitterBuffer的緩沖深度不一定是一直不變的,可以是根據(jù)網(wǎng)絡(luò)抖動(dòng)程度的變化而動(dòng)態(tài)調(diào)整的。當(dāng)網(wǎng)絡(luò)恢復(fù)到非常平穩(wěn)通暢時(shí),緩沖深度會(huì)非常小,這樣延遲就可以減少。
[0007]目前緩沖控制方法主要有兩種:靜態(tài)抖動(dòng)緩沖控制方法和自適應(yīng)抖動(dòng)緩沖控制方法。
[0008]靜態(tài)抖動(dòng)緩沖控制方法中,緩沖區(qū)的大小在傳輸通道建立后一直為固定值,對(duì)于抖動(dòng)超出緩沖區(qū)大小的數(shù)據(jù)將會(huì)被丟棄。該方法的優(yōu)點(diǎn)是:模型簡單、易于實(shí)現(xiàn)、可靠性高;缺點(diǎn)是:網(wǎng)絡(luò)抖動(dòng)較大時(shí),丟包率高,而網(wǎng)絡(luò)時(shí)延及抖動(dòng)很小的時(shí)候,延遲較大,適用性不是很強(qiáng)。
[0009]自適應(yīng)抖動(dòng)緩沖控制方法中,緩沖區(qū)大小隨實(shí)際網(wǎng)絡(luò)的抖動(dòng)情況而變化。與靜態(tài)抖動(dòng)緩沖控制方法相比,自適應(yīng)抖動(dòng)緩沖控制方法的優(yōu)點(diǎn)是:網(wǎng)絡(luò)抖動(dòng)較大時(shí)丟包率相對(duì)較低,而網(wǎng)絡(luò)延遲及抖動(dòng)小時(shí),延遲相對(duì)較小。但是現(xiàn)有技術(shù)使用的自適應(yīng)抖動(dòng)緩沖控制方法是根據(jù)實(shí)際網(wǎng)絡(luò)的抖動(dòng)情況來增大或減少緩沖區(qū)大小,而且增加或減少的值往往是一個(gè)定值。也就是說,對(duì)于需要增大/減少緩沖區(qū)的網(wǎng)絡(luò)的抖動(dòng)情況,均是將當(dāng)前緩沖區(qū)增加/減少一個(gè)定值,而忽略需要增大/減少緩沖區(qū)的網(wǎng)絡(luò)的抖動(dòng)情況之間存在的差異,從而使得動(dòng)態(tài)調(diào)整不夠平滑。因此,對(duì)于平滑要求較高的視頻直播系統(tǒng)來說也不適用。

【發(fā)明內(nèi)容】

[0010]本發(fā)明實(shí)施例的目的是提供一種基于TCP直播系統(tǒng)消除時(shí)延抖動(dòng)的音/視頻播放方法、裝置及控制方法、裝置,能根據(jù)網(wǎng)絡(luò)狀態(tài)動(dòng)態(tài)有效調(diào)整緩沖區(qū)大小,而且在保證平滑、確保播放流暢的前提下使時(shí)延盡量小。
[0011]本發(fā)明實(shí)施例提供了一種基于TCP直播系統(tǒng)消除時(shí)延抖動(dòng)的控制方法,包括:
[0012]判斷當(dāng)前緩沖區(qū)是否為空;
[0013]當(dāng)緩沖區(qū)不為空,待當(dāng)前調(diào)整周期到達(dá)時(shí),若當(dāng)前調(diào)整周期內(nèi)的最大緩沖區(qū)數(shù)據(jù)時(shí)長與最小緩沖區(qū)數(shù)據(jù)時(shí)長的差值小于預(yù)設(shè)的緩沖區(qū)時(shí)長抖動(dòng)閾值,且所述最小緩沖區(qū)數(shù)據(jù)時(shí)長大于預(yù)設(shè)的最小緩沖區(qū)時(shí)長閾值,則將當(dāng)前緩沖區(qū)數(shù)據(jù)時(shí)長縮短,且縮短的值小于或等于所述最小緩沖區(qū)數(shù)據(jù)時(shí)長和所述預(yù)設(shè)的最小緩沖區(qū)時(shí)長閾值之間的差值;
[0014]當(dāng)緩沖區(qū)為空,待緩沖區(qū)為空到接收到第一個(gè)數(shù)據(jù)包時(shí),則將初始緩沖區(qū)數(shù)據(jù)時(shí)長增大,且增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長是第二大時(shí)延抖動(dòng)值的增函數(shù);其中,所述初始緩沖區(qū)數(shù)據(jù)時(shí)長是緩沖區(qū)為空到恢復(fù)播放所需要的緩沖數(shù)據(jù)時(shí)長;所述第二大時(shí)延抖動(dòng)值是緩沖區(qū)為空前一段時(shí)間到接收到所述第一個(gè)數(shù)據(jù)包的時(shí)間內(nèi)所接收到的連續(xù)的兩個(gè)數(shù)據(jù)包的時(shí)間差中的第二大值。
[0015]作為上述方案的改進(jìn),當(dāng)所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長大于預(yù)設(shè)的最大緩沖區(qū)時(shí)長閾值時(shí),將所述預(yù)設(shè)的最大緩沖區(qū)時(shí)長閾值作為所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長;當(dāng)所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長小于預(yù)設(shè)的最小緩沖區(qū)時(shí)長閾值時(shí),將所述預(yù)設(shè)的最小緩沖區(qū)時(shí)長閾值作為所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長。
[0016]作為上述方案的改進(jìn),當(dāng)所述第二大時(shí)延抖動(dòng)值小于預(yù)設(shè)的最小時(shí)延抖動(dòng)值時(shí),將所述預(yù)設(shè)的最小時(shí)延抖動(dòng)值作為所述第二大時(shí)延抖動(dòng)值;當(dāng)所述第二大時(shí)延抖動(dòng)值大于預(yù)設(shè)的最大時(shí)延抖動(dòng)值時(shí),將所述預(yù)設(shè)的最大時(shí)延抖動(dòng)值作為所述第二大時(shí)延抖動(dòng)值。
[0017]作為上述方案的改進(jìn),還包括:將連續(xù)接收到的兩個(gè)數(shù)據(jù)包的時(shí)間差入棧保存。
[0018]作為上述方案的改進(jìn),所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長是第二大時(shí)延抖動(dòng)值的線性增函數(shù)。
[0019]作為上述方案的改進(jìn),所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長是第二大時(shí)延抖動(dòng)值的分段線性增函數(shù)。
[0020]作為上述方案的改進(jìn),所述一段時(shí)間為一個(gè)完整調(diào)整周期的1/3?1/2。
[0021]本發(fā)明實(shí)施例還對(duì)應(yīng)公開了一種基于TCP直播系統(tǒng)消除時(shí)延抖動(dòng)的控制裝置,包括:
[0022]判斷模塊,用于判斷當(dāng)前緩沖區(qū)是否為空;
[0023]第一調(diào)整模塊,用于當(dāng)緩沖區(qū)不為空,待當(dāng)前調(diào)整周期到達(dá)時(shí),若當(dāng)前調(diào)整周期內(nèi)的最大緩沖區(qū)數(shù)據(jù)時(shí)長與最小緩沖區(qū)數(shù)據(jù)時(shí)長的差值小于預(yù)設(shè)的緩沖區(qū)時(shí)長抖動(dòng)閾值,且所述最小緩沖區(qū)數(shù)據(jù)時(shí)長大于預(yù)設(shè)的最小緩沖區(qū)時(shí)長閾值,則將當(dāng)前緩沖區(qū)數(shù)據(jù)時(shí)長縮短,且縮短的值小于或等于所述最小緩沖區(qū)數(shù)據(jù)時(shí)長和所述預(yù)設(shè)的最小緩沖區(qū)時(shí)長閾值之間的差值;
[0024]第二調(diào)整模塊,用于當(dāng)緩沖區(qū)為空,則將初始緩沖區(qū)數(shù)據(jù)時(shí)長增大,且增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長是第二大時(shí)延抖動(dòng)值的增函數(shù);其中,所述初始緩沖區(qū)數(shù)據(jù)時(shí)長是緩沖區(qū)為空到恢復(fù)播放所需要的緩沖數(shù)據(jù)時(shí)長;所述第二大時(shí)延抖動(dòng)值是緩沖區(qū)為空前一段時(shí)間內(nèi)所接收到的連續(xù)的兩個(gè)數(shù)據(jù)包的時(shí)間差中的第二大值。
[0025]作為上述方案的改進(jìn),所述第二調(diào)整模塊還用于:當(dāng)所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長大于預(yù)設(shè)的最大緩沖區(qū)時(shí)長閾值時(shí),將所述預(yù)設(shè)的最大緩沖區(qū)時(shí)長閾值作為所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長;當(dāng)所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長小于預(yù)設(shè)的最小緩沖區(qū)時(shí)長閾值時(shí),將所述預(yù)設(shè)的最小緩沖區(qū)時(shí)長閾值作為所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長。
[0026]作為上述方案的改進(jìn),所述第二調(diào)整模塊還用于:當(dāng)所述第二大時(shí)延抖動(dòng)值小于預(yù)設(shè)的最小時(shí)延抖動(dòng)值時(shí),將所述預(yù)設(shè)的最小時(shí)延抖動(dòng)值作為所述第二大時(shí)延抖動(dòng)值;當(dāng)所述第二大時(shí)延抖動(dòng)值大于預(yù)設(shè)的最大時(shí)延抖動(dòng)值時(shí),將所述預(yù)設(shè)的最大時(shí)延抖動(dòng)值作為所述第二大時(shí)延抖動(dòng)值。
[0027]作為上述方案的改進(jìn),還包括:
[0028]入棧保存模塊,用于將連續(xù)接收到的兩個(gè)數(shù)據(jù)包的時(shí)間差入棧保存。
[0029]作為上述方案的改進(jìn),所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長是第二大時(shí)延抖動(dòng)值的線性增函數(shù)。
[0030]作為上述方案的改進(jìn),所述增大后的初始緩沖區(qū)數(shù)據(jù)時(shí)長是第二大時(shí)延抖動(dòng)值的分段線性增函數(shù)。
[0031]作為上述方案的改進(jìn),所述一段時(shí)間為一個(gè)完整調(diào)整周期的1/3?1/2。
[0032]本發(fā)明實(shí)施例還公開了一種基于TCP的音/視頻直播方法,包括:
[0033]接收數(shù)據(jù)包并將所述數(shù)據(jù)包緩存到緩沖區(qū)中;
[0034]根據(jù)如上所述的控制方法調(diào)整所述緩沖區(qū)的緩沖區(qū)數(shù)據(jù)時(shí)長;
[0035]基于緩沖區(qū)數(shù)據(jù)時(shí)長調(diào)整后的緩沖區(qū)中獲取數(shù)據(jù)包并解碼播放。
[0036]本發(fā)明實(shí)施例還公開了一種基于TCP的音/視頻直播裝置,包括:
[0037]數(shù)據(jù)接收模塊,用于接收數(shù)據(jù)包并將所述數(shù)據(jù)包緩存到緩沖區(qū)中;
[0038]如上所述的控制裝置,用于對(duì)調(diào)整所述緩沖區(qū)的緩沖區(qū)數(shù)據(jù)時(shí)長;以及
[0039]解碼播放模塊,基于緩沖區(qū)數(shù)據(jù)時(shí)長調(diào)整后的緩沖區(qū)中獲取數(shù)據(jù)包并解碼播放。
[0040]與現(xiàn)有技術(shù)相比,本發(fā)明公開的基于TCP直播系統(tǒng)消除時(shí)延抖動(dòng)的音/視頻直播方法、裝置及控制方法、裝置,能有效解決視頻直播系統(tǒng)中時(shí)延和抖動(dòng)的問題,在自適應(yīng)抖動(dòng)緩沖控制方法上,通過判斷當(dāng)前緩沖區(qū)是否為空,并在緩沖區(qū)不為空/為空的情況下,
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1