是否有一个标志可以让 ffmpeg 从磁盘按顺序读取输入,而不是使用随机访问

是否有一个标志可以让 ffmpeg 从磁盘按顺序读取输入,而不是使用随机访问

ffmpeg 中是否有一个选项可以让它从文件的开始到结束按顺序读取,而不尝试检查文件末尾是否最终有元数据?

背景是我似乎面临这样一种情况:.mxf 文件中仅存在页脚(加上索引重复)就会导致大量的处理错误。

实际上,这与 ffmpeg.exe 无关,而是与某些第三方软件使用的 libavcodec 有关,但该第三方软件确实允许我指定用于打开 mxf 文件的 ffmpeg 选项。

删除几个字节(例如 40Gb 输入文件末尾的 10kb)会导致正确处理文件,这就是我要求强制顺序读取的方法的原因。

我尝试使用 -re 选项,但它仍然解析“页脚”信息。

答案1

您可以尝试通过管道传输文件:cat file.mxf | ffmpeg -f mxf -i - out.mp4

但一般来说,ffmpeg 没有通用的读取文件例程。ffmpeg 首先根据探测器识别输入的格式,然后依靠格​​式特定的模块(解复用器)来解析它。如果该解复用器中的某个例程寻找恰好位于末尾的数据,但它会去那里。

第二种方法是使用子文件协议。这允许您向 ffmpeg 呈现受限文件,即您可以指定文件的“开始”和“结束”应该在哪里,例如

ffmpeg -i "subfile,,start,183241728,end,366490624,,:file.mxf"

这告诉 ffmpeg 提取从文件字节偏移量开始到183241728偏移量结束的段366490624作为输入。

相关内容