全局模式

全局模式

我的主要目标是用 Blender 渲染文件制作视频,这些文件是带有增量数字名称的 PNG 文件。我知道我可以使用-i %4d.png,但在很多 Blender 动画的情况下,相同的帧会重复出现,因此与其再次渲染这些帧,不如重用相同的现有帧。所以,我想知道我是否应该告诉 ffmpeg 这件事。

例如,假设我有 100 张图片:0001.png0100.png。如果我想用以下格式创建一部电影,该怎么办:0001.png0030.png,然后是两次0031.png0060.png,然后是0061.png0100.png。有什么语法可以将其描述为输入吗?类似于(假设)

ffmpeg -i 0001.png-0030.png|2:0031.png-0060.png|0061.png-0100.png

如果没有这样的语法,我是否可以按顺序指定输入文件名的简单列表(全部 130 个)?例如:

0001.png
0002.png
0003.png
...
0030.png
0031.png
...
0060.png
0031.png
...
0100.png

答案1

全局模式

  1. 复制您想要重复的图像:

    0001.png
    0002.png
    0003.png
    0003b.png
    0003c.png
    0004.png
    
  2. 然后使用 glob 模式类型图像分离器

    ffmpeg -framerate 25 -pattern_type glob -i "*.png" -vf format=yuv420p -movflags +faststart output.mp4
    

我做了以下假设:

  • 您正在使用 Linux 或 macOS。Windows 无法使用 glob 模式。
  • 您想要 MP4 输出。

连接解复用器

替代方法是使用适用于所有操作系统的 concat 解复用器。

  1. 包含input.txt以下内容:

    file '0001.png'
    file '0002.png'
    file '0003.png'
    file '0003.png'
    file '0004.png'
    
  2. 然后使用连接解复用器

    ffmpeg -f concat -i input.txt -vf format=yuv420p -movflags +faststart output.mp4
    

另请参阅

相关内容