本發(fā)明涉及視頻會議技術(shù)領(lǐng)域,尤其涉及一種音視頻同步方法。
背景技術(shù):
音視頻同步控制是視頻會議領(lǐng)域的研究熱點,音視頻同步與否對于視頻會議的體驗影響重大。當(dāng)前解決音視頻不同步的方案很多,如多路復(fù)用法(音視頻幀打包傳輸)、同步標(biāo)記法(對音視頻相關(guān)幀打標(biāo)簽,播放時根據(jù)標(biāo)簽進(jìn)行播放)等。
現(xiàn)有解決音視頻不同步的方案大部分是基于私有協(xié)議進(jìn)行的,兼容性、擴(kuò)展性不足,實現(xiàn)成本也比較高。因此,本專利申請?zhí)峁┮环N只基于RTCP的RTP時間戳和NTP時間戳,來實現(xiàn)音視頻同步的方法。這里,要解決的不同步主要是因為音視頻處于不同RTP會話,在網(wǎng)絡(luò)中傳輸延遲異導(dǎo)致的不同步。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題,在于提供一種音視頻同步方法,該方法可以根據(jù)不同音視頻同步需求,調(diào)整音視頻的同步范圍。
本發(fā)明是這樣實現(xiàn)的:一種音視頻同步方法,基于RTCP發(fā)送者報文的RTP時間戳和NTP時間戳,來實現(xiàn)音視頻同步。
進(jìn)一步的,所述方法具體為:針對音頻和視頻,從連續(xù)的兩個RTCP發(fā)送者報文包中得到音頻與視頻的RTP與NTP數(shù)據(jù),并根據(jù)得到的音頻與視頻的RTP與NTP數(shù)據(jù)來獲得音頻與視頻對應(yīng)的時戳頻率;
從RTCP發(fā)送者報文包中取最新的音頻和視頻的NTP時間戳Audio_SRNTP、Video_SRNTP,以及最新的視頻的RTP數(shù)據(jù)來獲得視頻的RTP時間戳的基礎(chǔ)值Video_RTPTime;
每獲取一個音頻RTP包,則獲得音頻RTP包的RTP時間戳Audio_TRUERTP,根據(jù)RTP時間戳Audio_TRUERTP和RTP時間戳的基礎(chǔ)值Video_RTPTime得出基于音頻RTP的視頻基準(zhǔn)RTP時間戳Video_TRUERTP;
從RTCP發(fā)送者報文包中取得最新收到的視頻RTP時間戳Video_TRUERTP’與所述基于音頻RTP的視頻基準(zhǔn)RTP時間戳Video_TRUERTP進(jìn)行比對實現(xiàn)音視頻同步操作。
進(jìn)一步的,根據(jù)得到的音頻與視頻的RTP與NTP數(shù)據(jù)來獲得音頻與視頻對應(yīng)的時戳頻率;即根據(jù)公式(1)(2)計算,得到音頻與視頻對應(yīng)的時戳頻率Audio_Fre、Video_Fre:
其中,Audio_SRRTPtime1,Audio_SRRTPtime2為連續(xù)的兩個RTCP發(fā)送者報文包對應(yīng)的音頻的RTP數(shù)據(jù);Audio_SRNTPtime1,Audio_SRNTPtime2為連續(xù)的兩個RTCP發(fā)送者報文包對應(yīng)的音頻的NTP數(shù)據(jù);Video_SRRTPtime1,Video_SRRTPtime2為連續(xù)的兩個RTCP發(fā)送者報文包對應(yīng)的視頻的RTP數(shù)據(jù);Video_SRNTPtime1,Video_SRNTPtime2為連續(xù)的兩個RTCP發(fā)送者報文包對應(yīng)的視頻的NTP數(shù)據(jù);
從RTCP發(fā)送者報文包中取最新的音頻和視頻的NTP時間戳Audio_SRNTP、Video_SRNTP,以及最新的視頻的RTP數(shù)據(jù)根據(jù)公式(3)獲得視頻的RTP時間戳的基礎(chǔ)值Video_RTPTime;
Video_RTPTime=Video_SRRTPTime+(Audio_SRNTP-Video_SRNTP)×Video_Fre------(3)
其中,最新的視頻的RTP數(shù)據(jù)Video_SRRTPtime,視頻對應(yīng)的時戳頻率Video_Fre;
通過RTP時間戳Audio_TRUERTP和RTP時間戳的基礎(chǔ)值Video_RTPTime根據(jù)公式(4)得出基于音頻RTP的視頻基準(zhǔn)RTP時間戳Video_TRUERTP;
其中,最新的音頻的RTP數(shù)據(jù)Audio_SRRTPtime。
進(jìn)一步的,所述從RTCP發(fā)送者報文包中取得最新收到的視頻RTP時間戳Video_TRUERTP’與所述基于音頻RTP的視頻基準(zhǔn)RTP時間戳Video_TRUERTP進(jìn)行比對實現(xiàn)音視頻同步操作,具體為:
A.Video_TRUERTP’-Video_TRUERTP<-Video_Fre*40*T’
這種情況下,視頻幀慢于音頻幀,且處于同步定義范圍之外,丟棄視頻幀,如果視頻丟幀嚴(yán)重,對音頻幀進(jìn)行緩存;
B.-Video_Fre*40*T’<(Video_TRUERTP’-Video_TRUERTP)<Video_Fre*120*T’
這種情況下,視頻幀處于同步定義范圍之內(nèi),播放或者操作;
C.Video_Fre*120*T’<Video_TRUERTP’-Video_TRUERTP
這種情況下,視頻幀快于音頻幀,且處于同步定義范圍之外,緩存視頻幀,等待音頻幀到來;
其中,T為NTP的單位,T=1E12/2^32ps,T’=1E9*T=1E21/2^23ps。
本發(fā)明具有如下優(yōu)點:該方法基于通用的RTCP實現(xiàn)音視頻同步,可用于服務(wù)器、中間設(shè)備、終端,實現(xiàn)成本低、兼容性及擴(kuò)展性好;而且,該方法可以根據(jù)不同音視頻同步需求,調(diào)整音視頻的同步范圍。
附圖說明
下面參照附圖結(jié)合實施例對本發(fā)明作進(jìn)一步的說明。
圖1為本發(fā)明方法結(jié)構(gòu)示意圖。
具體實施方式
請參閱圖1所示,一種音視頻同步方法,基于RTCP發(fā)送者報文的RTP時間戳和NTP時間戳,來實現(xiàn)音視頻同步;
所述方法具體為:針對音頻和視頻,從連續(xù)的兩個RTCP發(fā)送者報文包中得到音頻與視頻的RTP與NTP數(shù)據(jù),并根據(jù)得到的音頻與視頻的RTP與NTP數(shù)據(jù)來獲得音頻與視頻對應(yīng)的時戳頻率;(每次收到SR包都需要更新)
從RTCP發(fā)送者報文包(即SR包)中取最新的音頻和視頻的NTP時間戳Audio_SRNTP、Video_SRNTP,以及最新的視頻的RTP數(shù)據(jù)來獲得視頻的RTP時間戳的基礎(chǔ)值Video_RTPTime;
每獲取一個音頻RTP包,則獲得音頻RTP包的RTP時間戳Audio_TRUERTP,根據(jù)RTP時間戳Audio_TRUERTP和RTP時間戳的基礎(chǔ)值Video_RTPTime得出基于音頻RTP的視頻基準(zhǔn)RTP時間戳Video_TRUERTP;
從RTCP發(fā)送者報文包中取得最新收到的視頻RTP時間戳Video_TRUERTP’與所述基于音頻RTP的視頻基準(zhǔn)RTP時間戳Video_TRUERTP進(jìn)行比對實現(xiàn)音視頻同步操作。
根據(jù)得到的音頻與視頻的RTP與NTP數(shù)據(jù)來獲得音頻與視頻對應(yīng)的時戳頻率;即根據(jù)公式(1)(2)計算,得到音頻與視頻對應(yīng)的時戳頻率
其中,Audio_SRRTPtime1,Audio_SRRTPtime2為連續(xù)的兩個RTCP發(fā)送者報文包對應(yīng)的音頻的RTP數(shù)據(jù);Audio_SRNTPtime1,Audio_SRNTPtime2為連續(xù)的兩個RTCP發(fā)送者報文包對應(yīng)的音頻的NTP數(shù)據(jù);Video_SRRTPtime1,Video_SRRTPtime2為連續(xù)的兩個RTCP發(fā)送者報文包對應(yīng)的視頻的RTP數(shù)據(jù);Video_SRNTPtime1,Video_SRNTPtime2為連續(xù)的兩個RTCP發(fā)送者報文包對應(yīng)的視頻的NTP數(shù)據(jù);
從RTCP發(fā)送者報文包中取最新的音頻和視頻的NTP時間戳Audio_SRNTP、Video_SRNTP,以及最新的視頻的RTP數(shù)據(jù)根據(jù)公式(3)獲得視頻的RTP時間戳的基礎(chǔ)值Video_RTPTime;
Video_RTPTime=Video_SRRTPTime+(Audio_SRNTP-Video_SRNTP)×Video_Fre------(3)
其中,最新的視頻的RTP數(shù)據(jù)Video_SRRTPtime,視頻對應(yīng)的時戳頻率Video_Fre;
通過RTP時間戳Audio_TRUERTP和RTP時間戳的基礎(chǔ)值Video_RTPTime根據(jù)公式(4)得出基于音頻RTP的視頻基準(zhǔn)RTP時間戳Video_TRUERTP;
其中,最新的音頻的RTP數(shù)據(jù)Audio_SRRTPtime。
所述從RTCP發(fā)送者報文包中取得最新收到的視頻RTP時間戳Video_TRUERTP’與所述基于音頻RTP的視頻基準(zhǔn)RTP時間戳Video_TRUERTP進(jìn)行比對實現(xiàn)音視頻同步操作,具體為:
A.Video_TRUERTP’-Video_TRUERTP<-Video_Fre*40*T’
這種情況下,視頻幀慢于音頻幀,且處于同步定義范圍之外,丟棄視頻幀,如果視頻丟幀嚴(yán)重,對音頻幀進(jìn)行緩存;
B.-Video_Fre*40*T’<(Video_TRUERTP’-Video_TRUERTP)<Video_Fre*120*T’
這種情況下,視頻幀處于同步定義范圍之內(nèi),播放或者操作;
C.Video_Fre*120*T’<Video_TRUERTP’-Video_TRUERTP
這種情況下,視頻幀快于音頻幀,且處于同步定義范圍之外,緩存視頻幀,等待音頻幀到來;
其中,T為NTP的單位,T=1E12/2^32ps,T’=1E9*T=1E21/2^23ps。
總之,本發(fā)明基于通用的RTCP實現(xiàn)音視頻同步,可用于服務(wù)器、中間設(shè)備、終端,實現(xiàn)成本低、兼容性及擴(kuò)展性好;而且,該方法可以根據(jù)不同音視頻同步需求,調(diào)整音視頻的同步范圍。
雖然以上描述了本發(fā)明的具體實施方式,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。