将 MJPEG 流式传输到文件,但只保留最后 x 分钟

Stream MJPEG to file, but keep only last x minutes

我想在检测到运动时录制 MJPEG 流。但是我的运动检测通知比运动发生晚了几秒钟。

为了解决这个问题,我想一直记录,但只保留最后2分钟的镜头。

现在我正在使用 cURL 无限下载,但我一直在思考如何将它 trim 文件的前面正确设置为 2 分钟。

FFmpeg.

查看 segment muxer

使用 分段复用器 可以捕获流并将其写入多个单独的文件。

您可能感兴趣的选项是segment_wrap

来自文档:

segment_wrap limit

Wrap around segment index once it reaches limit.

所以你可以这样使用ffmpeg

ffmpeg -i URL -c copy -f segment -segment_time 120 -segment_wrap 2 out_file

循环写入两个文件。

每个文件的时长等于两分钟,在每个时刻你至少有最后两分钟的视频。

我当然知道这个解决方案很糟糕,但这是我可以提供的 ffmpeg 解决您问题的唯一方法。