ffmpeg 带有一组未格式化为 %d.jpg 的图像文件

Rob*_*ens 5 android ffmpeg

我正在使用 ffmpeg 将一组 jpg 编译成视频。关于这一点有很多文章,但似乎唯一的方法是将图像命名为连续的填充数字,例如0001.jpg0002.jpg...

ffmpeg 文档指出可以使用其他类型的模式,例如%*.jpg捕获所有*.jpg文件,但我自己使用的唯一模式是%0Nd-type 模式。手册仅提到该类型。

我真的想让 ffmpeg 使用一组具有任意名称的图像。它将大大简化我的应用程序,在插入和删除图像等时更轻松地保持缩略图和元数据同步。由于我在 Android 上工作,因此创建链接不是一个选项。有什么办法可以做到这一点吗?

我也愿意修改 ffmpeg 源代码或使用 C api 来让它执行我想要的操作,但我无法在代码中找到正确的位置来执行此操作,也找不到 C api 的适当文档。有什么建议吗?谢谢。

bla*_*lah 2

image2 de muxer的当前文档(与您链接的 muxer 不同!)仅建议两种可能的名称:

  • 文件名模式包含“ %d”或“ %0Nd”,并且帧按顺序编号,第一帧编号不超过4。
  • 通过指定不带“”模式的名称,可以将单个图像用作输入%d

我认为短期内不太可能支持任意命名的帧文件作为输入,因为这是一种不寻常的情况;大多数人关心帧的顺序,最简单的排序方法是使用顺序号。

也就是说,您可以看看concat 输入协议,它可能适合您的目的。但请注意,我现在无法让它在简短的测试中连接一些图像,因此它可能仅限于字面可连接的格式,例如mpg.