
Я пытаюсь встроить поток 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?
Ресурсы:
Команда, которую я использую: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