Я пытаюсь выяснить, как обеспечить бесконечный поток видео, используя Java и видео. js. Итак, на бэкэнде у меня есть список воспроизведения из одного .m3u8
файла и пары .ts
файлов. И мой поток состоит из следующих шагов:
Дайте .m3u8
текст в пользовательском интерфейсе. .m3u8 снимок экрана конечной точки
Запустить поток на внешней стороне с помощью видео. js lib. видео. js снимок экрана
Видео. js запросы на один файл .ts
, указанный в файле .m3u8
. ts скриншот конечной точки
На бэкенде с помощью шедулера я меняю состояние контекста streamContentContext.setCurrentChunkId(streamContentContext.getCurrentChunkId() + 1)
, а когда видео. js понимает, что только ts файл окончен, он пытается обновить .m3u8
файл. На данный момент индекс ts уже обновлен планировщиком, и он должен запросить /ts/2
конечную точку.
ПРОБЛЕМА ЕСТЬ: все последующие .ts
файлы на внешнем интерфейсе сторона просто не может быть воспроизведена, возможно, должен быть какой-то атрибут или событие, которое начнет добавлять новый фрагмент видео к предыдущему.
UPD: после прочтения этой статьи (https://developer.apple.com/documentation/http_live_streaming/example_playlists_for_http_live_streaming/live_playlist_sliding_window_construction ) мне все стало ясно, что стоит удалить некоторые атрибуты из файла .m3u8
, поэтому я оставил только #EXTM3U, #EXT-X-VERSION:3, #EXT-X-TARGETDURATION:11, #EXT-X-MEDIA-SEQUENCE: + streamContentContext.getCurrentChunkId()
скриншот браузера