在Linux上将AVI帧转换为JPG

13

在Linux上,哪个程序可以将AVI文件中的所有帧转换为一系列的JPEG文件?


5个回答

25
使用 ffmpeg。
ffmpeg -i infile.avi -f image2 image-%03d.jpg

请查看Chris S.指出的stackoverflow上的这个答案

我还发现了这篇名为"在Linux上创建动画截图"的文章,其中详细介绍了使用mencoder捕获连续截图的过程。(文章末尾讨论了将这些截图编码成另一种格式的方法,但您可以忽略这部分。)


我曾经使用过上述代码行来达到同样的目的,看起来它似乎可以工作,但并不完全如此。当我录制视频时,我以1000fps的速率录制,结果视频长度为2分29秒。如果我的计算正确,整个视频应该有149,000帧。然而,当我运行“ffmpeg -i myfile.avi -f image2 image-%05d.bmp”时,我只得到了4472个文件。我该如何获得原始的149k帧? - Myx
我还尝试过将原始AVI文件的帧率转换为1000fps,通过执行'ffmpeg -i myfile.avi -r 1000 otherfile.avi'命令,但这似乎并没有解决我的问题。 - Myx

7
avconv -i 'in.mov' -vsync 1 -r 100 'out-%03d.jpeg'

这将把输入的影片转换成单独的帧。在 r 后使用 100 将每秒提取 100 帧;使用 1 将每秒提取 1 帧。在此示例中,输出文件将是 out-001、out-002、out-003,等等。当使用更高的帧率时,请注意帧数将是视频持续时间乘以帧速率 ±1。


5

convert your_clip.avi %d.jpg命令中,%d将被替换为数字。

额外内容:使用convert 1.jpg 2.jpg moving.gif可以将这两张图片制作成gif动画。

convert命令源自ImageMagick (apt install imagemagick)。


0

MPlayer/MEncoder或许能对您有所帮助。我曾用它把电影文件转换成占用更小空间的格式,但还没有尝试提取JPEG。


-1

一个词:mencoder


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