国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種多路音視頻同時(shí)播放時(shí)處理音視頻同步的方法

      文檔序號(hào):7995407閱讀:498來源:國知局
      專利名稱:一種多路音視頻同時(shí)播放時(shí)處理音視頻同步的方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于計(jì)算機(jī)多媒體技術(shù)領(lǐng)域,涉及經(jīng)過網(wǎng)絡(luò)傳輸后對(duì)多路音視頻處理的方法,具體是一種多路音視頻同時(shí)播放時(shí)處理音視頻同步的方法。
      背景技術(shù)
      隨著當(dāng)今互聯(lián)網(wǎng)寬帶技術(shù)和多媒體信息技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)多媒體應(yīng)用已經(jīng)成為internet應(yīng)用的重要內(nèi)容。特別是網(wǎng)絡(luò)視頻會(huì)議中,由于涉及到多人之間的交互行為, 需要對(duì)多路音視頻同時(shí)進(jìn)行播放。此時(shí)每一路音視頻都需要同步,否則無法做到“唇音同步”的效果,影響溝通的流暢性。傳統(tǒng)的音視頻同步技術(shù)是將音視頻包各標(biāo)記一個(gè)時(shí)間戳, 在播放時(shí)根據(jù)該時(shí)間戳來進(jìn)行同步。這種方式只能工作于一路音頻和一路視頻的情況,在多路音頻和多路視頻的情況下無法正常工作,不能滿足視頻會(huì)議這類多人溝通應(yīng)用對(duì)多路音視頻同時(shí)進(jìn)行同步的要求。

      發(fā)明內(nèi)容
      本發(fā)明的目的是針對(duì)現(xiàn)有技術(shù)的不足,提供了一種基于音頻播放驅(qū)動(dòng)的多路視頻同步方法。本發(fā)明方法的具體步驟為
      步驟(1).每個(gè)用戶分別獲取各自的音視頻數(shù)據(jù)并將音頻和視頻各自壓縮;將采集的音頻數(shù)據(jù)以10 120毫秒為單位分割成音頻數(shù)據(jù)單元,將每個(gè)音頻數(shù)據(jù)單元壓縮成音頻壓縮包,每個(gè)音頻壓縮包標(biāo)記采集時(shí)刻的客戶端機(jī)器時(shí)間戳;將視頻數(shù)據(jù)中的每一幀壓縮成視頻壓縮包,每個(gè)視頻壓縮包標(biāo)記采集時(shí)刻的客戶端機(jī)器時(shí)間戳;將每個(gè)音頻壓縮包和每個(gè)視頻壓縮包發(fā)送給服務(wù)器;
      每個(gè)用戶分別獲取各自的音視頻數(shù)據(jù)的方法包括通過設(shè)備采集和從媒體文件中獲取; 如通過設(shè)備采集,則所述的時(shí)間戳為采集的時(shí)刻;如從媒體文件中獲取,媒體文件播放或解壓組件會(huì)為數(shù)據(jù)設(shè)置時(shí)間戳,該時(shí)間戳為相對(duì)媒體文件開始的時(shí)刻,轉(zhuǎn)換為以當(dāng)前計(jì)算機(jī)時(shí)刻為標(biāo)準(zhǔn)的時(shí)間戳。步驟O).服務(wù)器將接收到的每個(gè)用戶的音頻壓縮包解壓后混音,然后在混音結(jié)果中記錄所有參與混音的音頻壓縮包對(duì)應(yīng)的時(shí)間戳,壓縮成混音壓縮包,發(fā)送給客戶端;視頻壓縮包直接發(fā)送給客戶端。N個(gè)用戶U1、U2、…、UN,每個(gè)用戶有一路音頻,共有N路音頻,分別為A1、A2、…、 AN ;服務(wù)器需要混音出N+1路音頻,分別是
      第0路.包含了所有音頻,記為M0、 第1路.除Al外其他所有音頻,記為Ml、
      第2路.除A2外其他所有音頻,記為M2、 * * *、
      第N路.除AN外其他所有音頻,記為麗。
      生成的每路音頻都需要將其對(duì)應(yīng)的N或N-I路源音頻的時(shí)間戳寫入這路音頻中, 該音頻包將會(huì)有N或N-I個(gè)時(shí)間戳,以及這些時(shí)間戳所對(duì)應(yīng)的源音頻。生成這N+1路音頻后,將MO發(fā)送給所有沒有發(fā)送音頻的用戶,Ml發(fā)送給U1,M2發(fā)送給U2,以此類推,發(fā)送給每個(gè)用戶的音頻內(nèi)容都不包含該用戶的音頻。步驟(3).每個(gè)客戶端接收到混音壓縮包和視頻壓縮包后,將混音壓縮包解壓后順序播放,然后根據(jù)音頻驅(qū)動(dòng)視頻的原則,顯示對(duì)應(yīng)視頻壓縮包中的視頻幀。每個(gè)客戶端接收到的內(nèi)容為一路混音壓縮包和服務(wù)器轉(zhuǎn)發(fā)的N路視頻壓縮包;播放時(shí)通過音頻驅(qū)動(dòng)視頻進(jìn)行,即每播放一個(gè)音頻壓縮包,記錄該音頻壓縮包中包含的所有時(shí)間戳(U,A)···;播放X用戶的視頻時(shí),取出該路視頻待播放的一幀對(duì)應(yīng)的視頻時(shí)間戳(UX, VX),同時(shí)取出最近播放過的音頻幀的同一用戶的時(shí)間戳(UX,AX),對(duì)VX和AX進(jìn)行比較,若 VX大于等于AX,則表示視頻內(nèi)容已經(jīng)在音頻內(nèi)容之后了,可以播放,而若VX小于AX,根據(jù)音頻驅(qū)動(dòng)視頻原則,表示這個(gè)視頻幀還沒有到播放的時(shí)刻,因此需要等待下一次的播放判斷來決定是否可以播放。本發(fā)明方法以音頻時(shí)間戳為紐帶,將多路視頻與音頻同步,達(dá)到所有視頻均能夠與音頻“唇音同步”的效果。本發(fā)明方法中音頻在服務(wù)器混音時(shí),并不使用單一的時(shí)間戳來標(biāo)記一個(gè)音頻混音壓縮包,而是將參與這個(gè)音頻混音壓縮包的多路音頻的時(shí)間戳都保存起來,作為音頻混音壓縮包的時(shí)間戳,這樣就完整地保存了所有音頻和視頻之間的同步關(guān)系。
      具體實(shí)施例方式一種多路音視頻同時(shí)播放時(shí)處理音視頻同步的方法,具體步驟為
      步驟(1).每個(gè)用戶分別獲取各自的音視頻數(shù)據(jù)并將音頻和視頻各自壓縮;將采集的音頻數(shù)據(jù)以10 120毫秒為單位分割成音頻數(shù)據(jù)單元,將每個(gè)音頻數(shù)據(jù)單元壓縮成音頻壓縮包,每個(gè)音頻壓縮包標(biāo)記采集時(shí)刻的客戶端機(jī)器時(shí)間戳;將視頻數(shù)據(jù)中的每一幀壓縮成視頻壓縮包,每個(gè)視頻壓縮包標(biāo)記采集時(shí)刻的客戶端機(jī)器時(shí)間戳;將每個(gè)音頻壓縮包和每個(gè)視頻壓縮包發(fā)送給服務(wù)器。每個(gè)用戶分別獲取各自的音視頻數(shù)據(jù)的方法包括通過設(shè)備采集和從媒體文件中獲取;如通過設(shè)備采集,則所述的時(shí)間戳為采集的時(shí)刻;如從媒體文件中獲取,媒體文件播放或解壓組件會(huì)為數(shù)據(jù)設(shè)置時(shí)間戳,該時(shí)間戳為相對(duì)媒體文件開始的時(shí)刻,轉(zhuǎn)換為以當(dāng)前計(jì)算機(jī)時(shí)刻為標(biāo)準(zhǔn)的時(shí)間戳。視頻處理則是將輸入的視頻以幀為單位,使用視頻編碼器壓縮后,根據(jù)網(wǎng)絡(luò)情況, 切割成適宜傳輸?shù)拇笮?一般為400 1400個(gè)字節(jié)),和該視頻幀的時(shí)間戳一起發(fā)送給服務(wù)器。為方便接收端排序以及判斷是否在傳輸過程中有丟包現(xiàn)象,音視頻包均帶有序列號(hào)。序列號(hào)為2字節(jié)遞增,超過最大值后從0重新開始。為提高帶寬較差時(shí)的用戶體驗(yàn),音視頻數(shù)據(jù)使用不同的連接來發(fā)送,這樣當(dāng)帶寬不夠時(shí),音頻連接由于數(shù)據(jù)相對(duì)視頻連接比較少,容易得到保障。而我們交互的主要手段是通過音頻,視頻一般來說是輔助手段,這樣做可以讓音頻比較流暢,減少對(duì)用戶的影響。步驟O).服務(wù)器將接收到的每個(gè)用戶的音頻壓縮包解壓后混音,然后在混音結(jié)果中記錄所有參與混音的音頻壓縮包對(duì)應(yīng)的時(shí)間戳,壓縮成混音壓縮包,發(fā)送給客戶端;視頻壓縮包直接發(fā)送給客戶端。
      N個(gè)用戶U1、U2、…、UN,每個(gè)用戶有一路音頻,共有N路音頻,分別為Al、A2、…、 AN ;服務(wù)器需要混音出N+1路音頻,分別是
      第0路.包含了所有音頻,記為M0、 第1路.除Al外其他所有音頻,記為Ml、
      第2路.除A2外其他所有音頻,記為M2、 * * *、
      第N路.除AN外其他所有音頻,記為麗。生成的每路音頻都需要將其對(duì)應(yīng)的N或N-I路源音頻的時(shí)間戳寫入這路音頻中, 該音頻包將會(huì)有N或N-I個(gè)時(shí)間戳,以及這些時(shí)間戳所對(duì)應(yīng)的源音頻。例如MO將會(huì)包含 (Ul, Al) (U2,A2)…(UN,AN),Ml 將會(huì)包含(U2,A2) (U3, A3)…(UN,AN)。生成這N+1路音頻后,將MO發(fā)送給所有沒有發(fā)送音頻的用戶,Ml發(fā)送給U1,M2發(fā)送給U2,以此類推,發(fā)送給每個(gè)用戶的音頻內(nèi)容都不包含該用戶的音頻,即避免在該用戶喇叭中產(chǎn)生回聲。步驟(3).每個(gè)客戶端接收到混音壓縮包和視頻壓縮包后,將混音壓縮包解壓后順序播放,然后根據(jù)音頻驅(qū)動(dòng)視頻的原則,顯示對(duì)應(yīng)視頻壓縮包中的視頻幀。每個(gè)客戶端接收到的內(nèi)容為一路混音壓縮包和服務(wù)器轉(zhuǎn)發(fā)的N路視頻壓縮包;播放時(shí)通過音頻驅(qū)動(dòng)視頻進(jìn)行,即每播放一個(gè)音頻壓縮包,記錄該音頻壓縮包中包含的所有時(shí)間戳(U,A)···;播放X用戶的視頻時(shí),取出該路視頻待播放的一幀對(duì)應(yīng)的視頻時(shí)間戳(UX, VX),同時(shí)取出最近播放過的音頻幀的同一用戶的時(shí)間戳(UX,ΑΧ),對(duì)VX和AX進(jìn)行比較,若 VX大于等于ΑΧ,則表示視頻內(nèi)容已經(jīng)在音頻內(nèi)容之后了,可以播放,而若VX小于ΑΧ,根據(jù)音頻驅(qū)動(dòng)視頻原則,表示這個(gè)視頻幀還沒有到播放的時(shí)刻,因此需要等待下一次的播放判斷來決定是否可以播放。網(wǎng)絡(luò)傳輸?shù)牟淮_定性比較強(qiáng),主要表現(xiàn)有以下幾點(diǎn)數(shù)據(jù)包亂序和接收延時(shí)的不確定性。通過TCP發(fā)送數(shù)據(jù)時(shí),不同連接發(fā)出的數(shù)據(jù)在接收時(shí)可能會(huì)與發(fā)送的順序不同,通過UDP發(fā)送數(shù)據(jù)時(shí),不同的數(shù)據(jù)包到達(dá)的順序也是不能保證的,這是數(shù)據(jù)包的亂序特性。無論使用TCP還是UDP,發(fā)出的數(shù)據(jù)包到達(dá)對(duì)方計(jì)算機(jī)所消耗的時(shí)間都是不確定的,會(huì)隨著網(wǎng)絡(luò)傳輸質(zhì)量狀況而變化,一般可能在1毫秒到500毫秒內(nèi)波動(dòng),網(wǎng)絡(luò)差的時(shí)候甚至有可能達(dá)到數(shù)秒鐘。由于以上兩個(gè)特性,需要對(duì)接收到的音視頻數(shù)據(jù)分別進(jìn)行排序和緩沖處理。排序的依據(jù)是數(shù)據(jù)包中的序列號(hào),緩沖的時(shí)間將根據(jù)網(wǎng)絡(luò)延遲決定。網(wǎng)絡(luò)延遲越小,表示網(wǎng)絡(luò)狀況越好,那么可以適當(dāng)減少緩沖的音頻數(shù)據(jù),來獲取更好的實(shí)時(shí)性。網(wǎng)絡(luò)延遲越大,表示網(wǎng)絡(luò)狀況越差,那么我們將暫停播放,直到緩沖的音頻數(shù)據(jù)時(shí)長等于網(wǎng)絡(luò)延時(shí)的時(shí)長,這樣雖然犧牲了實(shí)時(shí)性,但是提高了播放的流暢度,減少播放的時(shí)候由于緩沖過短,數(shù)據(jù)被播放完后沒有數(shù)據(jù)可用造成的一卡一卡的現(xiàn)象。
      權(quán)利要求
      1. 一種多路音視頻同時(shí)播放時(shí)處理音視頻同步的方法,其特征在于該方法的具體步驟是步驟(1).每個(gè)用戶分別獲取各自的音視頻數(shù)據(jù)并將音頻和視頻各自壓縮;將采集的音頻數(shù)據(jù)以10 120毫秒為單位分割成音頻數(shù)據(jù)單元,將每個(gè)音頻數(shù)據(jù)單元壓縮成音頻壓縮包,每個(gè)音頻壓縮包標(biāo)記采集時(shí)刻的客戶端機(jī)器時(shí)間戳;將視頻數(shù)據(jù)中的每一幀壓縮成視頻壓縮包,每個(gè)視頻壓縮包標(biāo)記采集時(shí)刻的客戶端機(jī)器時(shí)間戳;將每個(gè)音頻壓縮包和每個(gè)視頻壓縮包發(fā)送給服務(wù)器;每個(gè)用戶分別獲取各自的音視頻數(shù)據(jù)的方法包括通過設(shè)備采集和從媒體文件中獲取; 如通過設(shè)備采集,則所述的時(shí)間戳為采集的時(shí)刻;如從媒體文件中獲取,媒體文件播放或解壓組件會(huì)為數(shù)據(jù)設(shè)置時(shí)間戳,該時(shí)間戳為相對(duì)媒體文件開始的時(shí)刻,轉(zhuǎn)換為以當(dāng)前計(jì)算機(jī)時(shí)刻為標(biāo)準(zhǔn)的時(shí)間戳;步驟O).服務(wù)器將接收到的每個(gè)用戶的音頻壓縮包解壓后混音,然后在混音結(jié)果中記錄所有參與混音的音頻壓縮包對(duì)應(yīng)的時(shí)間戳,壓縮成混音壓縮包,發(fā)送給客戶端;視頻壓縮包直接發(fā)送給客戶端;N個(gè)用戶U1、U2、…、UN,每個(gè)用戶有一路音頻,共有N路音頻,分別為A1、A2、…、AN; 服務(wù)器需要混音出N+1路音頻,分別是 第0路.包含了所有音頻,記為M0、 第1路.除Al外其他所有音頻,記為Ml、 第2路.除A2外其他所有音頻,記為M2、第N路.除AN外其他所有音頻,記為麗;生成的每路音頻都需要將其對(duì)應(yīng)的N或N-I路源音頻的時(shí)間戳寫入這路音頻中,該音頻包將會(huì)有N或N-I個(gè)時(shí)間戳,以及這些時(shí)間戳所對(duì)應(yīng)的源音頻;生成這N+1路音頻后,將MO發(fā)送給所有沒有發(fā)送音頻的用戶,Ml發(fā)送給U1,M2發(fā)送給 U2,以此類推,發(fā)送給每個(gè)用戶的音頻內(nèi)容都不包含該用戶的音頻;步驟(3).每個(gè)客戶端接收到混音壓縮包和視頻壓縮包后,將混音壓縮包解壓后順序播放,然后根據(jù)音頻驅(qū)動(dòng)視頻的原則,顯示對(duì)應(yīng)視頻壓縮包中的視頻幀;每個(gè)客戶端接收到的內(nèi)容為一路混音壓縮包和服務(wù)器轉(zhuǎn)發(fā)的N路視頻壓縮包;播放時(shí)通過音頻驅(qū)動(dòng)視頻進(jìn)行,即每播放一個(gè)音頻壓縮包,記錄該音頻壓縮包中包含的所有時(shí)間戳(U,A);播放X用戶的視頻時(shí),取出該路視頻待播放的一幀對(duì)應(yīng)的視頻時(shí)間戳(UX,VX),同時(shí)取出最近播放過的音頻幀的同一用戶的時(shí)間戳(UX,AX),對(duì)VX和AX進(jìn)行比較,若VX大于等于AX,則表示視頻內(nèi)容已經(jīng)在音頻內(nèi)容之后了,可以播放,而若VX小于AX,根據(jù)音頻驅(qū)動(dòng)視頻原則,表示這個(gè)視頻幀還沒有到播放的時(shí)刻,等待下一次的播放判斷來決定是否可以播放。
      全文摘要
      本發(fā)明涉及一種多路音視頻同時(shí)播放時(shí)處理音視頻同步的方法。傳統(tǒng)的音視頻同步技術(shù)不能滿足多人溝通應(yīng)用對(duì)多路音視頻同時(shí)進(jìn)行同步的要求。本發(fā)明方法中每個(gè)用戶分別獲取各自的音、視頻數(shù)據(jù)并壓縮成音、視頻壓縮包,每個(gè)音、視頻壓縮包標(biāo)記時(shí)間戳,發(fā)送給服務(wù)器;服務(wù)器將接收到的每個(gè)用戶的音頻壓縮包解壓后混音,在混音結(jié)果中記錄所有參與混音的音頻壓縮包對(duì)應(yīng)的時(shí)間戳,壓縮成混音壓縮包,發(fā)送給客戶端,視頻壓縮包直接發(fā)送給客戶端;每個(gè)客戶端接收到混音壓縮包和視頻壓縮包后,將混音壓縮包解壓后順序播放,然后根據(jù)音頻驅(qū)動(dòng)視頻的原則,顯示對(duì)應(yīng)視頻壓縮包中的視頻幀。本發(fā)明方法能夠完整地保存所有音頻和視頻之間的同步關(guān)系。
      文檔編號(hào)H04N7/52GK102364952SQ20111032716
      公開日2012年2月29日 申請(qǐng)日期2011年10月25日 優(yōu)先權(quán)日2011年10月25日
      發(fā)明者李群巍, 胡開荊 申請(qǐng)人:浙江萬朋網(wǎng)絡(luò)技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1