多个 rtspclientsink 输出的 GStreamer 管道延迟问题

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

我正在开发一个涉及两个 rtspclientsink 输出的 GStreamer 管道。这是我正在使用的管道:

gst-launch-1.0 v4l2src device=/dev/video4 ! image/jpeg,width=1920,height=1080,framerate=30/1 ! jpegdec ! videoconvert ! video/x-raw,width=1920,height=1080,framerate=10/1,format=I420,colorimetry=bt601 ! queue ! v4l2h264enc ! tee name=t ! queue ! rtspclientsink name=s location=rtsp://localhost:8554/realtime t. ! queue min-threshold-time=4000000000 max-size-time=100000000000 ! rtspclientsink name=b location=rtsp://localhost:8554/delayed

我的目标是让

rtspclientsink rtsp://localhost:8554/realtime
输出实时播放,并且
rtsp://localhost:8554/delayed
输出延迟 4 秒播放。但是,我遇到了两个输出都有延迟的问题,并且我无法使用
rtspclientsink rtsp://localhost:8554/realtime
实现实时播放。

我尝试使用sync=false作为参数,但这并没有解决问题。

有人可以深入了解为什么两个输出都会延迟,以及如何在一个输出上实现实时播放,同时保持另一个输出上的延迟吗?任何帮助将不胜感激。

提前谢谢您!

gstreamer rtsp
1个回答
0
投票

“rtspclientsink”有一个元素属性“latency”,默认为 2000ms。尝试将其设置为 0。

... ! rtspclientsink latency=0 location=...

您使用了我没有的“v4l2h264enc”元素,但如果它类似于“x264enc”元素,它可能具有调整编码性能的属性。

“x264enc”元素具有属性“tune”,默认为“none”。使用“零延迟”可以减少延迟。

... ! x264enc tune=zerolatency ! ...

您可以使用“v4l2h264enc”检查哪些属性

gst-inspect-1.0 v4l2h264enc
© www.soinside.com 2019 - 2024. All rights reserved.