0

是否可以从 RTSP 流中缓冲广播开始时间之前由摄像机录制的内容?

我将 2 个 RTSP 流录制到单个 Kinesis Video Streams 流中,我使用的管道类似于:

gst-launch-1.0 rtspsrc location="rtsp://location.com" short-header=TRUE protocols=GST_RTSP_LOWER_TRANS_TCP ! decodebin ! videoconvert ! comp.sink_0 \
rtspsrc location="rtsp://location.com" short-header=TRUE protocols=GST_RTSP_LOWER_TRANS_TCP ! decodebin ! videoconvert ! comp.sink_1 \
compositor name=comp sink_0::xpos=0 sink_1::xpos=1280 ! x264enc ! kvssink stream-name="test-stream" storage-size=512 access-key="access-key" secret-key="secret-key" aws-region="us-east-1" 

但是,当我启动 Docker 容器时,平均需要 12 秒来初始化和建立与 AWS 服务器的传输。在此传输开始时间内记录的所有视频内容都将丢失,并且不会发生这种情况。

我找到了一个创建一种缓冲区的解决方案,但它只缓冲传输开始后正在运行的内容,我使用的管道类似于:

gst-launch-1.0 rtspsrc location="rtsp://location.com" short-header=TRUE protocols=GST_RTSP_LOWER_TRANS_TCP ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=10000000000 ! decodebin ! videoconvert ! comp.sink_0 \
rtspsrc location="rtsp://location.com" short-header=TRUE protocols=GST_RTSP_LOWER_TRANS_TCP ! queue max-size-buffers=0 max-size-time=0 max-size-bytes=0 min-threshold-time=10000000000 ! decodebin ! videoconvert ! comp.sink_1 \
compositor name=comp sink_0::xpos=0 sink_1::xpos=1280 ! x264enc ! kvssink stream-name="test-stream" storage-size=512 access-key="access-key" secret-key="secret-key" aws-region="us-east-1"

这不适用于我的情况,因为我在开始之前需要缓冲区。在这种情况下,谁能告诉我如何在传输开始之前缓冲录制的内容,这样我就不会因为延迟而丢失录制的内容?

4

0 回答 0