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

St.*_*son 5 curl ffmpeg mjpeg

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

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

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

Edg*_*jān 7

查看FFmpeg分段复用器

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

您可能感兴趣的选项是segment_wrap

从文档中:

segment_wrap limit

Wrap around segment index once it reaches limit.
Run Code Online (Sandbox Code Playgroud)

ffmpeg所以你可以这样使用:

ffmpeg -i URL -c copy -f segment -segment_time 120 -segment_wrap 2 out_file
Run Code Online (Sandbox Code Playgroud)

循环写入两个文件。

每个文件的持续时间等于两分钟,并且在每个时刻您至少有最后两分钟的视频。

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