息計算巾貞率息。隨著時間的推移,計算得到的巾貞率息就更加準(zhǔn)確。獲取到巾貞率息后,根據(jù)所述幀率信息確定兩幀視頻流之間的平均的時間間隔,就可以休眠一個時間間隔的時間,也即是一幀時間,再往解碼器送數(shù)據(jù)。解碼器可以進一步對接收到的一幀視頻流進行解碼。
[0076]本發(fā)明實施例中,在向解碼器發(fā)送下一幀視頻流之前,接收到的各幀視頻流可以緩沖在所述視頻接收端。
[0077]綜上所述,可見本發(fā)明實施例從視頻編碼、網(wǎng)絡(luò)發(fā)送、網(wǎng)絡(luò)接收三個方面著手,基本上實現(xiàn)了視頻的流暢播放,主要做了以下三個方面的改進:
[0078]1、調(diào)整發(fā)送端編碼參數(shù),使得每個幀大小盡量均勻,即I幀和P幀的大小盡量保持—致。
[0079]2、發(fā)送端勻巾貞勻包,盡量在一巾貞時間內(nèi)發(fā)送完一巾貞數(shù)據(jù)。
[0080]3、增加接收端緩沖,統(tǒng)計幀率信息,等間隔的往解碼器送數(shù)據(jù)。
[0081]通過本發(fā)明實施例,調(diào)整視頻發(fā)送端的編碼參數(shù),縮小各個差別幀之間以及關(guān)鍵幀與差別幀之間的大小差異,使得每個幀的大小盡量均勻,通過視聯(lián)網(wǎng)發(fā)送時,控制等間隔發(fā)送每幀視頻流,并控制一幀視頻流在預(yù)設(shè)的單位時間內(nèi)發(fā)送出去,并且在視頻接收端緩沖接收到的視頻流信息,根據(jù)各個視頻流攜帶的時間戳信息統(tǒng)計幀率信息,根據(jù)幀率信息等間隔往解碼器發(fā)送數(shù)據(jù),從而保證視頻接收端可以等間隔地解碼每幀視頻流,實現(xiàn)均勻播放視頻流,避免視頻流的卡頓問題。
[0082]為了使本領(lǐng)域技術(shù)人員更好地理解本發(fā)明,以下通過一個具體的示例說明進行說明,圖2是本申請實施例的一個示例中處理ES流的流程圖,發(fā)端即視頻發(fā)送端,收端即視頻接收端,如圖可以包括如下步驟:
[0083]發(fā)端:
[0084]1、采集視頻流。
[0085]2、調(diào)整編碼參數(shù),按照編碼參數(shù)對數(shù)據(jù)進行編碼。
[0086]3、編碼后,發(fā)送端發(fā)送數(shù)據(jù),控制數(shù)據(jù)的發(fā)送時間。
[0087]收端:
[0088]1、接收端接收并緩沖數(shù)據(jù),等間隔發(fā)送到解碼器。
[0089]2、解碼器對視頻流進行解碼。
[0090]4、播放顯示視頻流。
[0091]本示例中,輸入視頻流的格式是720P60,編碼參數(shù)如下:maxPicSizeRat1是200,目標(biāo)碼率是2mbps,碼流控制方式是動態(tài)碼流控制vbr,只有I幀和P幀,I幀間隔是60幀。截取編碼后的60幀數(shù)據(jù)如下,其中第一幀是I幀,后續(xù)都是P幀,大小依次是42290,4050,2632,3480,2355,2356,2217,2206,2235…(單位是字節(jié))。根據(jù)配置可知當(dāng)前網(wǎng)絡(luò)帶寬是4mbps,則發(fā)送第一幀需要86ms左右,即5幀多點的時間,然后全速發(fā)送后面的2_7幀,到第8幀恢復(fù)正常,即每幀時間內(nèi)僅僅發(fā)送一幀數(shù)據(jù)。
[0092]通過本發(fā)明實施例,調(diào)整視頻發(fā)送端的編碼參數(shù),縮小各個差別幀之間以及關(guān)鍵幀與差別幀之間的大小差異,使得每個幀的大小盡量均勻,通過視聯(lián)網(wǎng)發(fā)送時,控制等間隔發(fā)送每幀視頻流,并控制一幀視頻流在預(yù)設(shè)的單位時間內(nèi)發(fā)送出去,并且在視頻接收端緩沖接收到的視頻流信息,根據(jù)各個視頻流攜帶的時間戳信息統(tǒng)計幀率信息,根據(jù)幀率信息等間隔往解碼器發(fā)送數(shù)據(jù),從而保證視頻接收端可以等間隔地解碼每幀視頻流,實現(xiàn)均勻播放視頻流,避免視頻流的卡頓問題。
[0093]需要說明的是,對于前述的方法實施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本申請并不受所描述的動作順序的限制,因為依據(jù)本申請,某些步驟可以采用其他順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作并不一定是本申請所必需的。
[0094]基于上述方法實施例的說明,本申請還提供了相應(yīng)的視聯(lián)網(wǎng)中網(wǎng)絡(luò)視頻流的播放裝置實施例,來實現(xiàn)上述方法實施例所述的內(nèi)容。
[0095]參照圖3,其示出了本申請實施例所述一種視聯(lián)網(wǎng)中網(wǎng)絡(luò)視頻流的播放裝置結(jié)構(gòu)框圖。
[0096]參數(shù)設(shè)置模塊201,用于在視頻發(fā)送端預(yù)先設(shè)置針對視頻流的編碼參數(shù),所述視頻流中包括關(guān)鍵幀和多個差別幀;
[0097]編碼模塊202,用于所述視頻發(fā)送端按照所述編碼參數(shù)對各幀視頻流進行編碼,編碼后,所述關(guān)鍵幀和所述差別幀的大小差值小于第一預(yù)設(shè)值,各個差別幀的大小差值小于第二預(yù)設(shè)值;
[0098]發(fā)送模塊203,用于所述視頻發(fā)送端通過視聯(lián)網(wǎng)向視頻接收端發(fā)送所述視頻流,在發(fā)送時控制每間隔第三預(yù)設(shè)值的時間段發(fā)送一幀視頻流,并在第四預(yù)設(shè)值的時間段之內(nèi)將一幀視頻流發(fā)送出去;
[0099]接收模塊204,用于視頻接收端接收所述視頻流,針對各幀視頻流添加時間戳信息;
[0100]幀率計算模塊205,用于根據(jù)所述時間戳信息計算當(dāng)前的幀率信息;
[0101 ] 解碼模塊206,用于根據(jù)所述幀率信息等時間間隔地對接收到的各幀視頻流進行解碼;
[0102]播放模塊207,用于對解碼后的視頻流進行播放。
[0103]本發(fā)明實施例中,優(yōu)選地,所述發(fā)送模塊包括:
[0104]連接子模塊,用于所述視頻發(fā)送端連入視聯(lián)網(wǎng),并通過視聯(lián)網(wǎng)與視頻接收端建立連接;
[0105]信息生成子模塊,用于所述視頻發(fā)送端生成包含套接字信息;
[0106]視頻流發(fā)送子模塊,用于按照所述套接字信息經(jīng)視聯(lián)網(wǎng)向所述視頻接收端發(fā)送所述視頻流,所述套接字信息標(biāo)識所述視頻流在視聯(lián)網(wǎng)的數(shù)據(jù)鏈路層進行傳輸?shù)膫鬏斅窂健?br>[0107]本發(fā)明實施例中,優(yōu)選地,所述套接字信息包括數(shù)據(jù)鏈路層的物理層的協(xié)議號、接口索引號、報頭類型、分組類型、物理層地址和物理層地址長度中的一種或多種。
[0108]本發(fā)明實施例中,優(yōu)選地,所述幀率計算模塊,具體用于根據(jù)當(dāng)前接收到的一幀視頻流攜帶的時間戳信息和接收到的第一幀視頻流的的時間戳信息計算所述幀率信息;
[0109]所述解碼模塊包括:
[0110]間隔計算子模塊,用于根據(jù)所述幀率信息確定兩幀視頻流之間的平均的時間間隔,并休眠一個時間間隔后向解碼器發(fā)送下一幀視頻流;
[0111]視頻流解碼子模塊,用于所述解碼器對接收到的一幀視頻流進行解碼。
[0112]本發(fā)明實施例中,優(yōu)選地,所述裝置還包括:
[0113]緩沖模塊,用于在向解碼器發(fā)送下一幀視頻流之前在所述視頻接收端緩沖從接收到的各幀視頻流,所述視頻流為原始流。
[0114]通過本發(fā)明實施例,調(diào)整視頻發(fā)送端的編碼參數(shù),縮小各個差別幀之間以及關(guān)鍵幀與差別幀之間的大小差異,使得每個幀的大小盡量均勻,通過視聯(lián)網(wǎng)發(fā)送時,控制等間隔發(fā)送每幀視頻流,并控制一幀視頻流在預(yù)設(shè)的單位時間內(nèi)發(fā)送出去,并且在視頻接收端緩沖接收到的視頻流信息,根據(jù)各個視頻流攜帶的時間戳信息統(tǒng)計幀率信息,根據(jù)幀率信息等間隔往解碼器發(fā)送數(shù)據(jù),從而保證視頻接收端可以等間隔地解碼每幀視頻流,實現(xiàn)均勻播放視頻流,避免視頻流的卡頓問題。
[0115]對于上述視聯(lián)網(wǎng)中網(wǎng)絡(luò)視頻流的播放裝置實施例而言,由于其與方法實施例基本相似,所以描述的比較簡單,相關(guān)之處參見圖1所示方法實施例的部分說明即可。
[0116]本申請可用