我正在尝试使用 ffmpeg 启动 rtmp 转码器服务器;该服务器接收 udp MPEG-TS 流作为输入,对其进行转码;并生成 rtmp 输出到 URL,用户可以访问该 URL 来接收和播放 rtmp 流。所有这些都应在 LAN 中执行,并且所有用户都可以访问输出。
1) 首先,我不知道 URL 应该指向哪里。指定系统的 IP 和一些可选端口就够了吗?程序是否有必要监听该端口?
2) 如何在 URL 上播放流?
我使用一台 IP 地址为 10.1.1.229 的 Linux Ubuntu 机器,我想要对这个 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 服务器功能。当它输出到 rtmp URL 时,它所做的就是输出流,这是 RTMP 服务器(如 Wowza 或类似服务器)的输入源。简而言之,ffmpeg 将输入提供给真正的 RTMP 服务器,然后由该 RTMP 服务器进行广播。