nginx rtmp для потоковой передачи hls

Мой сценарий - получить данные из источника RTSP через ffmpeg, отправить их в nginx-rtmp и использовать nginx для воспроизведения hls. В Интернете довольно много руководств и вопросов и ответов. Я следил за этим:

https://docs.peer5.com/guides/setting-up-hls-live-streaming-server-using-nginx/

Однако это с треском провалилось. Чтобы упростить понимание, я хотел бы задать основной вопрос:

Кто отвечает за создание файла плейлиста m3u8?

Я попытался поэкспериментировать в два этапа: сначала попробуйте отправить локальный файл mp4 и воспроизвести его через HLS:

Следуя приведенному выше руководству, я пытаюсь использовать ffmpeg, чтобы отправить локальный файл mp4 в nginx-rtmp, и использовать videojs для его воспроизведения. Браузер сообщил об ошибке:

VIDEOJS: ERROR: (CODE:4 MEDIA_ERR_SRC_NOT_SUPPORTED) No compatible source was found for this media. 

Во-вторых, я успешно сохранил видеофайл, помещенный в nginx-rtmp, как серию файлов FLV, и я знаю, что могу использовать exec_push для вызова ffmpeg для преобразования flv в формат, совместимый с HLS. . Опять же, здесь основной вопрос заключается в том, как создать и ОБНОВИТЬ файл m3u8, поскольку новые видеоданные поступают бесконечно.

А пока я хотел бы, чтобы специалисты помогли мне разобраться с первым вопросом - воспроизвести статический файл mp4 через HLS. Также приветствуются любые руководства по плейлисту m3u8 и файлам mpeg-ts!


person xrfang    schedule 13.08.2020    source источник


Ответы (1)


Модуль nginx-rtmp сам по себе создает и обновляет список воспроизведения по мере поступления новых сегментов.

Чтобы устранить неполадки, проверьте, созданы ли файлы .m3u8 в папке, указанной в hls_path вашей конфигурации nginx. Rest - это просто nginx, обслуживающий файл с использованием http. Если это работает, попробуйте использовать URL-адрес HLS непосредственно в сафари (в сафари есть встроенный проигрыватель HLS) или в расширении Chrome (Play HLS M3u8). Если это сработает, проблема должна быть в вашем player.html.

person sachin roy    schedule 13.08.2020
comment
Основная проблема в том, что файлы .m3u8 не созданы в hls_path, поэтому я задаю этот вопрос. @ sachin-roy - person xrfang; 13.08.2020
comment
Я успешно сгенерировал файлы ts и m3u8. так что эта проблема решена. Однако у HLS есть серьезные проблемы с производительностью, и я открою новый вопрос. - person xrfang; 14.08.2020
comment
Кстати, исходная проблема была вызвана неправильным разрешением файловой системы Linux - person xrfang; 14.08.2020