skr*_*obo 3 pipeline rtp rtsp gstreamer h.264
我正在访问RTSPVIRB 360 摄像机的视频流。我可以使用以下gstreamer命令播放流:
gst-launch-1.0 -v playbin uri=rtsp://192.168.0.1/livePreviewStream?maxResolutionVertical=720\&liveStreamActive=1
Run Code Online (Sandbox Code Playgroud)
但是,流式传输存在3 秒的延迟,需要消除该延迟。上述命令的输出(由于-v)已上传至此处。我还按照此问题/答案.svg中描述的方法为管道创建了一些文件。这些文件已上传至此处。我相信并代表完整的管道(多个文件是由单个管道生成的,这就是多个文件的原因)。在文件中,可以看到下面有一个.mypipeline4.svgmypipeline5.svgdot.svg.svglatency=2000rtpjitterbuffer
计划是通过手动添加组件而不是使用 来构建相同的管道playbin,然后设置 的延迟属性rtpjitterbuffer。我尝试过以下命令:
1)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
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 ! nvoverlaysink
但是,在这两种情况下,我都收到错误:WARNING: erroneous pipeline: could not link udpsink0 to queue1.如何解决此问题?另外,根据我的实验,我非常确定管道的其余部分也有错误。我该如何优化这条管道?
小智 5
首先,您不应该将任何东西连接到 GStreamer 中的接收器。接收器是线路的末端,应该只接收数据。特别是udpsink是向网络发送UDP数据包的。请参阅文档了解更多信息:
https://gstreamer.freedesktop.org/documentation/udp/udpsink.html?gi-language=c
我也在努力减少延迟,到目前为止我得到的最好的结果是:
gst-launch-1.0 rtspsrc location=rtsp://10.20.0.188:554 latency=0 buffer-mode=auto ! decodebin ! vaapisink sync=false
我有 400 毫秒的延迟,而在相机应用程序中我有 150 毫秒的延迟,我想减少它。
我希望这可以帮助你 ;)
| 归档时间: |
|
| 查看次数: |
11561 次 |
| 最近记录: |