Сгенерированный FFMPEG DASH Manifest для Livestream недействителен, но его все еще можно воспроизвести на некоторых проигрывателях

Сгенерированный FFMPEG DASH Manifest для Livestream недействителен, но его все еще можно воспроизвести на некоторых проигрывателях

Я пытаюсь встроить поток RTSP с IP-камеры в веб-сайт. Я обнаружил, что встраивание RTSP напрямую — сложная и ресурсоемкая задача, а также требует от пользователя выполнения некоторых важных действий (установки различных проигрывателей, таких как VLC, или включения некоторых плагинов браузера), поэтому я решил преобразовать поток RTSP в прямой эфир (HLS или MPEG-DASH) на лету, используя FFMPEG. Когда я пытаюсь сгенерировать файлы HLS, загрузка ЦП подскакивает до 100%, поэтому я подумал (так как мой видеосервер довольно слабый, с одноядерным ЦП), что MPEG-DASH — это вариант, на котором мне стоит остановиться, так как он добавляет 2–3% нагрузки на ЦП, что более чем приемлемо. Однако, когда я пытаюсь проверить свой файл manifest.mpd с помощьюhttps://conformance.dashif.org/он возвращает следующее:

✔ XLink resolving
✖ MPD Validation
✖ Schematron Validation

Я попытался воспроизвести манифест прямой трансляции с помощьюDash.jsно плеер застрял в состоянии загрузки. Однако, когда я пытаюсь воспроизвести этот манифест livestram сВЛК,JW-плеер 8иTHEOPlayer, работает отлично. Тем не менее, ffprobeвозвращает: http://MY_PUBLIC_IP:PORT/mpeg-dash/manifest.mpd: Invalid data found when processing input. Что я делаю не так, и как сгенерировать файлы dash, чтобы их можно было воспроизводить с помощью обычных (и бесплатных) проигрывателей, таких какDash.js?

Ресурсы:

Текущийmanifest.mpd.

Команда, которую я использую:ffmpeg -i rtsp://USERNAME:[email protected]:554/live -an -c:v copy -b:v 2000k -f dash -window_size 10 -extra_window_size 0 -min_seg_duration 2000000 -use_timeline 1 -use_template 1 -remove_at_exit 1 /var/www/camera/mpeg-dash/manifest.mpd

Связанный контент