有几种解决方案可以在过滤器级别选择每个奇数或偶数图像,它们都有效。但在我的例子中,我输入了 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
有人已经解决了这个问题或者有新的想法吗?
答案1
目前有两步解决方案。
创建列表:
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
优点:仅需将这些文件的副本以不同的名称命名为输入或输入级别的解码时间,即可节省大约 1TB 的数据。与使用大型 .jpg 作为输入在过滤器级别转换相比,速度提高了近 1.5 倍。
缺点:似乎比在过滤器级别使用它需要更多的内存,但为什么呢?
有人有更好的解决方案吗?