сделать снимок экрана/кадр видеофайла

есть ли способ захватить один кадр видеофайла в python?
это также можно сделать с помощью командной строки. я использую handbrakecli для преобразования видео,
но мне также нужны скриншоты.

Спасибо


person aschmid00    schedule 12.01.2011    source источник


Ответы (1)


Сначала вам следует проверить PyFFmpeg.

PyFFmpeg — это оболочка вокруг библиотек libavcodec, libavformat и libavutil компании FFmpeg, основной целью которой является предоставление доступа к отдельным кадрам видеофайлов различных форматов (включая видео в кодировке MPEG и DIVX). Он также обеспечивает доступ к аудиоданным.

Это также возможно с использованием ffmpeg, поэтому вызовите его с помощью subprocess. Простой поиск даст вам команду, необходимую для извлечения кадра из видеофайла. Просто вызовите эту команду, используя subprocess, и это должно сделать это.

>>> import subprocess
>>> import shlex                          # to split the command that follows
>>> command = 'ffmpeg -i sample.avi'      # your command goes here
>>> subprocess.call(shlex.split(command))

Аналогичная процедура применима к handbrakecli или тому, что вы могли бы использовать. Просто вызовите соответствующую команду.

person user225312    schedule 12.01.2011
comment
Я вижу, что могу получить это с помощью ffmpeg, например: ffmpeg -i ‹input-file› -ss ‹time› -vframes 1 file%d.jpg, но я не смог найти ничего похожего для ручного тормоза - person aschmid00; 12.01.2011
comment
То, что вам нужно найти, я только что дал, как вы будете вызывать это с помощью Python. Попробуйте поискать, решение должно быть довольно тривиальным. - person user225312; 12.01.2011
comment
command = 'ffmpeg -i inputVideo.webm -ss 100 -vframes 1 output.jpg' у меня сработало - person Elliot Robert; 11.10.2018