我正在尝试使用 GStreamer 进行 UDP 多播屏幕流传输。我的投屏服务器应该在 Windows 上运行 and my 客户端应在 Linux 上运行.
如果我在服务器之前启动客户端,一切都很好。
问题是当我启动客户端并且服务器已经启动时。视频已收到,但失真严重。
这就是结果。 https://i.stack.imgur.com/mShWD.jpg
Server:
gst-launch-1.0 -e gdiscreencapsrc ! queue ! video/x-raw, framerate=25/1 ! videoconvert ! \
x264enc noise-reduction=10000 tune=zerolatency bitrate=2500 speed-preset="fast" byte-stream=true threads=4 key-int-max=15 intra-refresh=true ! \
h264parse ! rtph264pay config-interval=1 \
! udpsink host=224.1.1.1 port=5000 auto-multicast=true
Client:
gst-launch-1.0 -v udpsrc multicast-group=224.1.1.1 auto-multicast=true port=5000 ! application/x-rtp ! rtph264depay ! h264parse ! queue ! decodebin ! videoconvert ! autovideosink caps='video/x-raw, format=RGB'
我已经尝试过使用dx9screencapsrc
,但行为是相同的。
只有更换后问题才能解决gdiscreencapsrc
with videotestsrc
.
如果我在 Linux 上启动服务器,使用ximagesrc
,我仍然有一些问题,但视频随着时间的推移正在改进。
任何帮助,将不胜感激!
Adding cabac=false
我的 x264enc 元素解决了这个问题。
gst-launch-1.0 -v gdiscreencapsrc ! queue ! video/x-raw,framerate=60/1 ! decodebin ! videoscale ! videoconvert ! \
x264enc cabac=false tune=zerolatency bitrate=4000 speed-preset="fast" ! \
h264parse ! rtph264pay config-interval=-1 \
! udpsink host=224.1.1.1 port=5000 auto-multicast=true sync=false
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)