專利名稱:流媒體快速流間同步機制的制作方法
技術(shù)領(lǐng)域:
本發(fā)明屬于計算機多媒體同步技術(shù)。
背景技術(shù):
多媒體同步技術(shù)是流媒體技術(shù)中一項關(guān)鍵的技術(shù),其目的是向用戶展示多媒體信息時,保持多媒體對象內(nèi)和對象間固有的時域約束關(guān)系。多媒體同步包含兩類同步一類是流內(nèi)同步,其主要任務(wù)是保證媒體流內(nèi)部的相對時態(tài)關(guān)系,也就是按一定的時間要求傳送每一個多媒體對象,并在客戶端能夠進(jìn)行連續(xù)的展現(xiàn)。另一類是流間同步,主要任務(wù)是維護(hù)媒體對象間的時間關(guān)系,如音頻和視頻之間的時間關(guān)系(即唇同步)、音視頻與文字之間的時間關(guān)系等等。RTP/RTCP協(xié)議是流媒體協(xié)議棧中一個重要的組成部分,它承擔(dān)了媒體數(shù)據(jù)的傳送任務(wù),RTSP協(xié)議則在流媒體協(xié)議棧中負(fù)責(zé)控制媒體數(shù)據(jù)的有效傳輸,RTSP和RTP/RTCP協(xié)議是整個流媒體協(xié)議棧的核心部分。
發(fā)明內(nèi)容
本發(fā)明主要針對IP網(wǎng)絡(luò)環(huán)境,并基于RTP/RTCP協(xié)議和RTSP協(xié)議,利用RTP時間戳、RTCP包中RTP時間戳和NTP (Network Time Protocol)時間戳的映射關(guān)系并結(jié)合RTSP 的PLAY方法應(yīng)答消息中的Range頭域和RTPHnfo頭域的映射關(guān)系,快速地確定媒體流間的同步關(guān)系,同時還可以消除各媒體流間的同步依賴關(guān)系,使得流間同步的復(fù)雜度與媒體流的數(shù)目無關(guān)。該方案的有如下幾個優(yōu)點1)流媒體客戶端在會話開始時便可以建立RTP時間戳與NTP時間戳的對應(yīng)關(guān)系, 從而可以提前媒體對象的回放起始時間。2)具有抗丟包能力。由于媒體間的同步關(guān)系的是通過RTSP控制信道來建立的,因此即使在RTP會話中有RTCP SR包的丟失,也不會影響到媒體的第一回放時間。3)當(dāng)會話中有多條媒體流存在時,各媒體流間的同步無依賴關(guān)系,從而使得流間同步的復(fù)雜性與媒體流的數(shù)目無關(guān)。4)由于此方案將RTP時間戳映射到的本地虛擬NTP時間戳的起始值為0,因此, 該虛擬NTP時間戳可直接作為該媒體流的絕對顯示時間戳,從而減少了流媒體客戶端計算量。
具體實施例方式流媒體客戶端在接收到PLAY方法的應(yīng)答消息后,將RTPHnf0頭域中各流的 rtptime參數(shù)提取出來,并分別與NTP時間戳格式的0對應(yīng),即將各媒體流的第一個包的 RTP時間戳映射到一個虛擬的NTP時間戳0上,在接下來RTP會話過程中,利用收到的第一個RTCP SR包計算出實際的NTP時間戳與NTP時間戳0的差值diff,而且隨后的RTCP SR 包的NTP時間戳都需要先減去該diff再與RTP時間戳建立映射關(guān)系。也就是說在會話開始時,流媒體客戶端首先利用RTP-hfo頭域中的rtptime參數(shù)建立RTP時間戳與本地虛擬NTP時間戳之間的對應(yīng)關(guān)系,然后利用隨后收到的第一個RTCP SR包,建立服務(wù)器端實際 NTP時間戳與該虛擬NTP時間戳的映射關(guān)系,從而間接地建立起RTP時間戳與服務(wù)器端實際NTP時間戳的映射關(guān)系,后續(xù)的RTCP SR包則用于校準(zhǔn)該映射關(guān)系,如圖2所示,圖中給出了兩條媒體流的同步過程,多條流的情況與此類似。下面敘述流媒體客戶端對媒體流實施各種VCR控制后實現(xiàn)流間同步的詳細(xì)步驟。1、第一次發(fā)送RTSP PLAY請求當(dāng)流媒體客戶端利用RTSP協(xié)議的DESCRIBE、SETUP等方法完成會話協(xié)商后,會向流媒體服務(wù)器發(fā)送RTSP PLAY方法請求流媒體服務(wù)器開始發(fā)送媒體數(shù)據(jù),為了實現(xiàn)流間同步,在流媒體客戶端接收到該PLAY方法的成功響應(yīng)(即狀態(tài)碼為^cx)后,應(yīng)該順序執(zhí)行如下操作(1)提取該PLAY響應(yīng)的RTPHnfo頭域中各流的rtptime參數(shù);(2)將各流的rtptime參數(shù)值對應(yīng)到NTP時間戳0上;(3)收到各流的第一個RTCP SR包時計算出實際的NTP時間戳與NTP時間戳0的差值diff ;(4)收到各流的第η (η > 1)個的RTCP SR包時,先該SR包的實際的NTP時間戳減去diff,然后與該SR包的RTP時間戳建立對應(yīng)關(guān)系;如果不考慮流間同步的問題,流媒體客戶端在執(zhí)行完第2步操作后,便可以開始媒體對象的解碼和回放,第3步和第4步操作則用于校準(zhǔn)RTP時間戳與NTP時間戳的映射關(guān)系。2、播放過程中發(fā)送攜帶有Range頭域的RTSP PLAY請求在節(jié)目播放過程中,如果流媒體客戶端請求選時播放,則會向流媒體服務(wù)器發(fā)送攜帶有Range頭域的RTSP PLAY請求,其中Range頭域中攜帶有請求發(fā)送的媒體數(shù)據(jù)的時間范圍,為了實現(xiàn)選時后媒體數(shù)據(jù)的流間同步,在流媒體客戶端接收到該PLAY方法的成功響應(yīng)后,應(yīng)該順序執(zhí)行如下操作(1)清空RTP會話中各流的socket緩沖區(qū);(2)提取該PLAY響應(yīng)的RTPHnfo頭域中各流的rtptime參數(shù)和seq參數(shù);(3)將各流的rtptime參數(shù)值對應(yīng)到NTP時間戳0上;(4)收到各流的第一個RTCP SR包時計算出實際的NTP時間戳與NTP時間戳0的差值diff ;(5)收到各流的第二個以及隨后的RTCP SR包時,先該SR包的實際的NTP時間戳減去diff,然后與該SR包的RTP時間戳建立對應(yīng)關(guān)系;其中第1步操作的目的是丟棄在選時播放前流媒體客戶端已經(jīng)接收到但尚未處理的RTP包和RTCP包,第2步操作中所提取的各流的seq參數(shù)則用于區(qū)分選時前后的RTP 包(因為可能有部分滯留在網(wǎng)絡(luò)中的選時前的RTP包,在收到該PLAY響應(yīng)后才到達(dá)流媒體客戶端)。如果不考慮流間同步的問題,流媒體客戶端在執(zhí)行第3步操作以后,便可以開始媒體對象的解碼和回放,第4步和第5步操作的作用同1小節(jié)。3、RTSP PAUSE請求后發(fā)送無Range頭域的RTSP PLAY請求流媒體客戶端在發(fā)送了暫停請求后,如果希望恢復(fù)播放,則會發(fā)送一個無Range頭域的RTSP PLAY請求,正常情況下,流媒體服務(wù)器端會回復(fù)一個該PLAY請求的成功響應(yīng), 而且其中會攜帶一個Range頭域,用于指示隨后的媒體流的播放時間范圍。在這種情況下, 為了不影響暫停前媒體客戶端已經(jīng)接收但尚未處理的媒體數(shù)據(jù)的回放,且實現(xiàn)暫停后媒體數(shù)據(jù)的同步,應(yīng)該順序執(zhí)行如下操作(1)提取該PLAY響應(yīng)的RTPHnfo頭域中各流的rtptime參數(shù);(2)提取該PLAY響應(yīng)的Range頭域中的NPT起始時間戳,并將其轉(zhuǎn)換為NTP時間戳格式,記為ntp_start ;(3)將各流的rtptime參數(shù)值對應(yīng)到NTP時間戳ntp_start上;(4)收到各流的第一個RTCP SR包時計算出實際的NTP時間戳與NTP時間戳0的差值diff ;(5)收到各流的第二個以及隨后的RTCP SR包時,先該SR包的實際的NTP時間戳減去diff,然后與該SR包的RTP時間戳建立對應(yīng)關(guān)系;如果不考慮流間同步的問題,流媒體客戶端在執(zhí)行完第3步操作后,便可以開始媒體數(shù)據(jù)的解碼和回放,第4步和第5步操作的作用同1小節(jié)。4、RTSP PAUSE請求后發(fā)送攜帶有Range頭域的RTSP PLAY請求流媒體客戶端在發(fā)送了暫停請求后,如果接下來希望進(jìn)行選時播放,則需要發(fā)送一個攜帶有Range頭域的RTSP PLAY請求,其中Range頭域中攜帶有待播放的時間范圍,正常情況下,流媒體服務(wù)器端會回復(fù)一個該PLAY請求的成功響應(yīng),此時,為了實現(xiàn)選時后媒體數(shù)據(jù)的流間同步,所執(zhí)行的操作應(yīng)該與2小節(jié)中的完全相同,在此不再贅敘。
權(quán)利要求
1.在RTSP流媒體會話開始時,流媒體客戶端首先利用RTP-hfo頭域中的rtptime參數(shù)建立RTP時間戳與本地虛擬NTP時間戳之間的對應(yīng)關(guān)系,然后利用隨后收到的第一個 RTCP SR包,建立服務(wù)器端實際NTP時間戳與該虛擬NTP時間戳的映射關(guān)系,從而間接地建立起RTP時間戳與服務(wù)器端實際NTP時間戳的映射關(guān)系,后續(xù)的RTCP SR包則用于校準(zhǔn)該映射關(guān)系。
全文摘要
多媒體同步技術(shù)是流媒體技術(shù)中一項關(guān)鍵的技術(shù),在通常的流媒體客戶端設(shè)計中,同步信息的建立依賴于典型地承載在UDP協(xié)議之上RTCP包,導(dǎo)致媒體對象的第一回放時間具有不可預(yù)測性。為了縮短回放前的等待時間,本發(fā)明基于RTP/RTCP協(xié)議和RTSP協(xié)議,提出了一種快速確定媒體流間同步關(guān)系的機制。本發(fā)明不僅可以簡化流媒體客戶端進(jìn)行流間同步的復(fù)雜度,而且可以加快媒體對象的第一回放時間,使用戶可以盡快地觀看到節(jié)目的內(nèi)容,從而提供良好的用戶體驗。
文檔編號H04L29/06GK102202070SQ20101012978
公開日2011年9月28日 申請日期2010年3月23日 優(yōu)先權(quán)日2010年3月23日
發(fā)明者馮思雅, 盧日 申請人:馮思雅