FFmpeg 写入未压缩的编号文件

FFmpeg 写入未压缩的编号文件

我在使用构造函数通过 FFmpeg 写入未压缩的编号文件时遇到了麻烦%04d(例如)。

对于压缩格式(例如 JPEG 和 PNG)来说,这没问题,但对于未压缩的高质量格式(例如 yuv422p16le),如果我不使用-f image2,FFmpeg 会尝试写入单个文件。
例如,当我使用 时output.%04d.yuv,我希望输出为等output.0000.yuvoutput.0001.yuv但实际输出是单个文件。

但使用时-f image2,输出文件不再解压。
我该如何解决这个问题?


这里有些例子:

此命令生成(不需要的)压缩的、编号的输出文件:
ffmpeg -i input.mov -f image2 -pix_fmt yuv422p16le -pattern_type sequence output.%04d.yuv

此命令生成一个名为的未压缩的输出文件output.%04d.yuv(即它不会扩展%04d):
ffmpeg -i input.mov -pix_fmt yuv422p16le -pattern_type sequence output.%04d.yuv

答案1

选择rawvideo视频编解码器:

ffmpeg -i input.mov -vcodec rawvideo -f image2 -pix_fmt yuv422p16le -pattern_type sequence output.%04d.yuv


当未指定视频编解码器时,FFmpeg 会选择默认编解码器。FFmpeg
为每种格式(每个复用器)定义了一个默认编解码器。复用器
的默认编解码器image2mjpeg(我们可以通过执行:查看默认编解码器ffmpeg -h muxer=image2)。
这就是为什么当-vcodec rawvideo未指定时输出文件以 JPEG 格式编码的原因。

相关内容