Я пытаюсь запустить сервер транскодера rtmp с помощью ffmpeg; который принимает потоки udp MPEG-TS в качестве входных данных, перекодирует их; и генерирует вывод rtmp для URL-адреса, к которому пользователи могут получить доступ для получения и воспроизведения потока rtmp. Ожидается, что все это будет выполняться в локальной сети, и к выходным данным будут иметь доступ все пользователи.
1) Сначала я не знаю, куда должен указывать URL-адрес. Достаточно ли указать IP-адрес системы и какой-нибудь дополнительный порт? Обязательно ли, чтобы программа прослушивала этот порт?
2) Как я могу воспроизвести поток по URL?
Я использую машину linux ubuntu с IP = 10.1.1.229 и хочу перекодировать многоадресный поток по этому URL-адресу: udp://@224.10.1.1:2001
.
вот команда, используемая для перекодирования входного потока и создания URL-адреса rtmp «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
Любое руководство было бы полезно. Спасибо.
ffmpeg (пока) не имеет функции сервера RTMP. Что он делает, когда он выводит на URL-адрес rtmp, так это то, что он выводит поток, который является входным потоком для серверов RTMP (например, Wowza или аналогичных). Короче говоря, ffmpeg снабжает реальный RTMP-сервер входными данными, которые затем транслируются этим RTMP-сервером.