【问题标题】:Get a still frame during webcam video capture on Linux在 Linux 上的网络摄像头视频捕获期间获取静止帧
【发布时间】:2020-05-01 19:11:47
【问题描述】:

我想从网络摄像头捕获视频(保存到文件),同时偶尔获取最新的静止帧(来自 python 代码)。 有没有办法在 Linux 上做到这一点?

我的尝试:

# Capture Video:
ffmpeg -f v4l2 -framerate 30 -video_size 1024x576 -i /dev/video0 myvideo.mp4

...

# In another terminal, try to capture the latest still frame:
ffmpeg -sseof -3 -i myvideo.mp4 -update 1 -q:v 1 current_frame.jpg

但是,我从最后一个命令中得到了不同的响应,例如

Cannot use -sseof, duration of myvideo.mp4 not known

[matroska,webm @ 0x55e1aae26900] Duplicate element
    Last message repeated 2 times

附加说明/限制:

  1. 必须可以控制从 python 的解决方案(例如,通过 subprocess.Popen 调用 ffmpeg)到 (a) 开始录制,(b) 在任意点获取帧,(c) 停止录制。
  2. 帧计时不必精确。最后几秒钟内的一帧很好。
  3. 任何容器格式都可以(mkv、mp4 等)
  4. 其他程序都可以,不只是ffmpeg

【问题讨论】:

    标签: python linux video ffmpeg


    【解决方案1】:

    FFmpeg 可以有多个输出。组合你的命令:

    ffmpeg -f v4l2 -framerate 30 -video_size 1024x576 -i /dev/video0 myvideo.mp4 -r 1 -update 1 current_frame.jpg
    

    【讨论】:

    • 谢谢!这就是@Brad 的诀窍,我很高兴轮询最新的 current_frame.jpg 文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-11
    • 2017-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多