一種rtp組播直播與hls單播時移相結合的實現(xiàn)方法
【技術領域】
[0001 ]本發(fā)明涉及互聯(lián)網(wǎng)多媒體領域,具體來講涉及一種RTP組播直播與HLS單播時移相結合的實現(xiàn)方法。
【背景技術】
[0002]隨著多媒體技術的發(fā)展,0TT(0ver The Top)業(yè)務應用已經(jīng)變得非常廣泛,與IPTV(交互式網(wǎng)絡電視)業(yè)務相比,基于HLS(Http Live Streaming)實現(xiàn)的OTT業(yè)務已經(jīng)越來越常見。
[0003]HLS協(xié)議由蘋果公司開發(fā),是在HTTP協(xié)議上面將媒體內(nèi)容切片成若干小分片,并組織相應的M3U8(分片索引文件)文件。直播業(yè)務通S#EXT-X-MEDIA-SEQUENCE標簽來實現(xiàn),直播源給出的分片序列號是不斷累加更新的,每個更新的分片都會分配遞增的序列號,終端播放時也是根據(jù)#EXT-X-MEDIA-SEQUENCE標簽來決定下一個要播放的分片。當服務器端一次給出的分片快要播放完時,終端繼續(xù)請求新的分片列表以獲取新的分片,達到直播的順序流暢播放。
[0004]因此,基于HLS的直播,終端請求時一般都從倒數(shù)第2-3個分片來,而每個分片基本都有10秒左右的內(nèi)容,造成HLS的直播與頭端直播點的內(nèi)容相差很久,在一些實時內(nèi)容直播時,直播出現(xiàn)時延。
[0005]而一般的組播業(yè)務,基本都只有直播業(yè)務,但是并不能提供時移服務,導致用戶無法在實時直播和時移功能之間自由轉換,降低了用戶體驗度。
【發(fā)明內(nèi)容】
[0006]針對現(xiàn)有技術中存在的缺陷,本發(fā)明的目的在于提供一種RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,避免出現(xiàn)時延,既保證直播實時又能進行時移,實現(xiàn)直播和時移功能之間自由轉換。
[0007]為達到以上目的,本發(fā)明提供一種RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,包括步驟:
[0008]S1.啟用RTP組播直播的頭端系統(tǒng),將RTP組播的RTP報頭進行擴展,添加媒體分片時間與媒體分片序列號信息,將RTP報頭和RTP負載內(nèi)容以RTP數(shù)據(jù)包的形式發(fā)送給服務器;
[0009]S2.服務器加入RTP組播地址并接收所述RTP組播,根據(jù)RTP數(shù)據(jù)包中RTP報頭的擴展信息,將RTP負載內(nèi)容錄制成HLS協(xié)議媒體格式,并根據(jù)預先設定的時移時長,存儲該時長內(nèi)的所有RTP負載內(nèi)容;
[0010]S3.終端加入RTP組播地址,并接收RTP組播,進行直播內(nèi)容播放;
[0011 ] S4.終端從直播切換到時移時,終端退出組播,并向服務器請求時移內(nèi)容;
[0012 ] S5.服務器收到請求后,給出對應的時移內(nèi)容,提供時移服務;
[0013]S6.終端從時移切回直播時,按照步驟S3,重新加入組播進行直播內(nèi)容播放。
[0014]在上述技術方案的基礎上,步驟SI中,所述媒體分片序列號信息,表示當前RTP負荷中的視頻數(shù)據(jù)所在的HLS媒體分片序列號。
[0015]在上述技術方案的基礎上,步驟SI中,所述媒體分片時間,表示當前RTP負荷所在的HLS媒體分片的絕對播放時間。
[0016]在上述技術方案的基礎上,步驟2中,將RTP負載內(nèi)容錄制成HLS協(xié)議媒體格式,具體為,將RTP負載內(nèi)容錄制成切片HLS格式的媒體分片,相同的媒體分片時間和媒體分片序列號信息的RTP數(shù)據(jù)包錄制在同一分片。
[0017]在上述技術方案的基礎上,步驟S4中,終端從直播切換到時移時,根據(jù)RTP組播的RTP報頭中的媒體分片時間與媒體分片序列號信息,找到時移的時間,向服務器對應時間點的時移請求,請求時移內(nèi)容。
[0018]在上述技術方案的基礎上,步驟S5中,服務器收到請求后,根據(jù)媒體分片時間準確給出時移時間點的時移內(nèi)容。
[0019]在上述技術方案的基礎上,步驟S6中,終端從時移切回直播時,先要立即停止時移內(nèi)容的請求,清空時移內(nèi)容,再按照步驟S3,重新加入組播進行直播內(nèi)容播放。
[0020]本發(fā)明的有益效果在于:通過在RTP組播直播的頭端系統(tǒng)中,對RTP報頭進行擴展,根據(jù)RTP數(shù)據(jù)包中RTP報頭的擴展信息,由服務器根據(jù)RTP報文頭的擴展信息,將RTP負載內(nèi)容錄制成HLS媒體內(nèi)容格式并存貯。在組播直播的業(yè)務上同時實現(xiàn)HLS的時移功能;系統(tǒng)采用組播直播,播放的為直播點的內(nèi)容,解決了 HLS直播延遲的缺點并同時能提供時移服務。
【附圖說明】
[0021 ]圖1為本發(fā)明實施例RTP組播直播與HLS單播時移相結合的實現(xiàn)方法流程圖;
[0022]圖2為本發(fā)明實施例在RTP報頭擴展兩個字段的示意圖;
[0023]圖3為本發(fā)明實施例RTP數(shù)據(jù)包與錄制HLS格式的媒體分片對應關系示意圖。
【具體實施方式】
[0024]以下結合附圖及實施例對本發(fā)明作進一步詳細說明。
[0025]如圖1所示,本發(fā)明RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,具體包括如下步驟:
[0026]S1.啟用RTP組播直播的頭端系統(tǒng),準備好RTP組播,將RTP組播的RTP報頭進行擴展,本實施例中添加媒體分片時間與媒體分片序列號信息兩個字段,然后將RTP報頭和RTP負載內(nèi)容以RTP數(shù)據(jù)包的形式發(fā)送給服務器。
[0027]如圖2所示,添加的兩個字段具體為:
[0028]his media sequence(媒體分片序列號信息),采用32-bit無符號整數(shù)定義保存,表示當前RTP負荷中的視頻數(shù)據(jù)所在的HLS媒體分片序列號,對應HLS規(guī)范中的標簽#EXT-X-MEDIA-SEQUENCE 表示的值。
[0029]his program date time(媒體分片時間),采用64_bit無符號整數(shù)定義保存,表示當前RTP負荷所在的HLS媒體分片的絕對播放時間。從公元1970年I月I日的UTC時間,由O時O分O秒算起到現(xiàn)在所經(jīng)過的毫秒秒數(shù),對應HLS規(guī)范中的#EXT-X-PROGRAM-DATE-??ME表示的值。
[0030]S2.服務器加入RTP組播地址并接收所述RTP組播,根據(jù)RTP數(shù)據(jù)包中RTP報頭的擴展信息,將RTP數(shù)據(jù)包中的負載內(nèi)容錄制成HLS協(xié)議媒體格式,并根據(jù)預先設定的時移時長,存儲該時長內(nèi)的所有RTP負載內(nèi)容。
[0031]如圖3所示,為RTP組播與HLS格式的媒體分片對應關系圖。圖3中的PDTl、PDT2、Η)Τ3均表示分片絕對播放日期和時間,即RTP報頭的擴展信息中的his program date time字段;TS1、TS2、TS3均為錄制的HLS媒體分片內(nèi)容;相同his media sequence與his programdate time的RTP數(shù)據(jù)包將錄制在同一媒體分片。三個不同序列號的RTP數(shù)據(jù)包RTPl、RTP2和1?丁?3的1118 program datetime時間相同都是I3DTl,所以三個RTP數(shù)據(jù)包生成同一個媒體分片文件TS1。同理TS2、TS3由其他相同his program datetime的RTP數(shù)據(jù)包生成。
[0032 ] S3.終端加入RTP組播地址,并接收來RTP組播,進行直播內(nèi)容播放。
[0033]S4.終端從直播切換到時移時,終端退出組播,根據(jù)RTP組播的RTP報頭中的媒體分片時間與媒體分片序列號信息,找到時移的時間,并向服務器請求時移內(nèi)容,具體的是服務器對應時間點的時移請求,請求時移內(nèi)容。
[0034]S5.服務器收到請求后,給出對應的時移內(nèi)容,具體的,根據(jù)媒體分片時間準確給出時移時間點的時移內(nèi)容,提供時移服務。并且,服務器需要保存足夠的時移內(nèi)容(大于時移時長時間所存儲的媒體內(nèi)容)供終端完成時移,服務器需要保存媒體分片時間的信息,以備時移請求時,正確根據(jù)請求的時移點時間與媒體分片內(nèi)容時間給出時移點內(nèi)容。
[0035]S6.終端從時移切回直播時,先要立即停止時移內(nèi)容的請求,清空時移內(nèi)容,退出組播,并計算時移時間轉到服務器請求HLS時移內(nèi)容,時移時間可以通過RTP報頭的擴展信息中的媒體分片時間來計算。然后按照步驟S3,重新加入RTP組播進行直播內(nèi)容播放。在時移狀態(tài)下切換時需要重新計算時移時間,并且當終端暫停/跳轉< 3秒時,建議繼續(xù)播放RTP組播。
[0036]本發(fā)明不局限于上述實施方式,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。本說明書中未作詳細描述的內(nèi)容屬于本領域專業(yè)技術人員公知的現(xiàn)有技術。
【主權項】
1.一種RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,其特征在于,包括步驟: 51.啟用RTP組播直播的頭端系統(tǒng),將RTP組播的RTP報頭進行擴展,添加媒體分片時間與媒體分片序列號信息,將RTP報頭和RTP負載內(nèi)容以RTP數(shù)據(jù)包的形式發(fā)送給服務器; 52.服務器加入RTP組播地址并接收所述RTP組播,根據(jù)RTP數(shù)據(jù)包中RTP報頭的擴展信息,將RTP負載內(nèi)容錄制成HLS協(xié)議媒體格式,并根據(jù)預先設定的時移時長,存儲該時長內(nèi)的所有RTP負載內(nèi)容; 53.終端加入RTP組播地址,并接收RTP組播,進行直播內(nèi)容播放; 54.終端從直播切換到時移時,終端退出組播,并向服務器請求時移內(nèi)容; 55.服務器收到請求后,給出對應的時移內(nèi)容,提供時移服務; 56.終端從時移切回直播時,按照步驟S3,重新加入組播進行直播內(nèi)容播放。2.如權利要求1所述的RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,其特征在于:步驟SI中,所述媒體分片序列號信息,表示當前RTP負荷中的視頻數(shù)據(jù)所在的HLS媒體分片序列號。3.如權利要求1所述的RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,其特征在于:步驟SI中,所述媒體分片時間,表示當前RTP負荷所在的HLS媒體分片的絕對播放時間。4.如權利要求1所述的RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,其特征在于:步驟2中,將RTP負載內(nèi)容錄制成HLS協(xié)議媒體格式,具體為,將RTP負載內(nèi)容錄制成切片HLS格式的媒體分片,相同的媒體分片時間和媒體分片序列號信息的RTP數(shù)據(jù)包錄制在同一分片。5.如權利要求1所述的RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,其特征在于:步驟S4中,終端從直播切換到時移時,根據(jù)RTP組播的RTP報頭中的媒體分片時間與媒體分片序列號信息,找到時移的時間,向服務器對應時間點的時移請求,請求時移內(nèi)容。6.如權利要求5所述的RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,其特征在于:步驟S5中,服務器收到請求后,根據(jù)媒體分片時間準確給出時移時間點的時移內(nèi)容。7.如權利要求1所述的RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,其特征在于:步驟S6中,終端從時移切回直播時,先要立即停止時移內(nèi)容的請求,清空時移內(nèi)容,再按照步驟S3,重新加入組播進行直播內(nèi)容播放。
【專利摘要】一種RTP組播直播與HLS單播時移相結合的實現(xiàn)方法,涉及互聯(lián)網(wǎng)多媒體領域,包括:頭端系統(tǒng)將RTP報頭擴展,添加媒體分片時間與媒體分片序列號信息,將RTP報頭和RTP負載內(nèi)容以RTP數(shù)據(jù)包發(fā)送給服務器;服務器加入RTP組播地址并接收RTP組播,根據(jù)RTP報頭的擴展信息,將RTP負載內(nèi)容錄制成HLS協(xié)議媒體格式,存儲時移時長內(nèi)所有RTP負載內(nèi)容;終端加入RTP組播地址,進行直播內(nèi)容播放;終端從直播切換到時移,向服務器請求時移內(nèi)容;服務器收到請求后,給出對應的時移內(nèi)容,提供時移服務;終端從時移切回直播,重新加入組播進行直播內(nèi)容播放。本發(fā)明既保證直播實時又能進行時移,實現(xiàn)直播和時移功能之間自由轉換。
【IPC分類】H04N21/6408, H04N21/845, H04N21/6405, H04N21/6437
【公開號】CN105578308
【申請?zhí)枴緾N201511008997
【發(fā)明人】呂曉洪
【申請人】武漢市烽視威科技有限公司
【公開日】2016年5月11日
【申請日】2015年12月29日