FFmpeg 从放置在不同文件夹中的图像制作视频

Posted

技术标签:

【中文标题】FFmpeg 从放置在不同文件夹中的图像制作视频【英文标题】:FFmpeg making video from images placed in different folders 【发布时间】:2013-08-19 13:49:02 【问题描述】:

我正在用 FFmpeg 中的图像制作视频。我想知道我是否可以从放置在不同文件夹中的图像制作视频。就像第一个图像放在文件夹 1 和其他文件夹 2 中一样,我可以使用文件夹 1 和文件夹 2 中的两个图像来制作具有任意顺序两个图像的单个视频。只是想知道我可以使用来自两个不同文件夹的图像来制作一个视频。如是。那我该怎么做呢?

【问题讨论】:

阅读您的问题,您是否真的认为有人可以理解您在做什么以及您期望的结果视频...文件夹名称是否遵循逻辑(显示一种树来解释)你想要什么样的视频...文件夹1的所有图像,以及文件夹2的所有图像等等......? @alexbuisson 你现在收到了吗??? 【参考方案1】:

是的,这是可能的,您可以在命令 (-i) 上指定多个输入,但在您的情况下更简单,因为订单不计算在内,使用 'concat' ' 过滤器

https://trac.ffmpeg.org/wiki/How%20to%20concatenate%20(join,%20merge)%20media%20files

它将创建一个包含文件夹 1 的所有图像以及所有文件夹 2 等的视频... concat 过滤器有两种方法:

ffmpeg -i concat:file1|file2 etc ....

ffmpeg -f concat -i list etc...

对于图像序列,看起来只有第二种方法有效。 所以首先创建一个文件来描述您的内容(运行touch file 并使用nano file 编辑它)并使用以下语法来指定您的文件在哪里以及它们的命名语法:

file './folder1/im%03d.jpg'
file './folder2/im%03d.jpg'

保存文件(在nano 下将与CTRL+X 一起) 现在运行以下命令:

ffmpeg -f concat -i list out.mp4

ffmpeg 将使用您的file 作为输入,并在编码过程中按顺序推送您的所有图像

【讨论】:

cancat 在 linux 上运行。当我使用 Windows 时,是否有针对 Windows 命令提示符的解决方案。 嗯,“concat”解复用器是 ffmpeg 的一部分,所以如果您在 Linux 和 Windows 上使用相同的 ffmpeg 版本,它必须工作....如果谈到“cat”命令,它也如果您设置了一些额外的包,例如 Cygwin,则存在于 Windows 下! 我在 linux 中尝试了 concat 命令,但它给出了错误“必须指定至少一个输出文件”。我的命令是:ffmpeg -r 1 -f image2 -i concat:/home/phedra/imgs/image/img%03d.png'|'/home/phedra/imgs/images/img%03d.png -i /home /phedra/imgs/image/audio.mp3 -acodec copy -r 20 /home/phedra/imgs/video/video4.mpg 经过一些测试,我同意第一种 concat 方法文件,但第二种方法使用文件列出内容工作(在 ubuntu/ffmpeg 2.0.1 上测试)!查看我的编辑 添加了更多细节,关于如何创建文件,但基本上它只是一个文本文件来描述你的序列在哪里以及它们各自的命名约定(im000.jpg、im001.jpg 是使用 im%03d 的名称.jpg 格式)

以上是关于FFmpeg 从放置在不同文件夹中的图像制作视频的主要内容,如果未能解决你的问题,请参考以下文章

FFMPEG:从可变长度的视频中提取 20 张图像

ffmpeg 在尝试用图像制作幻灯片时抛出“输出文件 #0 不包含任何流”

在 ffmpeg 中从单个图像创建特定持续时间的视频

ffmpeg:如何使用 ffmpeg 在视频中仅放置颜色叠加视频或应用不同类型的滤色器(如 instagram)

FFmpeg 示例代码,用于从静止图像 JNI Android 创建视频文件

FFmpeg:如何用幻灯片和音频制作视频