是否可以从 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"
这不适用于我的情况,因为我在开始之前需要缓冲区。在这种情况下,谁能告诉我如何在传输开始之前缓冲录制的内容,这样我就不会因为延迟而丢失录制的内容?