2016-12-05 419 views
1

我正在研究要播放HLS視頻(VOD和live)以及MP4的Roku和TVOS應用程序。根據Roku docs EIA-608在兩者都支持,並且也應該在TVOS上工作。如何顯示來自m3u8 URL的HLS視頻流的隱藏字幕格式

我的問題是,如果給出指向m3u8的URL,我怎麼能告訴每個流中正在使用隱藏字幕的特定格式(EIA-608,WebVTT等)?

主要m3u8的內容(注1流說不準CC,但它確實有它)的

#EXTM3U 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=380000,RESOLUTION=400x228,CODECS="avc1.66.30, mp4a.40.2",CLOSED-CAPTIONS=NONE 
http://d.com/i/video/2426832/2426832_,350,640,1000,2000,.mp4.csmil/index_0_av.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=750000,RESOLUTION=640x360,CODECS="avc1.77.30, mp4a.40.2",CLOSED-CAPTIONS=NONE 
http://d.com/i/video/2426832/2426832_,350,640,1000,2000,.mp4.csmil/index_1_av.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1044000,RESOLUTION=1280x720,CODECS="avc1.64001f, mp4a.40.2",CLOSED-CAPTIONS=NONE 
http://d.com/i/video/2426832/2426832_,350,640,1000,2000,.mp4.csmil/index_2_av.m3u8 
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2127000,RESOLUTION=1280x720,CODECS="avc1.64001f, mp4a.40.2",CLOSED-CAPTIONS=NONE 
http://d.com/i/video/2426832/2426832_,350,640,1000,2000,.mp4.csmil/index_3_av.m3u8 

內容一號流的m3u8

#EXTM3U 
#EXT-X-TARGETDURATION:4 
#EXT-X-ALLOW-CACHE:YES 
#EXT-X-PLAYLIST-TYPE:VOD 
#EXT-X-VERSION:3 
#EXT-X-MEDIA-SEQUENCE:1 
#EXTINF:4.000, 
http://d.com/i/video/2426832/2426832_,350,640,1000,2000,.mp4.csmil/segment1_0_av.ts 
... 

我可以使用ffprobe -hide_banner來顯示第1個節目的信息流具有隱藏式字幕。例如:

Duration: 00:02:36.76, start: 0.100511, bitrate: 0 kb/s 
    Program 0 
    Metadata: 
     variant_bitrate : 380000 
    Stream #0:0: Video: h264 (Constrained Baseline) ([27][0][0][0]/0x001B), yuv420p, 400x228 [SAR 1:1 DAR 100:57], Closed Captions, 29.97 fps, 29.97 tbr, 90k tbn, 59.94 tbc 
    Metadata: 
     variant_bitrate : 380000 
    Stream #0:1: Audio: aac (LC) ([15][0][0][0]/0x000F), 44100 Hz, mono, fltp, 48 kb/s 
    Metadata: 
     variant_bitrate : 380000 

然而,正如你所看到的,節目0>流0只是說,這是有Closed captions - 它沒有列出的隱藏式字幕技術類型/規格被使用。

如何顯示Closed Captions的格式?

回答

3

WebVTT就是所謂的「邊車」或「帶外」格式。含義標題是在一個單獨的文件中,您必須下載。你可以在m3u8中看到這個文件的URL。這裏的標題是視頻流本身的一部分。在這種情況下唯一支持的格式是EIA-608。 608的ffmpeg支持相當有限。我所知道的處理608的最佳工具是libcaption(我完全公開了,我寫了它)。我最近添加了一個ts2srt示例程序。公平的警告它仍然不錯。

+0

謝謝。如果我上面的示例是EIA-608,爲什麼標題會顯示在Roku上,而不是TVOS? TVOS聲稱EIA-608兼容。任何想法? – rynop

+0

您是否在清單中設置了標題格式?它記錄在蘋果網站上。 – szatmary

+0

你有指向文檔頁的鏈接嗎?我們沒有看到任何東西...... – rynop

相關問題