2016-12-05 1 views
1

Я работаю над приложением Roku и TVOS, которое будет воспроизводить видео HLS (VOD и live), а также MP4. Согласно Roku docs EIA-608 поддерживается на обоих устройствах и также должен работать на TVOS.Как вы показываете формат закрытого заголовка видеопотока HLS с URL-адреса m3u8

Мой вопрос: задайте URL-адрес m3u8, как я могу определить, какой конкретный формат (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 

Содержание 1-го ручья 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 - это то, что известно как «боковой автомобиль» или «вне диапазона». Значения титров находятся в отдельном файле, который вы должны загрузить. Вы можете увидеть URL-адрес этого файла в m3u8. Здесь заголовок является частью самого видеопотока. В этом случае единственным поддерживаемым форматом является EIA-608. Поддержка ffmpeg для 608 довольно ограничена. Лучший инструмент, который я знаю для работы с 608, - libcaption (полное раскрытие, я его написал). Недавно я добавил программу примера ts2srt. Ярмарка предупреждает о его еще что-то вроде бета.

+0

Спасибо. Если мой пример выше - EIA-608, почему заголовки показываются на Roku для этого видео, но не для TVOS? TVOS утверждает, что EIA-608 совместим. Есть идеи? – rynop

+0

Вы установили формат заголовка в манифесте? Он задокументирован на сайте яблок. – szatmary

+0

У вас есть ссылка на страницу документа, на которую ссылается? Мы ничего не видим ... – rynop

Смежные вопросы