使用H264,RTP,UDP进行gstreamer测试。怎么了?



我对gstreamer比较陌生,正在寻找一些调试想法。我正在研究H264、RTP、UDP的视频流,并设置一些测试发送和接收脚本作为概念验证。我使用的不是实际的网络,而是本地主机,并将所有代码保存在一台PC上。

发件人

gst-launch-1.0 videotestsrc ! video/x-raw,width=640,height=480 !
timeoverlay !
x264enc tune=zerolatency byte-stream=true bitrate=3000 !
h264parse  !
rtph264pay !
udpsink host=localhost port=5200

接收器

gst-launch-1.0 udpsrc port=5200 !
application/x-rtp,encodingname=H264,payload=96 !
rtph264depay !
h264parse !
avdec_h264 !
autovideosink

这几乎奏效了。显示测试视频,但几秒钟后,大部分图像(色块(消失,只有噪声框显示在右下角。几秒钟后,它又闪烁回来,依此类推

我可以看出可能是排队、缓冲、同步或带宽问题?它并没有丢失实际网络上的内容,因为我正在通过localhost获取UDP流量。这里有点乱,添加和删除各种参数,没有太大区别。是的,其中有些是模仿意大利面,我可能不太清楚自己在做什么。

如果没有什么明显的东西,我该如何调试它?

我不认为这是原始的CPU功率,因为顶部并没有表明我接近100%的CPU。

您可以尝试在接收器中添加rtpjitebauffer:

gst-launch-1.0 udpsrc port=5200 ! application/x-rtp,encoding-name=H264,payload=96 ! rtpjitterbuffer latency=0 ! rtph264depay ! h264parse ! avdec_h264 ! autovideosink

相关内容

最新更新