專利名稱:一種iptv終端組播轉單播切換方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及網(wǎng)絡互動電視(IPTV)技術,具體涉及一種IPTV終端組播轉 單播切換方法及系統(tǒng)。
背景技術:
流媒體的傳輸技術主要有三種方式點對點(Unicast)、多址廣播(Multicast) 和廣播(Broadcast)。點對點方式的特點是傳送流媒體的流媒體服務器端應用 和接收流媒體的客戶端應用——對應;多址廣播又稱為組播,在組播方式下, 傳送流媒體的流媒體服務器端應用和接收流媒體的客戶端應用是一對多的關 系,這種一對多的關系只能在同一個組內(nèi)建立,即屬于某一個組內(nèi)的所有客戶 端應用均可以接收到流媒體服務器端應用傳送的流媒體,而不屬于該組的客戶 端應用則接收不到;廣播方式下,傳送流媒體的流媒體服務器端應用和接收流 媒體的客戶端應用也是一對多的關系,但這種一對多的關系并不像組播方式那 樣局限于組,同 一 網(wǎng)段上的所有客戶端應用均可以接收到流媒體服務器端應用 傳送的流媒體。
IPTV是一種利用寬帶有線電視網(wǎng),集互聯(lián)網(wǎng)、多媒體、通訊等多種技術于 一體,向家庭用戶提供包括數(shù)字電視在內(nèi)的多種交互式服務的嶄新技術。IPTV 中, 一般采用RTP格式封裝媒體數(shù)據(jù),圖1為RTP頭結構示意圖,如圖1所示, RTP頭中攜帶的參數(shù)包括版本(V)、填充位(P)、擴展位(X)、提供源標志 計數(shù)位(CC)、標志位(M)、負載類型(PT)、序列號(Sequence number )、時 戳(Time stamp )、同步源標志(SSRC )和提供源標志(CSRC )。
IPTV通過IP組播方式能夠有效地將流媒體傳送到用戶接入網(wǎng)路 (VDN/CDN),在實現(xiàn)單點傳送多點接收的同時,大大降低了網(wǎng)絡帶寬的占用,卩備倂.T頓汰咨教. 一船'f魯;兄.下.大部分直播節(jié)'目都是通過組播方式傳送的。而 IPTV的一個主要特點就是具有交互性,如時移、點播等,這些情況下,組播方 式就無法提供支持,需要采用單播方式傳送數(shù)據(jù),也就是說,在IPTV中,流 媒體傳輸?shù)慕M播方式和單播方式是并存的。為了提高用戶體驗,在組播轉單播 時,需要盡量實現(xiàn)快速地、無縫地切換。
公開號為CN101009825的專利提出了 一種組播轉單播的無縫切換方法,該 方法通過對視頻幀的完整性進行判斷,以確定中斷組播的時機,并在中斷組播 后,再獲取單播地址以及請求單播數(shù)據(jù),釆用這種組播轉單播的無縫切換方法, 為了判斷視頻幀是否完整,需要在RTP頭中加入私有的標識,或者多收一個時 戳跳變的RTP數(shù)據(jù)包,這樣,在IPTV終端收到的視頻幀不完整時,仍然會繼 續(xù)接收組播數(shù)據(jù),導致不能及時對組播轉單播指令進行響應;并且,采用這種 組播轉單播的方法由組播轉單播時,首先需要退出組播,再獲取單播地址,這
樣,從退出組播到開始接收單播數(shù)據(jù)這段時間,IPTV畫面停頓,會影響用戶體 驗。
另外,由于一個視頻幀數(shù)據(jù)比較大, 一般都要封裝成多個RTP數(shù)據(jù)包,在 進行組播轉單播切換時,IPTV終端很容易出現(xiàn)新鏈路與原先鏈路收到的RTP 數(shù)據(jù)包不連續(xù)、重復等問題,從而會導致終端視頻輸出前后幀不連續(xù),也會影 響切換的效果。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種IPTV終端組播轉單播切換方 法及系統(tǒng),不需要時刻關注數(shù)據(jù)幀的完整性,能夠更好地進行組播轉單播的無 縫切換、提高用戶體驗,且容易實現(xiàn)。
為達到上述目的,本發(fā)明的技術方案是這樣實現(xiàn)的
一種網(wǎng)絡互動電視IPTV終端組播轉單播切換方法,該方法包括
a、接收組播RTP數(shù)據(jù)包的IPTV終端收到組播轉單播指令后,建立單播通
道;—44f通iW好后,IPTV終端退出組播通道,并請臾泉播數(shù)據(jù) c、 IPTV終端根據(jù)記錄的組播通道最后收到RTP數(shù)據(jù)包的時戳和編號,以
及記錄的最新收到RTP數(shù)據(jù)包的時戳和編號,對收到的RTP數(shù)據(jù)包進行過濾。 IPTV終端收到一個RTP數(shù)據(jù)包時,按照收到RTP數(shù)據(jù)包的順序,對時戳
相同的RTP數(shù)據(jù)包統(tǒng)一進行編號,并記錄最新收到RTP數(shù)據(jù)包的時戳和編號, 所述組播通道收到RTP數(shù)據(jù)包的編號和單播通道收到RTP數(shù)據(jù)包的編號相
互獨立。
步驟b所述請求單播數(shù)據(jù)為IPTV終端向流媒體服務器請求從所述組播通 道最后收到的RTP數(shù)據(jù)包時戳所對應播放時間點開始的單播數(shù)據(jù)。
步驟c所述對收到的RTP數(shù)據(jù)包進行過濾為如果收到的RTP數(shù)據(jù)包時戳 小于組播通道最后收到RTP數(shù)據(jù)包的時戳;或者收到的RTP數(shù)據(jù)包時戳等于組 播通道最后收到RTP數(shù)據(jù)包的時戳,但是編號不大于組播通道最后收到RTP 數(shù)據(jù)包編號,則丟棄所述收到的RTP數(shù)據(jù)包;否則,將所述RTP數(shù)據(jù)包解碼輸 出。
步驟c所述對收到的單播RTP數(shù)據(jù)包進行過濾后包括將過濾后的RTP數(shù) 據(jù)包解碼輸出。
組播轉單播之后, 一旦有rtp數(shù)據(jù)包解碼輸出,之后收到的rtp數(shù)據(jù)包直 接解碼輸出,不再進^ft過濾。
一種IPTV終端組播轉單播切換系統(tǒng),該系統(tǒng)包括流媒體服務器、控制服 務器和IPTV終端,IPTV終端具體包括RTP數(shù)據(jù)包接收單元、編號&記錄單元、 指令接收單元、通道轉換單元、數(shù)據(jù)請求單元、過濾單元,其中,
RTP數(shù)據(jù)包接收單元用于接收流媒體服務器發(fā)送的組播或單播RTP數(shù)據(jù)
包;
編號&記錄單元用于按照RTP數(shù)據(jù)包接收單元收到組播RTP數(shù)據(jù)包的順 序,對時戳相同的RTP數(shù)據(jù)包統(tǒng)一進行編號,并記錄最新收到RTP數(shù)據(jù)包的時 戳和編號;
指令接收單元用于接收控制服務器發(fā)送的組播轉單播指令;通道轉換單元用于根據(jù)指令接收單元收到的組播轉單播指令,建立單播通
道,以及在單播通道建好后,退出組播通道;
數(shù)據(jù)請求單元用于在通道轉換單元轉換通道成功后,向流媒體服務器請求 單播數(shù)據(jù);
過濾單元用于根據(jù)編號&記錄單元記錄的組播通道最后收到RTP數(shù)據(jù)包的 時戳和編號,以及最新收到RTP數(shù)據(jù)包的時戳和編號,對RTP數(shù)據(jù)包接收單元 收到的單播RTP數(shù)據(jù)包進行過濾。
該系統(tǒng)進一步包括解碼單元,所述解碼單元用于對RTP數(shù)據(jù)包接收單元收 到的組播RTP數(shù)據(jù)包或過濾單元過濾后的單播RTP數(shù)據(jù)包進行解碼并輸出。
所述編號&記錄單元分別對組播通道和單播通道收到的RTP數(shù)據(jù)包進行編號。
本發(fā)明提出的IPTV終端組播轉單播切換方法及系統(tǒng),IPTV終端根據(jù)時戳 對收到的RTP包進行編號,并記錄最新收到的RTP數(shù)據(jù)包的時戳及其編號, IPTV終端收到組播轉單播指令后,先建立單播通道,單播通道建立成功后再退 出組播,并向流媒體服務器請求從所述組播通道最后收到的RTP數(shù)據(jù)包時戳所 對應播放時間點開始的單播數(shù)據(jù),接收到單播通道的RTP數(shù)據(jù)包時,再根據(jù)記 錄的組播通道最后收到RTP數(shù)據(jù)包的時戳和編號,以及記錄的最新收到RTP 數(shù)據(jù)包的時戳和編號,對收到的RTP數(shù)據(jù)包進行過濾。采用本發(fā)明提出的IPTV 終端組播轉單播切換方法,IPTV終端收到組播轉單播指令后,先建立單播通道, 單播通道建立成功后再退出組播,更好地保證了視頻的連續(xù)性,提高了用戶體 驗;同時,IPTV終端根據(jù)時戳對收到的RTP包進行編號,并記錄最新收到的 RTP數(shù)據(jù)包的時戳及其編號,不需要在RTP頭中加入私有的標識,或者多收一 個時戳跳變的RTP數(shù)據(jù)包來判斷視頻幀是否完整,所以,更容易實現(xiàn)。
圖1為RTP頭結構示意圖2為本發(fā)明IPTV終端組播轉單播切換方法的流程圖;圖3為本發(fā)明IPTV終端組播轉單播切換系統(tǒng)的結構圖。
具體實施例方式
本發(fā)明的基本思想是IPTV終端根據(jù)時戳對收到的RTP包進行編號,并 記錄最新收到的RTP數(shù)據(jù)包的時戳及其編號,IPTV終端收到組播轉單播指令 后,先建立單播通道,單播通道建立成功后再退出組播,并向流媒體服務器請 求從所述組播通道最后收到的RTP數(shù)據(jù)包時戳所對應播放時間點開始的單播數(shù) 據(jù),接收到單播通道的RTP數(shù)據(jù)包時,再根據(jù)記錄的組播通道最后收到RTP 數(shù)據(jù)包的時戳和編號,以及記錄的最新收到RTP數(shù)據(jù)包的時戳和編號,對收到 的RTP數(shù)據(jù)包進行過濾。下面結合具體實施例及附圖對本發(fā)明作進一步詳細說 明。
圖2為本發(fā)明IPTV終端組播轉單播切換方法的流程圖,如圖2所示,本 發(fā)明IPTV終端組播轉單播切換方法主要包括以下步驟
步驟21: IPTV終端接收組播通道的RTP數(shù)據(jù)包,并解碼輸出。
RTP數(shù)據(jù)包的時戳記錄了該RTP數(shù)據(jù)包所屬數(shù)據(jù)幀的第 一個字節(jié)的采樣時 間,具有相同時戳的RTP數(shù)據(jù)包一般有很多個。這里,IPTV終端會按照收到 RTP數(shù)據(jù)包的順序,對時戳相同的RTP數(shù)據(jù)包統(tǒng)一進行編號,并記錄最新收到 RTP數(shù)據(jù)包的時戳和編號。
例如,IPTV終端依次收到60個RTP數(shù)據(jù)包,其中,前40個RTP數(shù)據(jù)包 的時戳為TSl,后20個RTP數(shù)據(jù)包的時戳為TS2, TSKTS2,貝'j IPTV終端收 到RTP數(shù)據(jù)包時,將前40個RTP數(shù)據(jù)包依次編號為1至40,將后20個RTP 數(shù)據(jù)包依次編號為1至20。接收過程中,IPTV終端收到第5個時戳為TSl的 RTP數(shù)據(jù)包時,所述最新收到RTP數(shù)據(jù)包的時戳和編號分別為TSl和5, IPTV 終端收到第20個時戳為TSl的RTP數(shù)據(jù)包時,所述最新收到RTP數(shù)據(jù)包的時 戳和編號變?yōu)門Sl和20, IPTV終端收到第1個時戳為TS2的RTP數(shù)據(jù)包時, 所述最新收到RTP數(shù)據(jù)包的時戳和編號分別為TS2和1。
步驟22: IPTV終端收到組播轉單播指令后,建立單播通道。這里,由于IPTV終端與流媒體服務器之間建立單播通道的過程中,需要
經(jīng)過多次交互,所以,建立單"t番通道的時間是不可忽略的,本實施例中,IPTV 終端與流媒體服務器之間建立單播通道時,IPTV終端繼續(xù)通過組播通道接收 RTP數(shù)據(jù)包,并解碼輸出,所以,不會出現(xiàn)畫面停頓的情況。
步驟23:單播通道建好后,退出組播通道。
步驟24: IPTV終端向流媒體服務器請求單播數(shù)據(jù)。
具體地,IPTV終端向流媒體服務器請求從所述組播通道最后收到的RTP 數(shù)據(jù)包時戳所對應播放時間點開始的單播數(shù)據(jù),流媒體服務器將從所述播放時 間點的RTP數(shù)據(jù)包開始發(fā)送數(shù)據(jù)。
步驟25: IPTV終端接收單播通道的RTP數(shù)據(jù)包。
與步驟21相類似,IPTV終端每收到一個RTP數(shù)據(jù)包,就按照IPTV終端 收到RTP數(shù)據(jù)包的順序,對時戳相同的RTP數(shù)據(jù)包進行編號,并記錄最新收到 RTP數(shù)據(jù)包的時戳和編號。
這里,組播通道收到RTP數(shù)據(jù)包的編號和單播通道收到RTP數(shù)據(jù)包的編號 相互獨立。即單播方式下,重新對時戳相同的RTP數(shù)據(jù)包進行編號,與組播方 式下的編號無關,例如,組播通道最后收到的RTP數(shù)據(jù)包的時戳和編號分別為 TS1和5,組播轉單播后,單播通道收到第一個RTP數(shù)據(jù)包的時戳為TS1,則 其編號為1,而不是6。
步驟26:判斷是否丟棄收到的RTP數(shù)據(jù)包,如果是,返回步驟25;否則, 執(zhí)行步驟27。
這里,判斷丟棄收到的RTP數(shù)據(jù)包的依據(jù)為確定收到的RTP數(shù)據(jù)包時戳 小于組播通道最后收到RTP數(shù)據(jù)包的時戳,或者收到的RTP數(shù)據(jù)包時戳等于組 播通道最后收到RTP數(shù)據(jù)包的時戳,但是編號不大于組播通道最后收到RTP 數(shù)據(jù)包編號,此時,丟棄收到的RTP數(shù)據(jù)包。
例如,時戳TSKTS2,組播通道最后收到RTP數(shù)據(jù)包的時戳和編號分別 為TS2和5,那么,IPTV終端通過單播通道接收的RTP數(shù)據(jù)包時戳和編號分 別為TS1和20時,丟棄該RTP數(shù)據(jù)包;IPTV終端通過單播通道接收的RTP數(shù)據(jù)包時戳和編號分別為TS2和2時,丟棄該數(shù)據(jù)包;IPTV終端通過單播通 道接收的RTP數(shù)據(jù)包時戳和編號分別為TS2和5時,丟棄該數(shù)據(jù)包;IPTV終 端通過單播通道接收的RTP數(shù)據(jù)包時戳和編號分別為TS2和6時,將該數(shù)據(jù)包 解碼輸出。
步驟27:將RTP數(shù)據(jù)包解碼輸出。
步驟28:繼續(xù)通過單播通道接收RTP數(shù)據(jù)包,并解碼輸出。 這里, 一旦步驟27有RTP數(shù)據(jù)包解碼輸出,之后收到的RTP數(shù)據(jù)包直接 解碼輸出,不再進行是否丟棄的判斷。
圖3為本發(fā)明IPTV終端組播轉單播切換系統(tǒng)的結構圖,如圖3所示,本 發(fā)明IPTV終端組播轉單播切換系統(tǒng)包括流媒體服務器1、控制服務器2和IP丁V 終端3, IPTV終端3具體包括RTP數(shù)據(jù)包接收單元31 、編號&記錄單元32、 指令接收單元33、通道轉換單元34、數(shù)據(jù)請求單元35、過濾單元36、解碼單 元37,其中,
RTP數(shù)據(jù)包接收單元31用于接收流媒體服務器1發(fā)送的組播或單播RTP 數(shù)據(jù)包;
編號&記錄單元32用于按照RTP數(shù)據(jù)包接收單元31收到組播RTP數(shù)據(jù)包 的順序,對時戳相同的RTP數(shù)據(jù)包統(tǒng)一進行編號,并記錄最新收到RTP數(shù)據(jù)包 的時戳和編號,這里,編號&記錄單元32分別對組播通道和單播通道收到的 RTP數(shù)據(jù)包進行編號;
指令接收單元33用于接收控制服務器2發(fā)送的組播轉單播指令;
通道轉換單元34用于根據(jù)指令接收單元33收到的組播轉單播指令,建立 單播通道,以及在單播通道建好后,退出組播通道;
數(shù)據(jù)請求單元35用于在通道轉換單元34轉換通道成功后,向流媒體服務 器1請求單播數(shù)據(jù);
過濾單元36用于根據(jù)編號&記錄單元32記錄的組播通道最后收到RTP數(shù) 據(jù)包的時戳和編號,以及最新收到RTP數(shù)據(jù)包的時戳和編號,對RTP數(shù)據(jù)包接 收單元31收到的單播RTP數(shù)據(jù)包進行過濾;解碼單元37用于對RTP數(shù)據(jù)包接收單元31收到的組播RTP數(shù)據(jù)包或過濾 單元36過濾后的單播RTP數(shù)據(jù)包進行解碼并輸出。
以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權利要求
1、一種網(wǎng)絡互動電視IPTV終端組播轉單播切換方法,其特征在于,該方法包括a、接收組播RTP數(shù)據(jù)包的IPTV終端收到組播轉單播指令后,建立單播通道;b、單播通道建好后,IPTV終端退出組播通道,并請求單播數(shù)據(jù);c、IPTV終端根據(jù)記錄的組播通道最后收到RTP數(shù)據(jù)包的時戳和編號,以及記錄的最新收到RTP數(shù)據(jù)包的時戳和編號,對收到的RTP數(shù)據(jù)包進行過濾。
2、 根據(jù)權利要求1所述的方法,其特征在于,IPTV終端收到一個RTP數(shù) 據(jù)包時,按照收到RTP數(shù)據(jù)包的順序,對時戳相同的RTP數(shù)據(jù)包統(tǒng)一進行編號, 并記錄最新收到RTP數(shù)據(jù)包的時戳和編號,所述組^潘通道收到RTP數(shù)據(jù)包的編號和單^I番通道收到RTP數(shù)據(jù)包的編號相 互獨立。
3、 根據(jù)權利要求1所述的方法,其特征在于,步驟b所述請求單播數(shù)據(jù)為 IPTV終端向流媒體服務器請求從所述組播通道最后收到的RTP數(shù)據(jù)包時戳所 對應播放時間點開始的單播數(shù)據(jù)。
4、 根據(jù)權利要求1所述的方法,其特征在于,步驟c所述對收到的RTP 數(shù)據(jù)包進行過濾為如果收到的RTP數(shù)據(jù)包時戳小于組播通道最后收到RTP 數(shù)據(jù)包的時戳;或者收到的RTP數(shù)據(jù)包時戳等于組播通道最后收到RTP數(shù)據(jù)包 的時戳,但是編號不大于組播通道最后收到RTP數(shù)據(jù)包編號,則丟棄所述收到 的RTP數(shù)據(jù)包;否則,將所述RTP數(shù)據(jù)包解碼輸出。
5、 根據(jù)權利要求1至4任一所述的方法,其特征在于,步驟c所述對收到 的單播RTP數(shù)據(jù)包進行過濾后包括將過濾后的RTP數(shù)據(jù)包解碼輸出。
6、 根據(jù)權利要求5所述的方法,其特征在于,組播轉單播之后, 一旦有 RTP數(shù)據(jù)包解碼輸出,之后收到的RTP數(shù)據(jù)包直接解碼輸出,不再進行過濾。
7、 一種IPTV終端組播轉單播切換系統(tǒng),其特征在于,該系統(tǒng)包括流媒體服務器、控制服務器和IPTV終端,IPTV終端具體'包栝RTI。數(shù)椐包接收單元、 編號&記錄單元、指令接收單元、通道轉換單元、數(shù)據(jù)請求單元、過濾單元, 其中,RTP數(shù)據(jù)包接收單元用于接收流媒體服務器發(fā)送的組播或單播RTP數(shù)據(jù)包;編號&記錄單元用于按照RTP數(shù)據(jù)包接收單元收到組播RTP數(shù)據(jù)包的順 序,對時戳相同的RTP數(shù)據(jù)包統(tǒng)一進行編號,并記錄最新收到RTP數(shù)據(jù)包的時 戳和編號;指令接收單元用于接收控制服務器發(fā)送的組播轉單播指令; 通道轉換單元用于根據(jù)指令接收單元收到的組播轉單播指令,建立單播通道,以及在單播通道建好后,退出組播通道;數(shù)據(jù)請求單元用于在通道轉換單元轉換通道成功后,向流媒體服務器請求單播數(shù)據(jù);過濾單元用于根據(jù)編號&記錄單元記錄的組播通道最后收到RTP數(shù)據(jù)包的 時戳和編號,以及最新收到RTP數(shù)據(jù)包的時戳和編號,對RTP數(shù)據(jù)包接收單元 收到的單播RTP數(shù)據(jù)包進行過濾。
8、 根據(jù)權利要求7所述的系統(tǒng),其特征在于,該系統(tǒng)進一步包括解碼單元, 所述解碼單元用于對RTP數(shù)據(jù)包接收單元收到的組播RTP數(shù)據(jù)包或過濾單元過 濾后的單播RTP數(shù)據(jù)包進行解碼并輸出。
9、 根據(jù)權利要求7或8所述的系統(tǒng),其特征在于,所述編號&記錄單元分 別對組播通道和單播通道收到的RTP數(shù)據(jù)包進行編號。
全文摘要
本發(fā)明公開一種網(wǎng)絡互動電視(IPTV)終端組播轉單播切換方法,該方法包括接收組播RTP數(shù)據(jù)包的IPTV終端收到組播轉單播指令后,建立單播通道;單播通道建好后,退出組播通道,并請求單播數(shù)據(jù);根據(jù)記錄的組播通道最后收到RTP數(shù)據(jù)包的時戳和編號,以及記錄的最新收到RTP數(shù)據(jù)包的時戳和編號,對收到的RTP數(shù)據(jù)包進行過濾。本發(fā)明還公開一種IPTV終端組播轉單播切換系統(tǒng),包括流媒體服務器、控制服務器和包含RTP數(shù)據(jù)包接收單元、編號&記錄單元、指令接收單元、通道轉換單元、數(shù)據(jù)請求單元、過濾單元的IPTV終端,本發(fā)明不需要時刻關注數(shù)據(jù)幀的完整性,能夠更好地進行組播轉單播的無縫切換、提高用戶體驗,且容易實現(xiàn)。
文檔編號H04L12/56GK101616060SQ20081012618
公開日2009年12月30日 申請日期2008年6月27日 優(yōu)先權日2008年6月27日
發(fā)明者忻 吳, 周茂林, 恒 李, 鄭可馨 申請人:中興通訊股份有限公司