有几种解决方案可以在过滤器级别选择每个奇数或偶数图像,它们都有效。但在我的例子中,我有一个 15360x8640 .jpg 文件的输入,无论我输入所有图像并在过滤器中每秒丢弃还是我是否跳过第二个输入图像,都会有很大的不同。它会大大加快编码速度。我的正常输入是(对于五位数字文件,在 win10 x64 上运行):
ffmpeg.exe -framerate 60 -i %05d.jpg -vcodec libx264 out.mkv
我尝试了什么(取自这个线程,可能只适用于 linux 但我无法检查):
ffmpeg.exe -framerate 60 -i %04d%[13579%].jpg -vcodec libx264 out.mkv
以及带有和不带有 glob 选项的各种变体等等。都失败了。总是导致“%04d%[13579%].jpg:没有这样的文件或目录”或类似的东西。
每十帧的一个工作示例(即 00001 00011 00021 等)。
ffmpeg.exe -framerate 60 -i %04d1.jpg -vcodec libx264 out.mkv
有人已经解决了问题或有了新想法吗?
目前有两步解决方案。
创建列表:
dir *1.jpg *3.jpg *5.jpg *7.jpg *9.jpg /b /on | c:\prog\unix\sed "s/^/file /" > "!list.txt"
使用清单:
ffmpeg.exe -r 60 -f concat -safe 0 -i "!list.txt" -vcodec libx264 out.mkv
专业人士:为我节省大约 1 TB 的时间,只是为了在输入级别上以不同方式命名为输入或解码时间的那些文件的副本。与使用我巨大的 .jpg 作为输入在过滤器级别进行转换相比,速度提高了近 1.5 倍。
缺点:似乎比在过滤器级别使用它需要更多的内存,但为什么呢?
有人有更好的解决方案吗?