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-сервером.

Другие вопросы по тегам