Сгенерированный FFMPEG DASH Manifest для Livestream недействителен, но все еще воспроизводим на некоторых игроках
Я пытаюсь встроить поток RTSP с IP-камеры в веб-сайт. Я обнаружил, что встраивание RTSP напрямую сложно и находчиво, а также требует от пользователя некоторых важных действий (установка различных проигрывателей, таких как VLC или включение некоторых плагинов для браузера), поэтому я решил преобразовать поток RTSP в живой поток (HLS или MPEG-DASH) на лету, используя FFMPEG. Когда я пытаюсь сгенерировать файлы HLS, загрузка ЦП переходит на 100%, поэтому я подумал (так как мой видеосервер довольно слаб, с одноядерным ЦП), что MPEG-DASH - это вариант для меня, так как добавляет 2-3% загрузки процессора, что более чем приемлемо. Однако, когда я пытаюсь проверить мой файл manifest.mpd с помощью https://dashif.org/conformance.html он возвращает следующее:
✔ XLink resolving
✖ MPD Validation
✖ Schematron Validation
Я пытался воспроизвести манифест в прямом эфире с Dash.js, но игрок застрял в состоянии загрузки. Тем не менее, когда я пытаюсь воспроизвести манифест этого livestram с помощью VLC, JW Player 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:PASSWORD@192.168.0.200: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