我正在尝试使用转码 mjpeg 文件,ffmpeg
但它检测设置不正确。如果文件没有扩展名或扩展名未知,ffmpeg 将正确检测 mjpeg 格式并读取其中的任意数量的帧。
当文件带有扩展名时,它不起作用.jpg
。这会导致 ffmpeg 仅从文件中读取一帧并忽略任何其他帧。
有什么方法可以告诉 ffmpeg 停止根据文件扩展名进行猜测,或者至少实际使用 mjpeg 模块而不是只读取一帧?
我知道,-f image2pipe -i -
但是那需要通过其他环节将文件传送到命令,而不仅仅是将文件名提供给进程,因为我是从没有 shell 的另一个进程执行它。
答案1
我如何告诉ffmpeg
使用格式我想?
(而不是它想它应该使用)
ffmpeg
对其参数的位置很挑剔。听起来你想强制它用作mjpeg
输入格式,这意味着-f
需要前参数-i
。例如:
$ ffmpeg -f mjpeg -i mjpeg_image.jpg <other_options> output
您还可以通过调用 ; 获取受支持格式的列表ffmpeg -formats
,其中D
表示解码(输入)能力,以及E
表示编码(输出)能力。