Назад | Перейти на главную страницу

ffmpeg простая потоковая передача RTMP

Я пытаюсь запустить сервер транскодера 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-сервером.