我正在使用来自计算机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我可以在"rtp://@230.0.0.1:5005“中在计算机A中播放vlc中的实时流。但是,我无法通过在VLC中打开"rtp://@230.0.0.1:5005“来播放来自B计算机的流,它与计算机A处于同一个网络中。
如果我在http上传输一个mp4文件,B计算机就能播放它。对于http流,我只需转到VLC -> Media -> -> (添加mp4文件),然后以A上8080端口的HTTP格式进行流,然后在机器B上用"http://serverIP:portnumber““在VLC中打开它。
我在这里做错什么了?
发布于 2021-06-24 20:00:21
为什么不能在Ubuntu上接收rtp流?
因为您使用的是多播地址230.0.0.1,而且当前的设置在这两个主机之间没有多播路径。
所以,现在解决这个问题的方法之一就是使用单播传输。只需使用您要监视的主机的ip地址更改230.0.0.1即可。
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://@:5005https://unix.stackexchange.com/questions/655667
复制相似问题