亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

減少直播時(shí)延和卡頓的方法及裝置、直播系統(tǒng)與流程

文檔序號(hào):12068786閱讀:361來源:國(guó)知局

本發(fā)明涉及實(shí)時(shí)視頻傳輸技術(shù)領(lǐng)域,特別是涉及一種減少直播時(shí)延和卡頓的方法及裝置、直播系統(tǒng)。



背景技術(shù):

互聯(lián)網(wǎng)直播日益盛行,視頻直播需要占用大量上傳帶寬,然而我國(guó)電信運(yùn)營(yíng)商能夠提供的網(wǎng)絡(luò)上傳帶寬卻一直沒有量的變化,網(wǎng)絡(luò)經(jīng)常會(huì)有抖動(dòng),主流的直播協(xié)議是rtmp協(xié)議,這個(gè)協(xié)議的基礎(chǔ)是tcp協(xié)議,根據(jù)tcp協(xié)議當(dāng)網(wǎng)絡(luò)發(fā)生波動(dòng)時(shí),發(fā)送端沒有發(fā)送成功的數(shù)據(jù)包會(huì)等到網(wǎng)絡(luò)恢復(fù)平穩(wěn)后繼續(xù)發(fā)送,在主播端就會(huì)造成數(shù)據(jù)包堆積,這樣客戶端觀看到的直播流就會(huì)變成主播之前一小段時(shí)間的流,增加了直播的延時(shí)。導(dǎo)致互動(dòng)性降低,

直播平臺(tái)互動(dòng)的方式主要是主播進(jìn)行直播,觀眾通過觀看視頻直播,在文字聊天室打字和主播互動(dòng),文字信息傳輸量小基本是實(shí)時(shí)傳輸,這樣的模式?jīng)Q定了主播端到客戶端的直播延時(shí)在3秒以內(nèi)是可以優(yōu)化互動(dòng)的,大于3秒就會(huì)有明顯的延時(shí)感,主播之前好長(zhǎng)時(shí)間做的事情,觀眾很久之后才能看到,極大地降低互動(dòng)性,而且因?yàn)檠訒r(shí)還導(dǎo)致畫面產(chǎn)生卡頓等情況。

我秀直播平臺(tái)目前采用rtmp協(xié)議進(jìn)行直播,經(jīng)常會(huì)有觀眾端出現(xiàn)觀看延時(shí)的現(xiàn)象,極大地影響了觀眾與主播之間的互動(dòng)。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)中存在的技術(shù)缺陷,而提供一種減少直播時(shí)延和卡頓的方法。

為實(shí)現(xiàn)本發(fā)明的目的所采用的技術(shù)方案是:

一種減少直播時(shí)延和卡頓的方法,包括,主播端和客戶端,

主播端包括,

將原數(shù)據(jù)進(jìn)行編碼成預(yù)定數(shù)據(jù)格式,

將編碼后的數(shù)據(jù)打包成數(shù)據(jù)包并發(fā)送至發(fā)送隊(duì)列,

判斷數(shù)據(jù)包發(fā)送隊(duì)列中數(shù)據(jù)包數(shù)量是否正常,

如不正常則主動(dòng)丟棄部分或全部數(shù)據(jù)包使其不進(jìn)入發(fā)送隊(duì)列;

客戶端接收有缺幀時(shí),當(dāng)缺幀為缺B幀或P幀,則根據(jù)前后幀進(jìn)行補(bǔ)齊,如果缺幀為I幀,則復(fù)制上一組的正常畫面進(jìn)行播放。

所述的直播流的預(yù)定數(shù)據(jù)格式為H.264編解碼格式,所述的數(shù)據(jù)包的傳輸協(xié)議為Rtmp協(xié)議。

客戶端還包括根據(jù)上一幀和下一幀的時(shí)間戳及數(shù)據(jù)包序號(hào)計(jì)得缺失幀的時(shí)間戳。

所述的當(dāng)網(wǎng)絡(luò)出現(xiàn)抖動(dòng)時(shí)主動(dòng)丟棄部分?jǐn)?shù)據(jù)包直至數(shù)據(jù)包發(fā)送隊(duì)列數(shù)量正常為:

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量不大于第一閾值,不主動(dòng)丟棄數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第一閾值且不大于第二閾值,主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第二閾值且不大于第三閾值,,主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,丟棄部分或全部P幀數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第三閾值,主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,丟棄全部P幀數(shù)據(jù)包,丟棄部分或全部I幀數(shù)據(jù)包。

客戶端若缺少B幀時(shí),則根據(jù)播放的畫面根據(jù)相鄰的P幀的圖像做差值進(jìn)行圖像補(bǔ)齊,如相鄰的P幀也缺,則根據(jù)相鄰的P幀和I幀進(jìn)行B幀補(bǔ)齊;

如果缺幀為P幀則根據(jù)相鄰I幀的畫面做差值進(jìn)行圖像補(bǔ)齊。

一種減少直播時(shí)延和卡頓的裝置,包括,主播端和客戶端,

主播端包括,

編碼模塊,用以將原數(shù)據(jù)進(jìn)行編碼成預(yù)定數(shù)據(jù)格式,

傳輸模塊,用以將編碼后的數(shù)據(jù)打包成數(shù)據(jù)包并發(fā)送至發(fā)送隊(duì)列,

發(fā)送狀態(tài)監(jiān)控模塊,用以監(jiān)控?cái)?shù)據(jù)包發(fā)送隊(duì)列的數(shù)據(jù)包數(shù)量并判斷是否正常,

丟包模塊,用以當(dāng)發(fā)送隊(duì)列中數(shù)量不正常時(shí)主動(dòng)丟棄部分或全部數(shù)據(jù)包使其不進(jìn)入發(fā)送隊(duì)列;

客戶端包括,

缺幀處理模塊,當(dāng)缺幀為缺B幀或P幀,則根據(jù)前后幀進(jìn)行補(bǔ)齊,如果缺幀為I幀,則復(fù)制上一組的正常畫面進(jìn)行播放。

所述的編碼模塊H.264編解碼格式,所述的傳輸模塊的傳輸協(xié)議為Rtmp協(xié)議。

客戶端還包括時(shí)間戳計(jì)算模塊,其根據(jù)上一幀和下一幀的時(shí)間戳及數(shù)據(jù)包序號(hào)計(jì)得缺失幀的時(shí)間戳。

所述的丟包模塊的控制方法為,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量不大于第一閾值,不主動(dòng)丟棄數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第一閾值且不大于第二閾值,主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第二閾值且不大于第三閾值,主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,丟棄部分或全部P幀數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第三閾值,主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,丟棄全部P幀數(shù)據(jù)包,丟棄部分I幀數(shù)據(jù)包;

缺幀處理模塊的控制方法為,若缺少B幀時(shí),則根據(jù)播放的畫面根據(jù)相鄰的P幀的圖像做差值進(jìn)行圖像補(bǔ)齊,如相鄰的P幀也缺,則根據(jù)相鄰的P幀和I幀進(jìn)行B幀補(bǔ)齊;

如果缺幀為P幀則根據(jù)相鄰I幀的畫面做差值進(jìn)行圖像補(bǔ)齊。

一種具有所述的減少直播時(shí)延和卡頓的裝置的直播系統(tǒng)。

與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:

本發(fā)明針對(duì)網(wǎng)絡(luò)抖動(dòng)時(shí)現(xiàn)有rtmp直播協(xié)議會(huì)引入延時(shí),增加了主播端丟幀機(jī)制,將打包的數(shù)據(jù)在不影響觀眾端播放的情況下,將圖像數(shù)據(jù)合理的丟棄一部分,這樣就不會(huì)觸發(fā)tcp的重傳機(jī)制,其可以有效的降低這種延時(shí),增加主播和觀眾實(shí)時(shí)互動(dòng)性。

本發(fā)明的播放器對(duì)于丟幀進(jìn)行補(bǔ)齊,補(bǔ)齊的方案就是相鄰圖像的公差計(jì)算。如果只是B幀缺,P幀不缺,則利用相鄰的P幀,如果此段P幀也缺,就利用相鄰的I幀和P幀。補(bǔ)齊的B幀也進(jìn)行了差值運(yùn)算,差值為相鄰的(P-I或P)/(B幀數(shù)量+1),這樣圖像的流暢效果更好。視頻數(shù)據(jù)每秒鐘25幀圖像畫面,在缺少B幀數(shù)據(jù)恢復(fù)時(shí),人眼不會(huì)有任何不連貫的感覺,在恢復(fù)連續(xù)丟失I幀數(shù)據(jù)時(shí),也就是網(wǎng)絡(luò)很差的時(shí)候,人眼才會(huì)有比較明顯的卡頓的感覺,因?yàn)閳D像基本都一樣。但是聲音一直都是連貫的。

附圖說明

圖1所示為本發(fā)明的主播端丟包的流程示意圖。

具體實(shí)施方式

以下結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

直播技術(shù)流程:主播端直播時(shí)分為3個(gè)大的模塊,音視頻數(shù)據(jù)采集,編碼,推送。觀眾端相應(yīng)的也分為3個(gè)模塊,音視頻數(shù)據(jù)接收,解碼,播放。

造成直播延時(shí)的原因,原始圖像數(shù)據(jù)通常很大,通過h.264視頻壓縮算法進(jìn)行壓縮,通過rtmp協(xié)議封裝成數(shù)據(jù)包,進(jìn)行網(wǎng)絡(luò)傳輸,圖像數(shù)據(jù)雖然進(jìn)行了壓縮,但是數(shù)據(jù)量仍然相當(dāng)大,當(dāng)網(wǎng)絡(luò)出現(xiàn)抖動(dòng)或者其他異常時(shí),根據(jù)rtmp協(xié)議,數(shù)據(jù)要緩存在發(fā)送端等待網(wǎng)絡(luò)恢復(fù)時(shí)一并發(fā)送,這樣就會(huì)到導(dǎo)致觀眾端的播放器在某個(gè)時(shí)間沒有數(shù)據(jù),過一會(huì)數(shù)據(jù)恢復(fù)了陸續(xù)播出的時(shí)候造成了延時(shí)。

如圖所示,為了降低網(wǎng)絡(luò)抖動(dòng)引起的時(shí)延,本發(fā)明減少直播時(shí)延和卡頓的方法,主播端的控制包括,

步驟101,將原數(shù)據(jù)進(jìn)行編碼成預(yù)定數(shù)據(jù)格式,

視頻原數(shù)據(jù)壓縮方式可采用任意現(xiàn)有技術(shù),如h.264視頻壓縮算法,根據(jù)h.264視頻壓縮算法,圖像序列會(huì)被壓縮成I幀P幀和B幀,I幀進(jìn)行圖像幀內(nèi)壓縮,解碼時(shí)I幀自己本身可以獨(dú)立恢復(fù)成一幀圖像畫面,P幀參考I幀進(jìn)行壓縮,解碼恢復(fù)時(shí)也就是需要等I幀解碼成完整圖像才能恢復(fù),B幀參考P幀恢復(fù)。整個(gè)圖像序列是由多個(gè)重復(fù)的IPBBPBBPIPBBPBBP序列組成的。在觀眾端只要能解碼完畢第一個(gè)I幀就會(huì)顯示圖像,相應(yīng)的解碼P和B幀時(shí)顯示連貫的圖像。

步驟102,將編碼后的數(shù)據(jù)打包成數(shù)據(jù)包并發(fā)送至發(fā)送隊(duì)列,

I幀、B幀和P幀各自封裝成對(duì)應(yīng)的rtmp數(shù)據(jù)包類型,每幀對(duì)應(yīng)一個(gè)數(shù)據(jù)包,封裝的主要目的就是增加視頻流的時(shí)間戳,丟包時(shí)不影響后續(xù)時(shí)間戳的正確封裝,因此不會(huì)出現(xiàn)音畫不同的問題。

步驟103,根據(jù)數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量判定網(wǎng)絡(luò)狀態(tài),

原數(shù)據(jù)持續(xù)地進(jìn)行編碼成IPBBBPBBBP數(shù)據(jù)格式,然后被打包成RTMP數(shù)據(jù)包,網(wǎng)絡(luò)抖動(dòng)時(shí)發(fā)送數(shù)據(jù)包的隊(duì)列會(huì)因?yàn)榘l(fā)送的數(shù)據(jù)包的速度小于實(shí)時(shí)編碼封裝數(shù)據(jù)包的速度,出現(xiàn)隊(duì)列的逐漸增大的情況,根據(jù)實(shí)際測(cè)驗(yàn)當(dāng)發(fā)送隊(duì)列內(nèi)的元素?cái)?shù)目大于第一閾值,如64時(shí)判斷為網(wǎng)絡(luò)出現(xiàn)抖動(dòng),大于第二閾值,如128判斷為較嚴(yán)重,大于第三閾值,如256時(shí)判斷為很嚴(yán)重,

步驟104,當(dāng)網(wǎng)絡(luò)出現(xiàn)抖動(dòng)時(shí)主動(dòng)丟棄部分?jǐn)?shù)據(jù)包直至數(shù)據(jù)包發(fā)送隊(duì)列正常。丟包的邏輯處理在數(shù)據(jù)包生成和數(shù)據(jù)包進(jìn)入隊(duì)列線程之間,也就是不讓封裝好的rtmp數(shù)據(jù)包繼續(xù)進(jìn)入發(fā)送的隊(duì)列,造成發(fā)送隊(duì)列堵塞越來越嚴(yán)重的情況。即每當(dāng)有新的rtmp數(shù)據(jù)包進(jìn)入發(fā)送隊(duì)列時(shí)會(huì)進(jìn)行對(duì)發(fā)送隊(duì)列已有數(shù)據(jù)包元個(gè)數(shù)的判斷,并根據(jù)隊(duì)列中數(shù)據(jù)包個(gè)數(shù)進(jìn)行具體區(qū)別對(duì)待,

具體地,當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第一閾值且不大于第二閾值,視為網(wǎng)絡(luò)出現(xiàn)抖動(dòng),主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,此時(shí)陸續(xù)產(chǎn)生的P幀和I幀依然會(huì)進(jìn)入到發(fā)送隊(duì)列中;

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第二閾值且不大于第三閾值,視為網(wǎng)絡(luò)抖動(dòng)較嚴(yán)重,主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,丟棄部分或全部P幀數(shù)據(jù)包,當(dāng)出現(xiàn)較嚴(yán)重的網(wǎng)絡(luò)抖動(dòng),為保證傳輸?shù)膶?shí)時(shí)性,根據(jù)情況進(jìn)行P幀的選擇性或者全部丟棄,如隔一丟一,隔二丟一等,在網(wǎng)絡(luò)許可情況下盡可能保證在兩個(gè)I幀之間有一個(gè)P幀存在;當(dāng)部分丟棄模式不足以遏制隊(duì)列增長(zhǎng)時(shí),可選擇全部丟棄P幀;

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第三閾值,視為網(wǎng)絡(luò)抖動(dòng)嚴(yán)重,主動(dòng)丟棄新傳送來的全部B幀數(shù)據(jù)包,丟棄全部P幀數(shù)據(jù)包,丟棄部分或全部I幀數(shù)據(jù)包。通過主動(dòng)丟棄數(shù)據(jù)包,犧牲一定畫面質(zhì)量甚至一段視頻信息,保證網(wǎng)絡(luò)抖動(dòng)時(shí)的小時(shí)延,提升網(wǎng)絡(luò)主播的溝通實(shí)時(shí)性。

當(dāng)客戶端收到不完整的有缺失的數(shù)據(jù)包流時(shí)減少觀眾端畫面卡頓的方法,包括,

當(dāng)有缺幀時(shí),根據(jù)上一幀和下一幀的時(shí)間戳及數(shù)據(jù)包序號(hào)計(jì)得時(shí)間戳,且,

當(dāng)缺幀為缺B幀或P幀,則根據(jù)前后幀進(jìn)行補(bǔ)齊,如果缺幀為I幀,則復(fù)制上一組的正常畫面進(jìn)行播放。

首選,每個(gè)數(shù)據(jù)包都有時(shí)間戳,在客戶端即播放端,播放丟棄了部分?jǐn)?shù)據(jù)包的視頻視頻時(shí)會(huì)出現(xiàn)時(shí)間戳的斷檔,則首先根據(jù)上一幀和下一幀的時(shí)間戳及數(shù)據(jù)包序號(hào)計(jì)得時(shí)間戳,其中,所述的上一幀和下一幀是指實(shí)際接收到的數(shù)據(jù)幀,然后根據(jù)上一個(gè)和下一個(gè)視頻幀的時(shí)間戳和相應(yīng)的數(shù)據(jù)包序號(hào)來重新計(jì)算丟棄了視頻幀的時(shí)間戳,計(jì)算方法為時(shí)間戳的差值除以包序號(hào)的差值得到時(shí)間戳間隔,根據(jù)間隔,進(jìn)行正確播放。數(shù)據(jù)包分為音頻數(shù)據(jù)包和視頻數(shù)據(jù)包,音頻數(shù)據(jù)量很小微乎其微,所以在主播端丟包時(shí)不做處理,視頻的數(shù)據(jù)量很大,是網(wǎng)絡(luò)抖動(dòng)時(shí)主要是視頻數(shù)據(jù)發(fā)送不出去,所以要選在發(fā)送隊(duì)列選擇性丟棄,音頻視頻同步主要是通過數(shù)據(jù)包頭的時(shí)間戳信息來同步的,丟棄一部分視頻包,并不會(huì)影響其他視頻包的時(shí)間戳,所以不會(huì)影響同步的問題,第一步時(shí)間戳的補(bǔ)齊計(jì)算,則是同時(shí)時(shí)間戳分辨出缺少幀的類型和數(shù)量,以便后續(xù)進(jìn)行補(bǔ)齊處理。

如果丟棄的是B幀畫面播放的畫面會(huì)根據(jù)相鄰的P幀進(jìn)行補(bǔ)齊恢復(fù),如果相鄰的P幀也有缺失,則根據(jù)相鄰的I幀和P幀的圖像做差值進(jìn)行圖像恢復(fù)播放;如果丟棄的P幀會(huì)根據(jù)相鄰I幀進(jìn)行恢復(fù)。如果丟棄的是I幀,就復(fù)制上一組的已有畫面進(jìn)行播放,視頻數(shù)據(jù)每秒鐘25幀圖像畫面,在缺少B幀數(shù)據(jù)恢復(fù)時(shí),人眼不會(huì)有任何不連貫的感覺,在恢復(fù)連續(xù)丟失I幀數(shù)據(jù)時(shí),也就是網(wǎng)絡(luò)很差的時(shí)候,人眼才會(huì)有比較明顯的卡頓的感覺,因?yàn)閳D像基本都一樣。但是聲音一直都是連貫的。

本發(fā)明針對(duì)網(wǎng)絡(luò)抖動(dòng)時(shí)現(xiàn)有rtmp直播協(xié)議會(huì)引入延時(shí),增加了主播端丟幀機(jī)制,將打包的數(shù)據(jù)在不影響觀眾端播放的情況下,將圖像數(shù)據(jù)合理的丟棄一部分,這樣就不會(huì)觸發(fā)tcp的重傳機(jī)制,其可以有效的降低這種延時(shí),增加主播和觀眾實(shí)時(shí)互動(dòng)性。同時(shí)在客戶端針對(duì)丟棄幀進(jìn)行了差值補(bǔ)齊,保證圖像播放的流暢性和畫面的順暢度,提高客戶使用感受。

同時(shí),本發(fā)明還公開了減少直播時(shí)延和卡頓的裝置,主播端包括,

編碼模塊,用以將原數(shù)據(jù)進(jìn)行編碼成預(yù)定數(shù)據(jù)格式,如H.264編解碼格式;

傳輸模塊,用以將編碼后的數(shù)據(jù)打包成數(shù)據(jù)包并發(fā)送至發(fā)送隊(duì)列,所述的傳輸模塊的傳輸協(xié)議為Rtmp協(xié)議。

發(fā)送狀態(tài)監(jiān)控模塊,用以根據(jù)數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量判定網(wǎng)絡(luò)狀態(tài),

丟包模塊,用以當(dāng)網(wǎng)絡(luò)出現(xiàn)抖動(dòng)時(shí)主動(dòng)丟棄部分?jǐn)?shù)據(jù)包直至數(shù)據(jù)包發(fā)送隊(duì)列正常,所述的丟包模塊的控制方法為,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量不大于第一閾值,視為網(wǎng)絡(luò)正常,不主動(dòng)丟棄數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第一閾值且不大于第二閾值,視為網(wǎng)絡(luò)出現(xiàn)抖動(dòng),主動(dòng)丟棄隊(duì)列中全部B幀數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第二閾值且不大于第三閾值,視為網(wǎng)絡(luò)抖動(dòng)較嚴(yán)重,主動(dòng)丟棄隊(duì)列中全部B幀數(shù)據(jù)包,丟棄部分或全部P幀數(shù)據(jù)包,

當(dāng)所述的數(shù)據(jù)包發(fā)送隊(duì)列的數(shù)量大于第二閾值且不大于第三閾值,視為網(wǎng)絡(luò)抖動(dòng)嚴(yán)重,主動(dòng)丟棄隊(duì)列中全部B幀數(shù)據(jù)包,丟棄全部P幀數(shù)據(jù)包,丟棄部分或全部I幀數(shù)據(jù)包;

客戶端包括,

時(shí)間戳計(jì)算模塊,當(dāng)有缺幀時(shí),其根據(jù)上一幀和下一幀的時(shí)間戳及數(shù)據(jù)包序號(hào)計(jì)得時(shí)間戳,所述的時(shí)間戳的計(jì)算方法為上一幀和下一幀的時(shí)間戳的差值除以對(duì)應(yīng)數(shù)據(jù)包的包序號(hào)的差值得到時(shí)間戳間隔,根據(jù)時(shí)間戳間隔得出缺幀的時(shí)間戳。

缺幀處理模塊,當(dāng)缺幀為缺B幀或P幀,則根據(jù)前后幀進(jìn)行補(bǔ)齊,如果缺幀為I幀,則復(fù)制上一組的正常畫面進(jìn)行播放。

具體地,若缺少B幀時(shí),則根據(jù)播放的畫面根據(jù)相鄰的P幀的圖像做差值進(jìn)行圖像補(bǔ)齊,如相鄰的P幀也缺,則根據(jù)相鄰的P幀和I幀進(jìn)行B幀補(bǔ)齊;

如果缺幀為P幀則根據(jù)相鄰I幀的畫面做差值進(jìn)行圖像補(bǔ)齊。

缺失了B幀、P幀或者I幀,通常播放器的方案是會(huì)直接跳過缺失了的數(shù)據(jù),播放存在的B幀、P幀或者I幀,會(huì)出現(xiàn)明顯的卡頓的現(xiàn)象。本發(fā)明的播放器對(duì)于丟幀方案是進(jìn)行補(bǔ)齊,補(bǔ)齊的方案就是相鄰圖像的公差計(jì)算。如果只是B幀缺,P幀不缺,則利用相鄰的P幀,如果此段P幀也缺,就利用相鄰的I幀和P幀。補(bǔ)齊的B幀也進(jìn)行了差值運(yùn)算,差值為相鄰的(P-I或P)/(B幀數(shù)量+1),這樣圖像的流暢效果更好。視頻數(shù)據(jù)每秒鐘25幀圖像畫面,在缺少B幀數(shù)據(jù)恢復(fù)時(shí),人眼不會(huì)有任何不連貫的感覺,在恢復(fù)連續(xù)丟失I幀數(shù)據(jù)時(shí),也就是網(wǎng)絡(luò)很差的時(shí)候,人眼才會(huì)有比較明顯的卡頓的感覺,因?yàn)閳D像基本都一樣。但是聲音一直都是連貫的。

同時(shí),本發(fā)明還公開了具有所述的直播中減少觀眾端畫面卡頓的裝置的直播系統(tǒng),采用該直播端優(yōu)化了發(fā)送端數(shù)據(jù)包發(fā)送機(jī)制,提高了其對(duì)網(wǎng)絡(luò)抖動(dòng)的適應(yīng)性,有效提高了直播的實(shí)時(shí)性,同時(shí)在客戶端針對(duì)丟棄幀進(jìn)行了差值補(bǔ)齊,保證圖像播放的流暢性和畫面的順暢度,提高客戶使用感受。

根據(jù)隊(duì)列中現(xiàn)存的數(shù)據(jù)包數(shù)量對(duì)新來的數(shù)據(jù)包進(jìn)行丟棄處理,不影響正常的發(fā)送隊(duì)列,而且根據(jù)隊(duì)列變化適時(shí)調(diào)整丟包策略,能有效均衡實(shí)時(shí)性和畫面,提升整體觀看感受。

本發(fā)明還公開了一種具有所述的減少直播時(shí)延和卡頓的裝置的直播系統(tǒng),采用該直播系統(tǒng),主播端的數(shù)據(jù)得以及時(shí)發(fā)出,減少時(shí)延,提高觀眾與主播間的互動(dòng)。同時(shí)在客戶端針對(duì)丟棄幀進(jìn)行了差值補(bǔ)齊,保證圖像播放的流暢性和畫面的順暢度,提高客戶使用感受。

以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出的是,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1