捕获视频文件的屏幕截图/帧

4
有没有一种方法可以在Python中捕获视频文件的单个帧?
也可以通过命令行完成。我正在使用HandbrakeCLI转换视频,
但我也需要一些屏幕截图。
谢谢
1个回答

7
你应该首先查看PyFFmpeg

PyFFmpeg是FFmpeg的一个包装器,它主要目的是提供对各种格式(包括MPEG和DIVX编码视频)的视频文件中单个帧的访问以及音频数据的访问。它使用了FFmpeg的libavcodec、libavformat和libavutil库。

也可以使用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或者其他你可能使用的工具。只需要调用相应的命令即可。

2
我发现可以使用ffmpeg来获取它,例如:ffmpeg -i <input-file> -ss <time> -vframes 1 file%d.jpg,但是我找不到类似的Handbrake命令。 - aschmid00
你需要找到的是,我已经告诉你如何使用Python调用它。尝试搜索,解决方案应该相当简单。 - user225312
命令 = 'ffmpeg -i inputVideo.webm -ss 100 -vframes 1 output.jpg' 对我有效。 - Elliot Robert

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接