Я пытаюсь встроить поток 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 с VLC, JW Player 8 и THEOPlayer, он отлично работает. Все же, ffprobe
возвращает: http://MY_PUBLIC_IP:PORT/mpeg-dash/manifest.mpd: Invalid data found when processing input
. Что я делаю не так и как сгенерировать мои файлы даш, чтобы в них можно было играть обычными (и бесплатными) игроками, такими как Dash.js?
Ресурсы:
Команда, которую я использую: 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