为什么Ubuntu收不到rtp流?

为什么Ubuntu收不到rtp流?

我正在使用计算机 A 上的 ffmpeg 通过 rtp 流式传输桌面。这是我的 ffmpeg 代码:

ffmpeg -f x11grab -framerate 25 -video_size 1920x1080 -i :1.0 -c:v libx264 -preset fast -pix_fmt bgr0 -b:v 3M -g 25 -an -f rtp_mpegts rtp://230.0.0.1:5005

我可以在电脑A的vlc中播放“rtp://@230.0.0.1:5005”的直播流。但我无法通过尝试在 VLC 中打开“rtp://@230.0.0.1:5005”来播放与计算机 A 位于同一网络中的计算机 B 的流。

如果我通过 http 传输 mp4 文件,计算机 B 就可以播放它。对于http流,我只需进入VLC - >媒体 - >流 - >(添加mp4文件),并在A上的8080端口以HTTP格式流。然后在机器B上的VLC中使用“http:/ /服务器IP:端口号”。

我在这里做错了什么?

答案1

为什么Ubuntu收不到rtp流?

因为您使用的是多播地址230.0.0.1,并且当前设置在两台主机之间没有多播路径。

所以,目前解决这个问题的一种方法就是使用单播传输。只需更改230.0.0.1您要观看的主机的 IP 地址即可。

ffmpeg -f x11grab -framerate 25 -video_size 1920x1080 -i :1.0 -c:v libx264 -preset fast -pix_fmt bgr0 -b:v 3M -g 25 -an -f rtp_mpegts rtp://a.b.c.d:5005

其中a.b.c.d是 Ubuntu 主机的 IP 地址。

然后,在 Ubuntu 主机上您可以执行以下操作:

vlc rtp://@:5005

相关内容