Gstreamer / RTSP-创建管道以减少由于rtpjitterbuffer引起的延迟

问题描述 投票:1回答:1

我正在从VIRB 360摄像机访问RTSP视频流。我可以使用以下gstreamer命令播放视频流:

gst-launch-1.0 -v playbin uri=rtsp://192.168.0.1/livePreviewStream?maxResolutionVertical=720\&liveStreamActive=1

但是,流中存在3秒延迟,需要消除。上述命令的输出(由于[C​​0])已上载-v。我还按照此here中描述的方法为管道创建了一些.svg文件。这些文件已上传question/ answer。我相信heremypipeline4.svg代表了完整的管道(多个mypipeline5.svg文件是由单个管道生成的,这就是多个dot文件的原因)。在.svg文件中,可以在.svg下看到一个latency=2000

该计划是通过手动添加组件而不是使用rtpjitterbuffer来构建相同的管道,然后为playbin设置延迟属性。我已经尝试了以下命令:

1)rtpjitterbuffer

2)gst-launch-1.0 rtspsrc location=rtsp://192.168.0.1/livePreviewStream?maxResolutionVertical=720\&liveStreamActive=1 ! udpsrc ! rtpsession ! rtpssrcdemux ! rtpjitterbuffer ! rtpptdemux ! queue ! udpsink ! queue ! rtph264depay ! h264parse ! omxh264dec ! playsink

但是,在两种情况下,我都收到一个错误:gst-launch-1.0 rtspsrc location=rtsp://192.168.0.1/livePreviewStream?maxResolutionVertical=720\&liveStreamActive=1 ! udpsrc ! rtpsession ! rtpssrcdemux ! rtpjitterbuffer ! rtpptdemux ! queue ! udpsink ! queue ! rtph264depay ! h264parse ! omxh264dec ! nvoverlaysink如何解决此问题?而且,从我的实验中,我很确定管道的其余部分也有错误。如何优化该管道?

gstreamer h.264 pipeline rtsp rtp
1个回答
0
投票

首先,您不应将任何东西连接到GStreamer中的接收器。接收器是该行的结尾,应该只接收数据。特别是udpsink将UDP数据包发送到网络。在文档中查看更多信息:

WARNING: erroneous pipeline: could not link udpsink0 to queue1.

我也在努力减少延迟,到目前为止,我得到的最好成绩是:

https://gstreamer.freedesktop.org/documentation/udp/udpsink.html?gi-language=c

我在相机应用程序中有150ms的延迟,但我想减少它。

希望对您有帮助;)

© www.soinside.com 2019 - 2024. All rights reserved.