ffmpeg простая потоковая передача по RTMP
Я пытаюсь запустить сервер транскодера rtmp, используя ffmpeg; который принимает потоки MPEG-TS udp в качестве входных данных, транскодирует их; и генерирует выходные данные rtmp для URL-адреса, к которому пользователи могут получить доступ для получения и воспроизведения потока rtmp. Ожидается, что все это будет выполнено в локальной сети, и выход будет доступен для всех пользователей.
1) Во-первых, я не знаю, куда должен указывать URL. Нужно ли указывать IP системы и какой-то дополнительный порт? Нужно ли, чтобы программа прослушивала этот порт?
2) Как я могу воспроизвести поток по URL?
Я использую машину Linux Ubuntu с IP=10.1.1.229 и хочу транскодировать многоадресный поток по этому URL: udp://@224.10.1.1:2001
,
Вот команда, используемая для транскодирования входного потока и генерации rtmp url "rtmp://10.1.1.229:2020".
ffmpeg -y -f mpegts -i "udp://@224.10.1.1:2001" -re -vcodec libx264 -maxrate 700k -r 25 -s 640x360 -deinterlace -acodec libfaac -ab 64k -ac 1 -ar 44100 -f flv "rtmp://10.1.1.229:2020"
и вот команда, с помощью которой я пытаюсь воспроизвести поток RTMP:
ffplay rtmp://10.1.1.229:2020
Любое руководство будет полезным. Спасибо.
1 ответ
ffmpeg (пока) не имеет функциональности RTMP-сервера. Когда он выводит URL-адрес rtmp, он выводит поток, который является входным фидом для RTMP-серверов (например, Wowza или аналогичных). Короче говоря, ffmpeg подает на реальный RTMP-сервер входные данные, которые затем транслируются этим RTMP-сервером.