一種http實時流媒體分片的拼接方法及拼接系統(tǒng)的制作方法
【專利摘要】一種HTTP實時流媒體分片的拼接方法及拼接系統(tǒng),拼接裝置對HLS子索引文件中引用的傳輸流(TS)分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件;修改裝置修改所述HLS子索引文件,在修改后的HLS子索引文件中記錄其引用的每一TS分片文件所在的媒體文件及在媒體文件中的位置信息。本發(fā)明通過對HLS分片進行拼接并相應(yīng)修改HLS子索引文件,可以使得支持HLS協(xié)議的系統(tǒng)能更好的實施,降低對文件系統(tǒng)的壓力,提高系統(tǒng)的存儲空間利用率,提高磁盤IO速度,提高CDN節(jié)點間內(nèi)容分發(fā)效率。
【專利說明】一種HTTP實時流媒體分片的拼接方法及拼接系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及0TT(0ver The Top)TV領(lǐng)域,更具體地,涉及一種HTTP實時流媒體(HLS:HTTP Live Streaming)分片的拼接方法及系統(tǒng)。
【背景技術(shù)】
[0002]OTT TV是指通過公共互聯(lián)網(wǎng)面向聯(lián)網(wǎng)設(shè)備(電視、PC、移動終端)傳輸IP視頻和互聯(lián)網(wǎng)應(yīng)用融合的一種服務(wù),是以交互式音視頻服務(wù)為主體,集互聯(lián)網(wǎng)、多媒體通訊等多種技術(shù)為一體的服務(wù)集合體,可在任何時間、向任意地點的任意終端用戶提供視頻、資訊、游戲等各種服務(wù)。
[0003]OTT TV與傳統(tǒng)IPTV(Internet Protocol Televis1n)不同的是,業(yè)務(wù)運營商不需要為OTT TV而特別建設(shè)一套專用網(wǎng)絡(luò),可以在無管理、無QoS(Quality of Service)保障的公共互聯(lián)網(wǎng)或移動網(wǎng)絡(luò)為用戶提供服務(wù)。
[0004]隨著Apple公司iPhone、iPad、iPod touch等終端的迅速普及,由其帶來的HTTP實時流媒體(HLS:HTTP Live Streaming)技術(shù)成為了 OTT TV的主流事實標準,目前是國際標準化組織IETF(Internet Engineering Task Force)的草案,得到了眾多廠商的支持。
[0005]因OTT TV是基于公共互聯(lián)網(wǎng)或者移動網(wǎng)絡(luò),用戶的帶寬是無法被控制的,在不同的時間不同的地點、或者同一地點不同時間,用戶的帶寬隨時變化;另外,OTT音視頻節(jié)目需要傳送至各種設(shè)備,機頂盒(STB:Set Top Box)、PC (Personal Computer)機、PAD/Tablet、Smartphone,這些不同的設(shè)備對OTT音視頻有不同的要求,需要傳送合適的分辨率、碼率。而HLS的自適應(yīng)碼率特性和HTTP (Hyper Text Transfer Protocol)帶來的廣泛適用性,能夠適應(yīng)用戶帶寬波動、不均勻的情況,使用戶可以得到與當前帶寬相適應(yīng)的碼率的節(jié)目流,從而保證用戶無中斷的觀看。
[0006]HLS技術(shù)的系統(tǒng)架構(gòu)如附圖1所示。
[0007]HLS離線編碼器101將視頻點播(V0D =Video on Demand)內(nèi)容源編碼為不同分辨率、碼率的碼流,并進行分片,將生成的傳輸流(TS transport Stream)分片文件和index索引文件遞交給媒體服務(wù)器102,HLS終端103通過互聯(lián)網(wǎng)或移動網(wǎng)絡(luò)進行訪問,從數(shù)字權(quán)限管理(DRM:Digital Right Management)服務(wù)器104獲取密鑰,從媒體服務(wù)器102獲取索弓I文件和分片文件進行解密后播放。
[0008]其中,HLS離線編碼器101推送到媒體服務(wù)器102上的文件組織結(jié)構(gòu)如圖2所示。
[0009]■圖中從左邊起第一列為HLS主索引文件201,標識一個內(nèi)容可用的不同檔次(Profile)(主要是分辨率、碼率不同),并記錄有其下不同檔次的HLS子索引文件信息;
[0010]■第二列為HLS子索引文件202、203、204,說明對應(yīng)每種檔次的TS分片文件所處的路徑以及播放順序、媒體文件解密方法以及獲取密鑰的URL等;
[0011]■第三列為TS分片文件205、206、207,HLS離線編碼器101將輸入的VOD內(nèi)容源切片為TS分片文件,分片文件內(nèi)的媒體內(nèi)容具有一定的播放時長,例如2?10秒;
[0012]■每種檔次的多個分片文件保存在各自的文件夾下(也可以在同一個文件夾中而文件名不同)。
[0013]然而,實踐中發(fā)現(xiàn),在要求必須支持HLS協(xié)議的大規(guī)模容量的系統(tǒng)中,存在文件數(shù)量過多文件系統(tǒng)壓力比較大、存儲效率不高、磁盤1降低、內(nèi)容分發(fā)網(wǎng)絡(luò)(⑶N =ContentDelivery Network)節(jié)點間內(nèi)容分發(fā)效率低下等現(xiàn)象。經(jīng)過分析,這是因為:
[0014](I)為了便于碼率在網(wǎng)絡(luò)帶寬波動時的及時快速切換,每個TS分片時長一般為2?10秒,假設(shè)固定為10秒,則對于通常I個小時長的VOD節(jié)目來說,每種檔次就需要360個TS分片,如果有3種檔次,則共有1080個TS分片。如果某個商用系統(tǒng)中有50萬個VOD內(nèi)容,則需要5.4億個分片文件,對文件系統(tǒng)支持的最大文件數(shù)量要求比較高,而且這些文件的元信息經(jīng)常要存放在內(nèi)存中以便加快文件訪問速度,需要消耗大量的內(nèi)存空間。
[0015](2)文件在存儲設(shè)備上的存儲形式一般是按塊進行,文件系統(tǒng)分配的存儲塊的大小可以配置,但全局統(tǒng)一,但為了高清標清視頻文件或大文件下載業(yè)務(wù),存儲塊通常設(shè)為64MB(Mega Bytes)。假設(shè)系統(tǒng)中HLS最高檔次的TS分片平均碼率為4Mbps,則該檔次的每個TS文件大小約為10s*4Mbps/8 = 5MB,系統(tǒng)為該文件分配一個存儲塊,但該存儲塊中有59MB都是被浪費了,其他檔次的TS分片文件則浪費的更多。所以存儲空間的有效利用率非常低下。
[0016](3)因為文件系統(tǒng)中TS分片文件小而且多,在訪問時磁頭就需要不斷的啟停、尋址,磁盤1速度相比大文件的1速度慢很多,系統(tǒng)性能嚴重下降。
【發(fā)明內(nèi)容】
[0017]有鑒于此,本發(fā)明提供了一種HTTP實時流媒體(HLS)分片的拼接方法,包括:
[0018]對HLS子索引文件中引用的傳輸流(TS)分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件;
[0019]修改所述HLS子索引文件,在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件及在媒體文件中的位置信息。
[0020]較佳地,
[0021]對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件,包括:
[0022]對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個媒體文件;或者
[0023]對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為多個媒體文件;或者
[0024]對同一 HLS主索引文件下多種檔次對應(yīng)的多個HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個或多個媒體文件。
[0025]較佳地,
[0026]修改所述HLS子索引文件,還包括:在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件的路徑。
[0027]較佳地,
[0028]對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,包括:
[0029]按照所述HLS子索引文件中記載的TS分片文件的播放順序或者另行設(shè)定的拼接順序,對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)依次進行拼接。
[0030]較佳地,
[0031]對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件后,還包括:在所述媒體文件中添加用于指示媒體文件格式的信息字段。
[0032]較佳地,
[0033]所述媒體文件的名稱中包括以下信息中的一種或多種:
[0034]媒體文件的類型;媒體文件包含的TS分片文件所屬的檔次;及媒體文件包含的TS分片文件所屬的檔次所對應(yīng)的碼率。
[0035]有鑒于此,本發(fā)明還提供了一種HTTP實時流媒體(HLS)分片的拼接系統(tǒng),包括:
[0036]拼接裝置,配置為對HLS子索引文件中引用的傳輸流(TS)分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件;
[0037]修改裝置,配置為修改所述HLS子索引文件,在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件及在媒體文件中的位置信息。
[0038]較佳地,
[0039]所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,包括:
[0040]對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個媒體文件;或者
[0041]對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為多個媒體文件;或者
[0042]對同一 HLS主索引文件下多種檔次對應(yīng)的多個HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個或多個媒體文件。
[0043]較佳地,
[0044]所述修改裝置修改所述HLS子索引文件,還包括:在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件的路徑。
[0045]較佳地,
[0046]所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,包括:
[0047]按照所述HLS子索引文件中記載的TS分片文件的播放順序或者另行設(shè)定的拼接順序,對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)依次進行拼接。
[0048]較佳地,
[0049]所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件后,還包括:在所述媒體文件中添加用于指示媒體文件格式的信息字段。
[0050]較佳地,
[0051]所述拼接裝置拼接得到的所述媒體文件的名稱中包括以下信息中的一種或多種:
[0052]媒體文件的類型;媒體文件包含的TS分片文件所屬的檔次;及媒體文件包含的TS分片文件所屬的檔次所對應(yīng)的碼率。
[0053]上述方案通過對HLS分片進行拼接并相應(yīng)修改HLS子索引文件,可以取得以下技術(shù)效果中的至少一種:使得支持HLS協(xié)議的系統(tǒng)能更好的實施,降低對文件系統(tǒng)的壓力,提高系統(tǒng)的存儲空間利用率,提高磁盤1速度,提高CDN節(jié)點間內(nèi)容分發(fā)效率。
【專利附圖】
【附圖說明】
[0054]圖1是傳統(tǒng)HLS技術(shù)的系統(tǒng)架構(gòu)示意圖;
[0055]圖2是傳統(tǒng)HLS文件組織結(jié)構(gòu)示意圖;
[0056]圖3是本發(fā)明實施例HLS分片拼接方法的流程圖;
[0057]圖4是本發(fā)明實施例HLS分片拼接系統(tǒng)的模塊圖。
【具體實施方式】
[0058]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0059]實施例一
[0060]本實施例HLS分片的拼接方法的流程如圖3所示,包括:
[0061]步驟110,對HLS子索引文件中引用的傳輸流(TS)分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件;
[0062]本步驟中,對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,可以采用但不局限于以下方式:
[0063]對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個媒體文件;或者
[0064]對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為多個媒體文件;或者
[0065]對同一 HLS主索引文件下多種檔次對應(yīng)的多個HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個或多個媒體文件。
[0066]拼接時需要得到的信息如每種檔次的HLS子索引文件及其引用的TS分片的路徑等,可以通過解析HLS主索引文件和相應(yīng)HLS子索引文件得到。
[0067]本步驟中,較佳地,按照所述HLS子索引文件中記載的TS分片文件的播放順序或者另行設(shè)定的拼接順序,對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)依次進行拼接。所謂另行設(shè)定的拼接順序即不按照播放順序進行拼接,如設(shè)定為按照先奇數(shù)分片后偶數(shù)分片的順序拼接,有6個分片時,按照1、3、5、2、4、6的順序拼接;又如,設(shè)定為從兩頭向中間的順序拼接,有6個分片時,按照1,6,2,5,3,4的順序拼接,等等。本發(fā)明對拼接順序不做任何局限。
[0068]可選地,所述拼接得到的一個或多個媒體文件的名稱中包括以下信息中的一種或多種:媒體文件的類型;媒體文件包含的TS分片文件所屬的檔次;及媒體文件包含的TS分片文件所屬的檔次所對應(yīng)的碼率。
[0069]可選地,在拼接得到的一個或多個媒體文件中添加用于指示媒體文件格式的信息字段。
[0070]步驟120,修改所述HLS子索引文件,在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件及在媒體文件中的位置信息。
[0071]本步驟中修改所述HLS子索引文件,還可包括:在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件的路徑。
[0072]可選的,修改所述HLS子索引文件時,還可以修改所述HLS子索引文件的名稱。此時,需要相應(yīng)修改所述HLS子索引文件所屬的HLS主索引文件,將所述HLS主索引文件中的HLS子索引文件的名稱更新為修改后的HLS子索引文件的名稱。
[0073]相應(yīng)地,本實施例的HLS分片的拼接系統(tǒng)如圖4所示,包括:
[0074]拼接裝置10,配置為對HLS子索引文件中引用的傳輸流(TS)分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件;
[0075]修改裝置20,配置為修改所述HLS子索引文件,在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件及在媒體文件中的位置信息。
[0076]較佳地,
[0077]所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,包括:
[0078]對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個媒體文件;或者
[0079]對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為多個媒體文件;或者
[0080]對同一 HLS主索引文件下多種檔次對應(yīng)的多個HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個或多個媒體文件。
[0081]較佳地,
[0082]所述修改裝置修改所述HLS子索引文件,還包括:在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件的路徑。
[0083]較佳地,
[0084]所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,包括:
[0085]按照所述HLS子索引文件中記載的TS分片文件的播放順序或者另行設(shè)定的拼接順序,對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)依次進行拼接。
[0086]較佳地,
[0087]所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件后,還包括:在所述媒體文件中添加用于指示媒體文件格式的信息字段。
[0088]較佳地,
[0089]所述拼接裝置拼接得到的所述媒體文件的名稱中包括以下信息中的一種或多種:媒體文件的類型;媒體文件包含的TS分片文件所屬的檔次;及媒體文件包含的TS分片文件所屬的檔次所對應(yīng)的碼率。
[0090]較佳地,
[0091]所述修改裝置修改所述HLS子索引文件,還包括:修改所述HLS子索引文件的名稱;
[0092]所述修改裝置還配置為修改所述HLS子索引文件所屬的HLS主索引文件,將所述HLS主索引文件中的HLS子索引文件的名稱更新為修改后的HLS子索引文件的名稱。
[0093]上述拼接系統(tǒng)可以設(shè)置在任何具有邏輯運算能力的一個或多個設(shè)備(如媒體服務(wù)器)中,或者說在任何具有邏輯運算能力的一個或多個設(shè)備上來實現(xiàn)上述拼接方法。拼接系統(tǒng)拼接時使用的索引文件和分片文件可以由HLS離線編碼器或其他設(shè)備推送,也可以自行下載得到。
[0094]本實施例的拼接方法和系統(tǒng)通過將HLS分片拼接為媒體文件,大大減少了文件的數(shù)量,降低了對文件系統(tǒng)的壓力,如需要支持的最大文件數(shù)量減少,且減少了存儲相應(yīng)文件信息所需的內(nèi)存空間。相應(yīng)地,訪問時磁頭的啟停、尋址操作也大大減少,可以磁盤1速度。此外,由于媒體文件比TS分片文件更大,在分配存儲塊時,存儲空間浪費減少。從而使得支持HLS協(xié)議的系統(tǒng)能更好的實施,如提高了 CDN節(jié)點間內(nèi)容分發(fā)效率。另外,上述拼接方法在拼接后,相應(yīng)修改了 HLS子索引文件,因而對HLS系統(tǒng)中的其他設(shè)備幾乎沒有影響。
[0095]下面用一個具體的應(yīng)用示例來說明上述拼接方法:
[0096]假定,本示例中HLS主索引文件包括以下內(nèi)容:
[0097]#EXTM3U
[0098]#EXT-X-STREAM-1NF:PROGRAM-1D = I, BANDWIDTH = 512000
[0099]01.m3u8
[0100]#EXT-X-STREAM-1NF:PROGRAM-1D = I, BANDWIDTH = 768000
[0101]02.m3u8
[0102]#EXT-X-STREAM-1NF:PROGRAM-1D = I, BANDWIDTH = 1024000
[0103]03.m3u8
[0104]解析上述內(nèi)容可以得知,該HLS內(nèi)容有三種檔次可用:第I種檔次碼率為512kbps,HLS子索引文件為01.m3u8 ;第2種檔次碼率為768kbps,HLS子索引文件為
02.m3u8 ;第3種檔次碼率為1024kbps,HLS子索引文件為03.m3u8。
[0105]其中,作為一個示例,HLS子索引文件01.m3u8包括以下內(nèi)容:
[0106]#EXTM3U
[0107]#EXT-X-TARGETDURAT1N:10
[0108]#EXT-X-MEDIA-SEQUENCE:1
[0109]#EXT-X-KEY:METHOD = AES-128, URI = 〃1.key"
[0110]#EXTINF:10,
[0111]Ol.ts
[0112]#EXT-X-KEY:METHOD = AES-128, URI = “2.key"
[0113]#EXTINF:10,
[0114]02.ts
[0115]#EXTINF:10,
[0116]03.ts
[0117].........
[0118]#EXT-X-ENDLIST
[0119]解析上述內(nèi)容可以得知,該HLS子索引文件01.m3u8引用多個TS分片文件:第I個TS分片文件為01.ts、第2個TS分片文件為02.ts、第3個TS分片文件為03.ts,等等。其他內(nèi)容涉及播放順序、最大的媒體段時間長、媒體文件解密方法和獲取密鑰的URL等,這里不再詳述。
[0120]然后。對HLS子索引文件01.m3u8中引用的TS分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件;
[0121]作為示例,將該HLS子索引文件01.m3u8中引用的所有TS分片文件的數(shù)據(jù)按照播放順序依次拼接在一起,得到一個大的媒體文件zott_01_512.ts,同時記錄下每個TS分片文件在拼接后的媒體文件中的位置。例如第I個TS分片在拼接后的媒體文件中的起止位置為從第O個字節(jié)到第18799個字節(jié),第2個TS分片在拼接后的媒體文件中的起止位置為從第18800個字節(jié)到第39479個字節(jié),第3個TS分片在拼接后的媒體文件中的起止位置為從第39480個字節(jié)到第60000個字節(jié),以此類推。當然,在拼接時TS分片文件也不一定按播放順序進行拼接,可以按照另行設(shè)定的拼接順序拼接。在拼接后的媒體文件中可以增加一些自定義的信息字段來定義特定的媒體文件格式等。
[0122]雖然上述示例中,對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個媒體文件。但也可以視TS分片文件的數(shù)量和文件大小采用不同的拼接方式,如:對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為多個媒體文件;或者,對同一 HLS主索引文件下多種檔次對應(yīng)的多個HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個或多個媒體文件。等等。
[0123]上述示例中,拼接后的媒體文件命名規(guī)則如下:
[0124]zott_$ {id} _$ {bitrate}.ts
[0125]其中:
[0126]前綴zott字段是一個固定值,代表媒體文件的類別;
[0127]${id}字段是檔次編號,每種檔次對應(yīng)一個編號,例如01、02、03、…;
[0128]$ {bitrate}字段是檔次對應(yīng)的碼率(單位:kbps);
[0129]各字段間以下劃線間隔;
[0130].ts表示文件擴展名。
[0131]對于媒體文件的名稱,具體實施時可以自行定義其命名規(guī)則。
[0132]然后,修改HLS子索引文件01.m3u8,在修改后的HLS子索引文件01.m3u8中記錄其引用的每一 TS分片文件所在的媒體文件及在媒體文件中的位置信息。
[0133]在示例中,修改后的子索引文件01.m3u8內(nèi)容為:
[0134]#EXTM3U
[0135]#EXT-X-TARGETDURAT1N:10
[0136]#EXT-X-MEDIA-SEQUENCE:1
[0137]#EXT-X-KEY:METHOD = AES-128, URI = 〃1.key"
[0138]#EXTINF:10,
[0139]zott—01—512.ts ? zbytes = 0-18799
[0140]#EXT-X-KEY: METHOD = AES-128, URI = “2.key"
[0141]#EXTINF:10,
[0142]zott_01_512.ts ? zbytes = 18800-39479
[0143]#EXTINF:10,
[0144]zott_01_512.ts ? zbytes = 39480-60000
[0145].........
[0146]#EXT-X-ENDLIST
[0147]上述內(nèi)容中的zott_01_512.ts是TS分片文件所在的媒體文件,zbytes字段表示TS分片文件在媒體文件中的起止字節(jié),用于表示TS分片文件在媒體文件中的位置信息。當然也可以采用其他字段進行表示,例如from = xxx&to = yyy、或start = xxx&end = yyy等等相似表不方法。
[0148]TS分片文件所在的媒體文件的路徑可以是相對路徑也可以是絕對路徑,如果拼接后的媒體文件存放在其他目錄或其他主機上、甚至云存儲的某個網(wǎng)絡(luò)位置,則還需要記錄該媒體文件的路徑,例如;
[0149]http://www.sample, com/ott/zott_01_512.ts ? zbytes = 0—18799。
[0150]按照類似的方式,對另外二種檔次的HLS子索引文件02.m3u8和HLS子索引文件
03.m3u8所引用的TS分片文件進行拼接并完成對HLS子索引文件02.m3u8和HLS子索引文件03.m3u8的修改后,就完成了對整個HLS內(nèi)容的拼接。拼接后,目錄中的HLS文件列表示如下:
[0151]index.m3u8
[0152]01.m3u8
[0153]02.m3u8
[0154]03.m3u8
[0155]zott_0_512.ts
[0156]zott_l_768.ts
[0157]zott_2_1024.ts
[0158]上述文件列表中,包括一個主索引文件index.m3u8、三種檔次的HLS子索引文件01.m3u8、02.m3u8 和 03.m3u8,及拼接后的 3 個媒體文件:zott_0_512.ts、zott丄768.ts、zott_2_1024.ts。
[0159]另外,HLS主索引文件和HLS子索引文件的名稱可以保持不變,也可以進行修改。若修改了 HLS子索引文件名稱,需同時修改所屬的HLS主索引文件中該HLS子索引文件的名稱。
[0160]本領(lǐng)域普通技術(shù)人員可以理解上述方法中的全部或部分步驟可通過程序來指令相關(guān)硬件完成,所述程序可以存儲于計算機可讀存儲介質(zhì)中,如只讀存儲器、磁盤或光盤等。可選地,上述實施例的全部或部分步驟也可以使用一個或多個集成電路來實現(xiàn),相應(yīng)地,上述實施例中的各模塊/單元可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。本發(fā)明不限制于任何特定形式的硬件和軟件的結(jié)合。
[0161]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種HTTP實時流媒體(HLS)分片的拼接方法,包括: 對HLS子索引文件中引用的傳輸流(TS)分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件; 修改所述HLS子索引文件,在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件及在媒體文件中的位置信息。
2.如權(quán)利要求1所述的拼接方法,其特征在于: 對所述HLS子索引文件中弓丨用的TS分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件,包括: 對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個媒體文件;或者 對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為多個媒體文件;或者 對同一 HLS主索引文件下多種檔次對應(yīng)的多個HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個或多個媒體文件。
3.如權(quán)利要求1所述的拼接方法,其特征在于: 修改所述HLS子索引文件,還包括:在修改后的HLS子索引文件中記錄其引用的每一TS分片文件所在的媒體文件的路徑。
4.如權(quán)利要求1或2或3所述的拼接方法,其特征在于: 對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,包括: 按照所述HLS子索引文件中記載的TS分片文件的播放順序或者另行設(shè)定的拼接順序,對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)依次進行拼接。
5.如權(quán)利要求1所述的拼接方法,其特征在于: 對所述HLS子索引文件中弓丨用的TS分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件后,還包括:在所述媒體文件中添加用于指示媒體文件格式的信息字段。
6.如權(quán)利要求1或2或3或5所述的拼接方法,其特征在于: 所述媒體文件的名稱中包括以下信息中的一種或多種: 媒體文件的類型;媒體文件包含的TS分片文件所屬的檔次;及媒體文件包含的TS分片文件所屬的檔次所對應(yīng)的碼率。
7.—種HTTP實時流媒體(HLS)分片的拼接系統(tǒng),包括: 拼接裝置,配置為對HLS子索引文件中引用的傳輸流(TS)分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件; 修改裝置,配置為修改所述HLS子索引文件,在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件及在媒體文件中的位置信息。
8.如權(quán)利要求7所述的拼接系統(tǒng),其特征在于: 所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,包括:對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個媒體文件;或者 對同一 HLS主索引文件下每種檔次對應(yīng)的HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為多個媒體文件;或者 對同一 HLS主索引文件下多種檔次對應(yīng)的多個HLS子索引文件,將其引用的所有TS分片文件的數(shù)據(jù)拼接為一個或多個媒體文件。
9.如權(quán)利要求7所述的拼接系統(tǒng),其特征在于: 所述修改裝置修改所述HLS子索引文件,還包括:在修改后的HLS子索引文件中記錄其引用的每一 TS分片文件所在的媒體文件的路徑。
10.如權(quán)利要求7或8或9所述的拼接系統(tǒng),其特征在于: 所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,包括: 按照所述HLS子索引文件中記載的TS分片文件的播放順序或者另行設(shè)定的拼接順序,對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)依次進行拼接。
11.如權(quán)利要求7所述的拼接系統(tǒng),其特征在于: 所述拼接裝置對所述HLS子索引文件中引用的TS分片文件的數(shù)據(jù)進行拼接,得到一個或多個媒體文件后,還包括:在所述媒體文件中添加用于指示媒體文件格式的信息字段。
12.如權(quán)利要求7或8或9或11所述的拼接系統(tǒng),其特征在于: 所述拼接裝置拼接得到的所述媒體文件的名稱中包括以下信息中的一種或多種: 媒體文件的類型;媒體文件包含的TS分片文件所屬的檔次;及媒體文件包含的TS分片文件所屬的檔次所對應(yīng)的碼率。
【文檔編號】H04N21/845GK104333818SQ201410555369
【公開日】2015年2月4日 申請日期:2014年10月17日 優(yōu)先權(quán)日:2014年10月17日
【發(fā)明者】王金東, 陳光亮, 趙培 申請人:中興通訊股份有限公司