ffmpeg:保存具有重叠段的 RTSP 流

  • 本文关键字:RTSP 重叠 保存 ffmpeg ffmpeg
  • 更新时间 :
  • 英文 :


>我有一个 RTSP 流,我需要用 2s 段和 1s 重叠的段对其进行分段。

t(s): 0----1----2----3----4----5----6----7----8----9----10---->
vids: |--1.mp4--|--3.mp4--|--5.mp4--|--7.mp4--|--9.mp4--|
           |--2.mp4--|--4.mp4--|--6.mp4--|--8.mp4--|

我可以每 2 秒拆分为 2s 段,但我看不到如何每秒拆分为 2s 段。

到目前为止,我已经使用了以下内容:

ffmpeg 
-i rtsp://192.168.1.124:8553/unicast 
-c copy -flags +global_header 
-f segment 
-segment_time 2 
-segment_format_options movflags=+faststart 
-reset_timestamps 1 
%d.mp4 

我想的方法是复制流,延迟 1 秒,然后分别分段,但这似乎很浪费,而且没有办法保证重叠。

有什么想法吗?

我尝试了很多东西,包括内置的tee过滤器以及split复杂的过滤器,并尝试应用-muxdelay 1

然而,最好和最可靠的性能是将输出流传送到两个单独的 ffmpeg 实例(我知道效率低下):

ffmpeg 
    -i rtsp://10.10.128.213:8553/unicast 
    -f nut - | tee >(ffmpeg -y -i - -f nut -c copy -f segment -segment_time 2 -reset_timestamps 1 $VID_DIR/test_1_%d.mp4) 
               >(ffmpeg -y -itsoffset 1 -i - -f nut -c copy -f segment -segment_time 2 -reset_timestamps 1 $VID_DIR/test_2_%d.mp4) 
         > /dev/null

除了这种方法之外,所有方法都导致分割非常不均匀。

最新更新