国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種hls在線轉(zhuǎn)碼方法及系統(tǒng)的制作方法

      文檔序號(hào):10627208閱讀:1247來(lái)源:國(guó)知局
      一種hls在線轉(zhuǎn)碼方法及系統(tǒng)的制作方法
      【專利摘要】本發(fā)明公開(kāi)了一種HLS在線轉(zhuǎn)碼方法及系統(tǒng),所述方法包括:根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的M3U8文件;根據(jù)所述M3U8文件解碼所述高碼率HLS音視頻流得到相應(yīng)的TS流數(shù)據(jù);將所述TS流數(shù)據(jù)重新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的低碼率M3U8文件;根據(jù)用戶需求返回所述低碼率M3U8文件和相應(yīng)低碼率的TS流數(shù)據(jù)。本發(fā)明實(shí)施例的方案,能夠?qū)崿F(xiàn)將2.5M高碼率HLS直播轉(zhuǎn)換輸出3路低碼率(150kbps,300kbps,450kbps)的HLS直播,極大的提高了用戶體驗(yàn)度。
      【專利說(shuō)明】
      一種HLS在線轉(zhuǎn)碼方法及系統(tǒng)
      技術(shù)領(lǐng)域
      [0001] 本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別涉及一種HLS在線轉(zhuǎn)碼方法及系統(tǒng)。
      【背景技術(shù)】
      [0002] HLS (HTTP Live Streaming)是Apple (蘋果)公司的動(dòng)態(tài)碼率自適應(yīng)技術(shù)。主要 用于PC (個(gè)人電腦)和Apple終端的音視頻服務(wù)。包括一個(gè)M3U8的索引文件,TS媒體分 片文件和ke加密串文件。
      [0003] 常用的流媒體協(xié)議主要有HTTP漸進(jìn)下載和基于RTSP/RTP的實(shí)時(shí)流媒體協(xié)議,這 二種基本是完全不同的東西,目前比較方便又好用的是用HTTP漸進(jìn)下載方法。在這個(gè)中 Apple公司的HTTP Live Streaming是這個(gè)方面的代表。它最初是蘋果公司針對(duì)iPhone、 iPod、iTouch和iPad等移動(dòng)設(shè)備而開(kāi)發(fā)的流.現(xiàn)在見(jiàn)到在桌面也有很多應(yīng)用了,HTML5是 直接支持這個(gè)。
      [0004] 但是HLS協(xié)議的小切片方式會(huì)生成大量的文件,存儲(chǔ)或處理這些文件會(huì)造成大量 資源浪費(fèi)。如果要實(shí)現(xiàn)數(shù)天的時(shí)移,索引量將會(huì)是個(gè)巨額數(shù)字,并明顯影響請(qǐng)求速度。因此, HLS協(xié)議對(duì)存儲(chǔ)I/O要求相當(dāng)苛刻。對(duì)此,也有公司提出了非常好的解決方案。新型點(diǎn)播服 務(wù)器系統(tǒng),獨(dú)創(chuàng)了內(nèi)存緩存數(shù)據(jù)實(shí)時(shí)切片技術(shù),顛覆了這種傳統(tǒng)實(shí)現(xiàn)方法,從根本上解決了 大量切片的碎片問(wèn)題,使得單臺(tái)服務(wù)器的切片與打包能力不再是瓶頸。其基本原理如下:
      [0005] 不將TS切片文件存到磁盤,而是存在內(nèi)存當(dāng)中,這種技術(shù)使得服務(wù)器的磁盤上面 不再會(huì)有"數(shù)以噸計(jì)"的文件碎片,極大減少了磁盤的I/O次數(shù),延長(zhǎng)了服務(wù)器磁盤的使用 壽命,極大提高了服務(wù)器運(yùn)行的穩(wěn)定性。同時(shí),由于使用這種技術(shù),使得終端請(qǐng)求數(shù)據(jù)時(shí)直 接從服務(wù)器的內(nèi)存中獲取,極大提高了對(duì)終端數(shù)據(jù)請(qǐng)求的反應(yīng)速度,優(yōu)化了視頻觀看體驗(yàn)。
      [0006] 視頻碼率就是數(shù)據(jù)傳輸時(shí)單位時(shí)間傳送的數(shù)據(jù)位數(shù),一般我們用的單位是kbps 即千位每秒。通俗一點(diǎn)的理解就是取樣率,單位時(shí)間內(nèi)取樣率越大,精度就越高,處理出來(lái) 的文件就越接近原始文件,但是文件體積與取樣率是成正比的,所以幾乎所有的編碼格式 重視的都是如何用最低的碼率達(dá)到最少的失真,圍繞這個(gè)核心衍生出來(lái)的cbr (固定碼率) 與vbr (可變碼率),都是在這方面做的文章,不過(guò)事情總不是絕對(duì)的,舉例來(lái)看,對(duì)于一個(gè) 音頻,其碼率越高,被壓縮的比例越小,音質(zhì)損失越小,與音源的音質(zhì)越接近。
      [0007] 當(dāng)前的音視頻應(yīng)用必須面對(duì)各種不同的播放客戶端,從PC端(Web)開(kāi)始,到智能 手機(jī)。這些播放客戶端有不同的尺寸,因而需要不同的視頻分辨率。不同的客戶端也會(huì)有 不同的網(wǎng)絡(luò)環(huán)境,比如PC上通常都有WiFi或有線網(wǎng)絡(luò),有較高的帶寬保證,而手機(jī)、平板電 腦在室外時(shí),使用2G/3G網(wǎng)絡(luò),往往帶寬不足,或者不穩(wěn)定。因而需要針對(duì)不同的網(wǎng)絡(luò)環(huán)境 采用不同的碼率。
      [0008] 現(xiàn)有技術(shù)中,常規(guī)的HLS直播流都是512k,800k,1. 5M,2. 5M的高碼率直播流,對(duì)于 網(wǎng)絡(luò)情況比較差,想用比較低碼率的HLS直播流來(lái)說(shuō)無(wú)法滿足要求。因而,亟需要一種新的 可以滿足用戶對(duì)不同碼率需求的方案,以提高用戶體驗(yàn)度。

      【發(fā)明內(nèi)容】

      [0009] 本發(fā)明提供一種HLS在線轉(zhuǎn)碼方法及系統(tǒng),用以解決現(xiàn)有技術(shù)中無(wú)法支持用戶對(duì) 不同碼率需求的問(wèn)題。
      [0010] 本發(fā)明提供一種HLS在線轉(zhuǎn)碼方法,包括:
      [0011] 根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的M3U8文件;
      [0012] 根據(jù)所述M3U8文件解碼所述高碼率HLS音視頻流得到相應(yīng)的TS流數(shù)據(jù);
      [0013] 將所述TS流數(shù)據(jù)重新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的低碼率M3U8文 件;
      [0014] 根據(jù)用戶需求返回所述低碼率M3U8文件和相應(yīng)低碼率的TS流數(shù)據(jù)。
      [0015] 所述方法還包括:
      [0016] 將下載的高碼率HLS音視頻流根據(jù)相應(yīng)的M3U8文件獲取相應(yīng)的TS文件并拼接成 相應(yīng)的TS流;
      [0017] 根據(jù)所述TS流解碼得到相應(yīng)的TS流數(shù)據(jù)。
      [0018] 所述方法還包括:
      [0019] 將所述TS流數(shù)據(jù)根據(jù)X264編碼器重新封裝成為低碼率的TS流數(shù)據(jù)。
      [0020] 所述方法還包括:
      [0021 ] 將所述TS流數(shù)據(jù)重新編碼為低碼率的h264和aac數(shù)據(jù);
      [0022] 將所述h264和aac數(shù)據(jù)重新封裝為低碼率的TS流數(shù)據(jù)。
      [0023] 所述方法還包括:
      [0024] 根據(jù)php動(dòng)態(tài)生成所述低碼率M3U8文件。
      [0025] 所述方法還包括:
      [0026] 通過(guò)Nginx發(fā)布所述低碼率的TS流數(shù)據(jù)為HLS直播流。
      [0027] 一種HLS在線轉(zhuǎn)碼系統(tǒng),包括:
      [0028] 下載單元,用于根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的M3U8文件;
      [0029] 解碼單元,用于根據(jù)所述M3U8文件解碼所述高碼率HLS音視頻流得到相應(yīng)的TS 流數(shù)據(jù);
      [0030] 封裝單元,用于將所述TS流數(shù)據(jù)重新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的 低碼率M3U8文件;
      [0031] 發(fā)布單元,用于根據(jù)用戶需求返回所述低碼率M3U8文件和相應(yīng)低碼率的TS流數(shù) 據(jù)。
      [0032] 所述系統(tǒng)還包括:
      [0033] 拼接單元,用于將下載的高碼率HLS音視頻流根據(jù)相應(yīng)的M3U8文件獲取相應(yīng)的TS 文件并拼接成相應(yīng)的TS流;
      [0034] 所述解碼單元根據(jù)所述TS流解碼得到相應(yīng)的TS流數(shù)據(jù)。
      [0035] 所述系統(tǒng)還包括:
      [0036] 編碼單元,用于將所述TS流數(shù)據(jù)重新編碼為低碼率的h264和aac數(shù)據(jù);
      [0037] 所述封裝單元將所述h264和aac數(shù)據(jù)重新封裝為低碼率的TS流數(shù)據(jù)。
      [0038] 所述系統(tǒng)還包括:
      [0039] M3U8動(dòng)態(tài)生成單元,用于根據(jù)php動(dòng)態(tài)生成所述低碼率M3U8文件。
      [0040] 本發(fā)明實(shí)施例根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的M3U8文件;根 據(jù)所述M3U8文件解碼所述高碼率HLS音視頻流得到相應(yīng)的TS流數(shù)據(jù);將所述TS流數(shù)據(jù)重 新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的低碼率M3U8文件;根據(jù)用戶需求返回所述低 碼率M3U8文件和相應(yīng)低碼率的TS流數(shù)據(jù)。本發(fā)明實(shí)施例的方案,能夠?qū)崿F(xiàn)將2. 5M高碼率 HLS直播轉(zhuǎn)換輸出3路低碼率(150kbps,300kbps,450kbps)的HLS直播,極大的提高了用戶 體驗(yàn)度。
      [0041] 本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變 得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在所寫(xiě)的說(shuō)明 書(shū)、權(quán)利要求書(shū)、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
      [0042] 下面通過(guò)附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
      【附圖說(shuō)明】
      [0043] 附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí) 施例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
      [0044] 圖1為本發(fā)明實(shí)施例1提供的一種HLS在線轉(zhuǎn)碼方法原理流程圖;
      [0045] 圖2為本發(fā)明實(shí)施例3提供的一種HLS在線轉(zhuǎn)碼系統(tǒng)結(jié)構(gòu)示意圖。
      【具體實(shí)施方式】
      [0046] 以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說(shuō)明,應(yīng)當(dāng)理解,此處所描述的優(yōu)選實(shí) 施例僅用于說(shuō)明和解釋本發(fā)明,并不用于限定本發(fā)明。
      [0047] 如圖1所示,為本發(fā)明實(shí)施例1提供的一種HLS在線轉(zhuǎn)碼方法原理流程圖,其中,
      [0048] 步驟11,根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的M3U8文件。
      [0049] 本實(shí)施例中,首先需要獲取高碼率的HLS音視頻流。這里對(duì)于HLS流的獲取,可以 根據(jù)預(yù)先設(shè)定的下載策略進(jìn)行,也可以根據(jù)用戶指定的地址進(jìn)行。例如,可以預(yù)先配置好下 載策略,在策略生效后,根據(jù)該下載策略進(jìn)行具體的下載。
      [0050] 通常,HLS是Apple的動(dòng)態(tài)碼率自適應(yīng)技術(shù)。主要用于PC和Apple終端的音視頻 服務(wù)。包括一個(gè)M3U8的索引文件,TS媒體分片文件和ke加密串文件。M3U8也是一種M3U, 只是它的編碼格式是UTF-8格式。M3U用Latin-Ι字符集編碼。M3U是歌曲的目錄信息,下 載FLAC無(wú)損格式的音頻時(shí)候,會(huì)伴隨一個(gè)M3U目錄文件。
      [0051] HLS的分段策略,基本上推薦是10秒一個(gè)分片,當(dāng)然,具體時(shí)間還要根據(jù)分好后的 分片的實(shí)際時(shí)長(zhǎng)做標(biāo)注通常來(lái)說(shuō),為了緩存等方面的原因,在索引文件中會(huì)保留最新的三 個(gè)分片地址,以類似"滑動(dòng)窗口"的形式,進(jìn)行更新。M3U8,是HTTP Live Streaming直播的 索引文件。M3U8基本上可以認(rèn)為就是.m3u格式文件,區(qū)別在于,M3U8文件使用UTF-8字符 編碼。
      [0052] 例如,具體如下所示:
      [0053] 寬等。
      [0055] 因而,獲取相應(yīng)的M3U8文件,就獲得了 HLS音視頻流的索引,可以據(jù)此解碼HLS音 視頻流文件為TS文件。
      [0056] 步驟12,根據(jù)M3U8文件解碼高碼率HLS音視頻流得到相應(yīng)的TS流數(shù)據(jù)。
      [0057] 將下載的高碼率HLS音視頻流根據(jù)相應(yīng)的M3U8文件獲取相應(yīng)的TS文件并拼接成 相應(yīng)的TS流;根據(jù)TS流解碼得到相應(yīng)的TS流數(shù)據(jù)。
      [0058] 將TS流數(shù)據(jù)根據(jù)X264編碼器重新封裝成為低碼率的TS流數(shù)據(jù)。
      [0059] M3U8下載模塊根據(jù)配置文件會(huì)下載2. 5M碼率的M3U8直播流,把下載的M3U8直播 流交給TS拼接模塊拼成TS直播流用存入共享內(nèi)存中。TS解壓縮模塊會(huì)從共享內(nèi)存中取出 TS直播流數(shù)據(jù)進(jìn)行解壓縮,解出視頻數(shù)據(jù)和音頻數(shù)據(jù)。
      [0060] M3U8文件在IOS device和mac上可以用http的方式進(jìn)行分發(fā),其中playlist標(biāo) 準(zhǔn)為由m3u擴(kuò)展而來(lái)的M3U8文件,媒體文件為MPEG2-TS或者AAC文件(audio only)。
      [0061] M3U8文件有兩種應(yīng)用場(chǎng)景:
      [0062] 1、多碼率適配流。
      [0063] #EXTM3U
      [0064] #EXT-X-STREAM-INF:PROGRAM-ID = 1, BANDWIDTH = 1280000
      [0065] http://example, com/low. M3U8
      [0066] #EXT-X-STREAM-INF:PROGRAM-ID = 1, BANDWIDTH = 2560000
      [0067] http://example, com/mid. M3U8
      [0068] #EXT-X-STREAM-INF:PROGRAM-ID = 1, BANDWIDTH = 7680000
      [0069] http://example, com/hi. M3U8
      [0070] #EXT-X-STREAM-INF: PROGRAM-ID = 1, BANDWIDTH = 65000, CODECS = "mp4a. 40. 5"
      [0071] http://example, com/audio-only. M3U8
      [0072] 2、單碼率適配流。
      [0073] #EXTM3U
      [0074] #EXT-X-TARGETDURATI0N:5220
      [0075] #EXTINF :5220,
      [0076] http://media, example, com/entire, ts
      [0077] #EXT-X-ENDLIST
      [0078] 國(guó)際標(biāo)準(zhǔn)組織對(duì)此的定義為:
      [0079] rfc doc:http://tools, ietf. org/html/draft-pantos-http-1ive-streaming-〇 6
      [0080] M3U8文件是m3u文件的擴(kuò)展。在該rfc中定義了擴(kuò)展的關(guān)鍵字,其中:
      [0081] #EXT-X-TARGETDURATION
      [0082] 定義每個(gè)TS的最大的duration。
      [0083] #EXT-X-MEDIA-SEQUENCE
      [0084] 定義當(dāng)前M3U8文件中第一個(gè)文件的序列號(hào),每個(gè)ts文件在M3U8文件中都有固定 唯一的序列號(hào),該序列號(hào)用于在MBR時(shí)切換碼率進(jìn)行對(duì)齊。
      [0085] SEXT-X-KEY
      [0086] 定義加密方式和key文件的url,用于取得16bytes的key文件解碼ts文件。
      [0087] 屬性:
      [0088] METHOD
      [0089] URL
      [0090] #EXT-X-PR0GRAM-DATE-TIME
      [0091] 第一個(gè)文件的絕對(duì)時(shí)間
      [0092] #EXT-X-ALL0ff-CACHE
      [0093] 是否允許cache。
      [0094] #EXT-X-ENDLIST
      [0095] 表明M3U8文件的結(jié)束。live M3U8沒(méi)有該tag。
      [0096] #EXT-X-STREAM-INF
      [0097] 屬性:
      [0098] BANDWIDTH 指定碼率
      [0099] PROGRAM-ID 唯一 ID
      [0100] CODECS指定流的編碼類型
      [0101] #EXT-X-DISC0NTINUITY
      [0102] 當(dāng)遇到該tag的時(shí)候說(shuō)明以下屬性發(fā)生了變化:
      [0103] file format
      [0104] number and type of tracks
      [0105] encoding parameters
      [0106] encoding sequence
      [0107] timestamp sequence
      [0108] #EXT-X_VERSI0N該屬性用不用都可以,可以沒(méi)有。
      [0109] M3U8分頂級(jí)M3U8和二級(jí)M3U8,頂級(jí)M3U8主要是做多碼率適配的,二級(jí)M3U8才是 真正的切片文件,客戶端默認(rèn)會(huì)首先選擇碼率最高的請(qǐng)求,如果發(fā)現(xiàn)碼率達(dá)不到,會(huì)請(qǐng)求郊 低碼率的流。
      [0110] 一個(gè)實(shí)際使用中的頂級(jí)M3U8文件如下:
      [0111] #EXTM3U
      [0112] #EXT-X-STREAM-INF:PROGRAM-ID = 201273221265, BANDWIDTH = 358400
      [0113] 11.M3U8
      [0114] #EXT-X-STREAM-INF:PROGRAM-ID = 201273221265, BANDWIDTH = 972800
      [0115] 22.M3U8
      [0116] 上面頂級(jí)M3U8文件中又定義了 11.M3U8和22.M3U8兩個(gè)二級(jí)文件,客戶端會(huì)選擇 其中一個(gè)獲取其內(nèi)容。
      [0117] 二級(jí)M3U8文件內(nèi)容如下:
      [0118] #EXTM3U
      [0119] #EXT-X-VERSI0N:1
      [0120] #EXT-X-TARGETDURATION:10
      [0121] #EXT-X-MEDIA-SEQUENCE:0
      [0122] #EXTINF:3,
      [0123] 1-4. ts
      [0124] #EXTINF:8,
      [0125] 1-6. ts
      [0126] #EXTINF:8,
      [0127] 1-8. ts
      [0128] #EXTINF:8,
      [0129] 1-10. ts
      [0130] #EXTINF:8,
      [0131] 1-12. ts
      [0132] #EXTINF:8,
      [0133] 1-14. ts
      [0134] #EXTINF:8,
      [0135] 1-16. ts
      [0136] #EXTINF:9,
      [0137] 1-18. ts
      [0138] #EXTINF:6,
      [0139] 1-20. ts
      [0140] #EXTINF:8,
      [0141] 1-22. ts
      [0142] #EXTINF:9,
      [0143] 1-24. ts
      [0144] #EXTINF:3,
      [0145] 1-26. ts
      [0146] #EXT-X-ENDLIST
      [0147] 客戶端拿到上面的二級(jí)M3U8文件后,會(huì)繼續(xù)請(qǐng)求里面的文件,這時(shí)就可進(jìn)行播放 了。
      [0148] 上面是點(diǎn)播的情況,直播的情況,M3U8文件里面會(huì)有屬性告訴是直播,客戶端會(huì)定 時(shí)來(lái)請(qǐng)求新的M3U8文件。
      [0149] 步驟13,將TS流數(shù)據(jù)重新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的低碼率M3U8 文件。
      [0150] 如上所述,M3U8文件是一個(gè)索引文件,根據(jù)M3U8文件可以獲取該音視頻文件對(duì)應(yīng) 的TS碎片文件。TS是流的存儲(chǔ)格式,其中,每個(gè)音視頻文件都被分為若干個(gè)TS碎片文件。 每個(gè)TS碎片文件對(duì)應(yīng)著該音視頻文件的一小段內(nèi)容。
      [0151 ] 將TS流數(shù)據(jù)重新編碼為低碼率的h264和aac數(shù)據(jù);將h264和aac數(shù)據(jù)重新封裝 為低碼率的TS流數(shù)據(jù)。根據(jù)php動(dòng)態(tài)生成低碼率M3U8文件。
      [0152] TS :全稱為MPEG2-TS。TS即〃Transport Stream〃的縮寫(xiě)。它是分包發(fā)送的,每一 個(gè)包長(zhǎng)為188字節(jié)(還有192和204個(gè)字節(jié)的包)。包的結(jié)構(gòu)為,包頭為4個(gè)字節(jié)(第一個(gè) 字節(jié)為0x47),負(fù)載為184個(gè)字節(jié)。在TS流里可以填入很多類型的數(shù)據(jù),如視頻、音頻、自 定義信息等。MPEG2-TS主要應(yīng)用于實(shí)時(shí)傳送的節(jié)目,比如實(shí)時(shí)廣播的電視節(jié)目。MPEG2-TS 格式的特點(diǎn)就是要求從視頻流的任一片段開(kāi)始都是可以獨(dú)立解碼的。簡(jiǎn)單地說(shuō),將DVD上 的V0B文件的前面一截cut掉(或者是數(shù)據(jù)損壞數(shù)據(jù))就會(huì)導(dǎo)致整個(gè)文件無(wú)法解碼,而電 視節(jié)目是任何時(shí)候打開(kāi)電視機(jī)都能解碼(收看)的。
      [0153] 一段TS流,必須包含PAT包、PMT包、多個(gè)音頻包、多個(gè)視頻包、多個(gè)PCR包、以及 其他信息包。解析TS流數(shù)據(jù)的流程:查找PID為0x0的包,解析PAT,PAT包中的program_ map_PID表示PMT的PID ;查找PMT,PMT包中的elementary_PID表示音視頻包的PID,PMT 包中的PCR_PID表示PCR的PID,有的時(shí)候PCR的PID跟音頻或者視頻的PID相同,說(shuō)明PCR 會(huì)融進(jìn)音視頻的包,注意解析,有的時(shí)候PCR是自己?jiǎn)为?dú)的包;CAT、NIT、SDT、EIT的PID分 別為:0x01、0xl0、0xll、0xl2。
      [0154] Ts文件合并通常有如下方式,本實(shí)施例對(duì)此不做限定。
      [0155] 1、DOS命令合并分割。
      [0156] 第一步:首先,來(lái)整理我們的分割檔,我們以TS格式為例:把分割檔按照順序重命 名為:1. ts、2. ts、3. ts.......N. ts(N只是代表一個(gè)數(shù),沒(méi)有特殊意義,有幾個(gè)分割檔就依 此類推~),需要整合的分割檔,統(tǒng)一放到一個(gè)目錄下。
      [0157] 第二步:在此目錄下,新建一個(gè)文本文檔,就是后綴名為txt的文件。打開(kāi),輸入: copy/b 1. ts+2. ts+3. ts.....+N. ts xxx. ts〇
      [0158] copy和/b之間有一個(gè)空格,/b和1. ts之間有一個(gè)空格,N. ts和xxx. ts之間有 一個(gè)空格,剩下的都沒(méi)有空格,[+]是加號(hào),[xxx. ts]是合并后文件的文件名。所以,也可以 輸入成要儲(chǔ)存成的文件名。
      [0159] 第三步:輸入完畢后,儲(chǔ)存文本,文件名隨意,關(guān)閉。將后綴名txt,更改為bat,這 個(gè)就是Windows的批量處理文件了。雙擊運(yùn)行,會(huì)看見(jiàn)分割檔會(huì)在逐漸合并為完整檔。
      [0160] 優(yōu)點(diǎn):HD視頻合并的軟件很多,但真正無(wú)損的合并軟件很少,為了避免此類事件 發(fā)生,利用DOS來(lái)合并分割檔,只要資源是完整檔分割的,合并后絕對(duì)無(wú)損耗,一個(gè)字節(jié)都 不會(huì)損失。
      [0161] 2、打開(kāi) tsmuxergui,首先 add xxxx. diskl. ts,然后點(diǎn) append 依次加入 xxxx. disk2. ts直到全部append所有TS完成!
      [0162] 網(wǎng)絡(luò)中流傳的HDTV主要以兩類文件的方式存在,一類是經(jīng)過(guò)MPEG-2標(biāo)準(zhǔn)壓 縮,以.tp和.ts為后綴的視頻流文件,一類是經(jīng)過(guò)WMV-HD (Windows Media Video High Definition)標(biāo)準(zhǔn)壓縮過(guò)的.wmv文件,還有少數(shù)文件后綴為.avi或.mpg,其性質(zhì)與.wmv 是完全一樣的。HDTV文件都比較大,即使是經(jīng)過(guò)重新編碼過(guò)后的.wmv文件也非同小可。以 一部普通電影的時(shí)間長(zhǎng)度來(lái)計(jì)算,.wmv文件將會(huì)有4G以上,而同樣時(shí)間長(zhǎng)度的.tp和.ts 文件能達(dá)到8G以上,有的甚至達(dá)到20多G。因此,除了通過(guò)文件后綴名,還可以通過(guò)文件 大小來(lái)判斷是否為HDTV文件。如何在個(gè)人電腦上播放HDTV節(jié)目?對(duì)于.wmv文件,只要 系統(tǒng)安裝了 Windows Media Player 9或更高版本,就可以正常播放,一些播放軟件的最新 版本已經(jīng)開(kāi)始支持WMV-HD,如WINDVD6等,也可以直接使用這些軟件播放HDTV。有些HDTV 文件在壓縮過(guò)程中采用了其它標(biāo)準(zhǔn)的編碼格式,就需要安裝對(duì)應(yīng)的解碼器,遇到Windows Media Player 9不能正常播放時(shí),可以再安裝ffdshow,它帶有各種最常用的解碼器。播 放以.tp和.ts為后綴的視頻流文件要稍微麻煩一點(diǎn),因?yàn)槲募蟹謩e包含有AC3音頻 信息和MPEG-2視頻信息。好在現(xiàn)下有已經(jīng)不少專門播放.tp和.ts文件的軟件問(wèn)世了, Moonlight-Elecard MPEG Player就是其中一款比較常見(jiàn)的支持HDTV播放的軟件,目前 最新的版本為2. X。安裝完后,也可以運(yùn)行其它播放軟件來(lái)調(diào)用Moonlight-Elecard MPEG Player的解碼器進(jìn)行播放。
      [0163] 解析ts的過(guò)程就是通過(guò)找到PAT表,從PAT表中找出對(duì)應(yīng)存在的節(jié)目的id,按照 這些id找到這些節(jié)目的PMT表,從中獲到這些節(jié)目總的相對(duì)的媒體數(shù)據(jù)id,然后通過(guò)這些 id,再?gòu)膖s文件中找到這些文件的es數(shù)據(jù),來(lái)完成解碼或者別的什么操作。
      [0164] 本步驟中,把數(shù)據(jù)交給數(shù)據(jù)編碼模塊。該編碼模塊會(huì)調(diào)用X264編碼器編成3種低 碼率的h264和aac數(shù)據(jù),并將這些數(shù)據(jù)放到鏈表中。TS封裝模塊會(huì)從鏈表中取出編碼后的 h264和aac數(shù)據(jù)并封裝成低碼率TS,以10秒鐘截取一個(gè)TS碎片文件存放到系統(tǒng)磁盤中。 用php動(dòng)態(tài)生成M3U8文件。
      [0165] 步驟14,根據(jù)用戶需求返回所述低碼率M3U8文件和相應(yīng)低碼率的TS流數(shù)據(jù)。
      [0166] 通過(guò)Nginx發(fā)布所述低碼率的TS流數(shù)據(jù)為HLS直播流。用戶請(qǐng)求這三種直播流 (150kbps, 300kbps, 450kbps)時(shí),首先nginx會(huì)收到用戶請(qǐng)求,根據(jù)請(qǐng)求接口 php腳本會(huì)處 理用戶請(qǐng)求,根據(jù)用戶請(qǐng)求的不同參數(shù)給用戶返回不同M3U8文件。
      [0167] 本發(fā)明實(shí)施例2提供的一種HLS在線轉(zhuǎn)碼方法,其中,
      [0168] 步驟21,M3U8下載模塊根據(jù)配置文件會(huì)下載2. 5M碼率的M3U8直播流,把下載的 M3U8直播流交給TS拼接模塊拼成TS直播流用存入共享內(nèi)存中。
      [0169] 步驟22,TS解壓縮模塊會(huì)從共享內(nèi)存中取出TS直播流數(shù)據(jù)進(jìn)行解壓縮,解出視頻 數(shù)據(jù)和音頻數(shù)據(jù),把數(shù)據(jù)交給數(shù)據(jù)編碼模塊。該編碼模塊會(huì)調(diào)用X264編碼器編成3種低碼 率的h264和aac數(shù)據(jù),并將這些數(shù)據(jù)放到鏈表中。
      [0170] 步驟23, TS封裝模塊會(huì)從鏈表中取出編碼后的h264和aac數(shù)據(jù)并封裝成低碼率 TS,以10秒鐘截取一個(gè)TS碎片文件存放到系統(tǒng)磁盤中。
      [0171] 步驟24,用php動(dòng)態(tài)生成M3U8文件。
      [0172] 步驟25,用戶請(qǐng)求這三種直播流(150kbps, 300kbps, 450kbps)時(shí),首先nginx會(huì)收 到用戶請(qǐng)求,根據(jù)請(qǐng)求接口 php腳本會(huì)處理用戶請(qǐng)求,根據(jù)用戶請(qǐng)求的不同參數(shù)給用戶返 回不同M3U8文件。
      [0173] 如圖2所示,為本發(fā)明實(shí)施例3提供的一種HLS在線轉(zhuǎn)碼系統(tǒng)結(jié)構(gòu)示意圖,其中,
      [0174] 下載單元31,用于根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的M3U8文 件;
      [0175] 解碼單元32,用于根據(jù)M3U8文件解碼高碼率HLS音視頻流得到相應(yīng)的TS流數(shù)據(jù);
      [0176] 封裝單元33,用于將TS流數(shù)據(jù)重新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的低 碼率M3U8文件;
      [0177] 發(fā)布單元34,用于根據(jù)用戶需求返回低碼率M3U8文件和相應(yīng)低碼率的TS流數(shù)據(jù)。
      [0178] 特別的,上述系統(tǒng)還包括:
      [0179] 拼接單元35,用于將下載的高碼率HLS音視頻流根據(jù)相應(yīng)的M3U8文件獲取相應(yīng)的 TS文件并拼接成相應(yīng)的TS流;
      [0180] 解碼單元32根據(jù)TS流解碼得到相應(yīng)的TS流數(shù)據(jù)。
      [0181] 特別的,上述系統(tǒng)還包括:
      [0182] 編碼單元36,用于將TS流數(shù)據(jù)重新編碼為低碼率的h264和aac數(shù)據(jù);
      [0183] 封裝單元33將h264和aac數(shù)據(jù)重新封裝為低碼率的TS流數(shù)據(jù)。
      [0184] 特別的,上述系統(tǒng)還包括:
      [0185] M3U8動(dòng)態(tài)生成單元37,用于根據(jù)php動(dòng)態(tài)生成低碼率M3U8文件。
      [0186] 綜上所述,本發(fā)明實(shí)施例根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的 M3U8文件;根據(jù)所述M3U8文件解碼所述高碼率HLS音視頻流得到相應(yīng)的TS流數(shù)據(jù);將所 述TS流數(shù)據(jù)重新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的低碼率M3U8文件;根據(jù)用戶需 求返回所述低碼率M3U8文件和相應(yīng)低碼率的TS流數(shù)據(jù)。本發(fā)明實(shí)施例的方案,能夠?qū)崿F(xiàn) 將2. 5M高碼率HLS直播轉(zhuǎn)換輸出3路低碼率(150kbps,300kbps,450kbps)的HLS直播,極 大的提高了用戶體驗(yàn)度。
      [0187] 本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序 產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí) 施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī) 可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器和光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形 式。
      [0188] 本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程 圖和/或方框圖來(lái)描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一 流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算 機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理 器以產(chǎn)生一個(gè)機(jī)器,使得通過(guò)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生 用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能 的裝置。
      [0189] 這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特 定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指 令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或 多個(gè)方框中指定的功能。
      [0190] 這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì) 算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或 其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖 一個(gè)方框或多個(gè)方框中指定的功能的步驟。
      [0191] 顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
      【主權(quán)項(xiàng)】
      1. 一種HLS在線轉(zhuǎn)碼方法,其特征在于,包括: 根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的M3U8文件; 根據(jù)所述M3U8文件解碼所述高碼率HLS音視頻流得到相應(yīng)的TS流數(shù)據(jù); 將所述TS流數(shù)據(jù)重新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的低碼率M3U8文件; 根據(jù)用戶需求返回所述低碼率M3U8文件和相應(yīng)低碼率的TS流數(shù)據(jù)。2. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 將下載的高碼率HLS音視頻流根據(jù)相應(yīng)的M3U8文件獲取相應(yīng)的TS文件并拼接成相應(yīng) 的TS流; 根據(jù)所述TS流解碼得到相應(yīng)的TS流數(shù)據(jù)。3. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 將所述TS流數(shù)據(jù)根據(jù)X264編碼器重新封裝成為低碼率的TS流數(shù)據(jù)。4. 如權(quán)利要求1或3所述的方法,其特征在于,所述方法還包括: 將所述TS流數(shù)據(jù)重新編碼為低碼率的h264和aac數(shù)據(jù); 將所述h264和aac數(shù)據(jù)重新封裝為低碼率的TS流數(shù)據(jù)。5. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 根據(jù)php動(dòng)態(tài)生成所述低碼率M3U8文件。6. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 通過(guò)Nginx發(fā)布所述低碼率的TS流數(shù)據(jù)為HLS直播流。7. -種HLS在線轉(zhuǎn)碼系統(tǒng),其特征在于,包括: 下載單元,用于根據(jù)預(yù)先配置下載高碼率HLS音視頻流并獲取相應(yīng)的M3U8文件; 解碼單元,用于根據(jù)所述M3U8文件解碼所述高碼率HLS音視頻流得到相應(yīng)的TS流數(shù) 據(jù); 封裝單元,用于將所述TS流數(shù)據(jù)重新封裝成為低碼率的TS流數(shù)據(jù)并生成相應(yīng)的低碼 率M3U8文件; 發(fā)布單元,用于根據(jù)用戶需求返回所述低碼率M3U8文件和相應(yīng)低碼率的TS流數(shù)據(jù)。8. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 拼接單元,用于將下載的高碼率HLS音視頻流根據(jù)相應(yīng)的M3U8文件獲取相應(yīng)的TS文 件并拼接成相應(yīng)的TS流; 所述解碼單元根據(jù)所述TS流解碼得到相應(yīng)的TS流數(shù)據(jù)。9. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: 編碼單元,用于將所述TS流數(shù)據(jù)重新編碼為低碼率的h264和aac數(shù)據(jù); 所述封裝單元將所述h264和aac數(shù)據(jù)重新封裝為低碼率的TS流數(shù)據(jù)。10. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括: M3U8動(dòng)態(tài)生成單元,用于根據(jù)php動(dòng)態(tài)生成所述低碼率M3U8文件。
      【文檔編號(hào)】H04N21/845GK105992016SQ201510060659
      【公開(kāi)日】2016年10月5日
      【申請(qǐng)日】2015年2月5日
      【發(fā)明人】張新亮
      【申請(qǐng)人】天脈聚源(北京)科技有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1