在 OS X 中将视频文件的每一帧提取为图像

在 OS X 中将视频文件的每一帧提取为图像

我想要做的是提取视频文件的每一帧并输出图像。

我尝试通过终端使用 VLC 的命令,但它似乎在跳帧,即使我关闭了“跳帧”。我猜我的 MacBook Pro i7 太慢了。我无法播放视频文件而不跳帧,这似乎很奇怪。无论如何,有没有其他方法可以让我获得每一帧?似乎 vlc 试图实时执行此操作,如果在速度较慢的机器上工作,这可能会成为问题。

这是我使用的 VLC 命令:

/Applications/VLC.app/Contents/MacOS/VLC /Users/name/Downloads/complete/video.mkv --video-filter=scene --scene-prefix=movie --scene-ratio=1 --scene-path=/folder --start-time=1035 --stop-time=1100 --no-skip-frames

答案1

我会用 FFmpeg 来做,你可以通过它自制或者ffmpegX

在第一种情况下,安装 Homebrew 然后运行brew install ffmpeg。这将需要 Xcode 并从源代码构建,这对于您的简单需求来说可能会有点开销。

在第二种情况下,安装.app,并使用ffmpeg与其捆绑的版本 - 但请注意,此版本是 2006 年的,因此可能不适用于所有输入文件。

/Applications/ffmpegX.app/Contents/Resources/ffmpeg

对于我来说,它适用于 h.264/MP4 剪辑。


无论如何,使用 FFmpeg 单独输出每一帧:

ffmpeg -i /path/to/video.mkv /path/to/output-%04d.jpg

您还可以使用png而不是来获得无损结果,如果文件较长时需要更多数字,jpg则更改数字。%04d

相关内容