2016-09-22 14 views
0

Я использую rtmp для передачи потоков на сервер и использования HLS для потокового видео на моем устройстве. Есть ли протокол субтитров, который я могу обновить подзаголовок в реальном времени, например, , на сервере есть файл субтитров, я могу продолжать писать в этот файл, и мой плеер также может читать его из этого файла.Подключительный субтитр HLS?

Я знаю, что WebVTT работает для записанного потокового видео, но будет ли он работать для потокового видео в реальном времени? Могу ли я связать свой плеер с файлом webVTT, и я могу просто обновить субтитры, продолжая писать на него?

ответ

1

Вы можете использовать WebVTT до add subtitles to a live HLS stream. Вы делаете это, используя живой список субтитров. Он работает так же, как живой плейлист - вы добавляете и удаляете записи из него с течением времени.

Сначала создайте главный плейлист и добавьте ссылку на ваш список воспроизведения субтитров (subtitles.m3u8). Вот пример (упрощенный):

#EXTM3U 
#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID="subs",NAME="English",URI="subtitles.m3u8",LANGUAGE="en" 
#EXT-X-STREAM-INF:BANDWIDTH=500000,RESOLUTION=1920x1080,SUBTITLES="subs" 
prog_index.m3u8 

Следующий шаг - обновление плейлиста субтитров во время прямой трансляции. Допустим, что ваш плейлист подзаголовке выглядит следующим образом изначально:

#EXTM3U 
#EXT-X-TARGETDURATION:10 
#EXT-X-VERSION:3 
#EXT-X-MEDIA-SEQUENCE:1 
#EXTINF:10, 
1.webvtt 
#EXTINF:10, 
2.webvtt 
#EXTINF:10, 
3.webvtt 

Обратите внимание, что #EXT-X-ENDLIST отсутствует тег из списка воспроизведения. Это приведет к тому, что плеер сохранит список воспроизведения.

Затем через некоторое время (длительность сегмента) будет выглядеть следующим образом:

#EXTM3U 
#EXT-X-TARGETDURATION:10 
#EXT-X-VERSION:3 
#EXT-X-MEDIA-SEQUENCE:2 
#EXTINF:10, 
2.webvtt 
#EXTINF:10, 
3.webvtt 
#EXTINF:10, 
4.webvtt 

И так далее. Вероятно, вам придется написать какой-то пользовательский код для обновления списка воспроизведения субтитров.

+0

спасибо! Это должно быть действительно полезно для других, у кого такая же проблема, но, к сожалению, у меня нет доступа к записи в файл m3u8, я должен искать другие решения. – ywj7931