Получите неподвижный кадр во время захвата видео с веб-камеры на Linux - PullRequest
0 голосов
/ 15 января 2020

Я хочу захватывать видео с веб-камеры (сохранение в файл), время от времени получая самый последний кадр (из кода 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 (например, вызов ffmpeg через subprocess.Popen) до (a) начала записи, (b) получения кадров в произвольных точках, (c) прекратить запись.
  2. Кадр не должен быть точным. Кадр за последние пару секунд в порядке.
  3. В порядке любой формат контейнера (mkv, mp4 и т. Д. c.)
  4. В порядке другие программы, не только ffmpeg

1 Ответ

1 голос
/ 15 января 2020

Вы можете иметь несколько выходов для FFmpeg. Объедините ваши команды:

ffmpeg -f v4l2 -framerate 30 -video_size 1024x576 -i /dev/video0 myvideo.mp4 -r 1 -update 1 current_frame.jpg
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...