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

标签 curl ffmpeg mjpeg

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

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

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

最佳答案

查看来自 FFmpeg 的段复用器。

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

您可能感兴趣的选项是 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我可以提供。

关于curl - 将 MJPEG 流式传输到文件,但仅保留最后 x 分钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34473257/

相关文章:

PHP cURL 文件上传到 JSP 脚本失败。通过浏览器上传的相同文件有效

ffmpeg deocde 不产生输出文件

PHP - 如何让 Shell 错误回显到屏幕上

swiftui - @Published UIImage 属性未在 SwiftUI 中更新

iphone - 使用 Monotouch 在 iPhone 中播放 MJPEG 流

c# - 将 MJPEG 流写入磁盘

c - 下载未使用 Curl C API 恢复

ruby-on-rails - Elasticsearch more_like_this查询异常

xml - 如何使用正则表达式操作来自 SOAP XML 的数据

ffmpeg - 我在 .sec 路径中有一个文件,当我使用 ffmpeg 将其转换为 mp4 或 avi 格式时,视频出来的速度非常快