我想要做的是提取视频文件的每一帧并输出图像。
我尝试通过终端使用 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