如何将视频分割成单独的编码帧?

How to split a video into individual encoded frames?

源视频是 mp4 容器中的 H264,我正在尝试将其拆分为单独的编码帧。我尝试使用以下命令行:

ffmpeg -i "input.mp4" -f image2 "%d.h264"

但这会创建扩展名为 "h264" 的 jpeg,而不是实际的 H.264 帧。

没有 "h264" 图片这样的东西。 H264 是视频压缩标准,包含许多不同的迭代、配置文件以及 h264 编码器和解码器的专有实现。

如果您尝试将 avi 视频转换为图像序列,则需要确定导出的图像格式。如果不想对媒体重新编码,可以使用 -f image2 参数指定未压缩的图像格式。然后,您可以将输出保存到 bmp、png 或 tiff 容器中。或者,您可以将图像压缩到 .jpg 容器之类的东西中(FFmpeg 可能在您的原始命令中默认使用它,因为您没有告诉它它理解的图像容器)。

.... 编辑:如果由于某种原因你试图创建一系列视频文件,每个文件只包含一个帧,那么用 h264 压缩它们没有任何意义。 H264 是一种基于时间的编码方法,需要不止一帧。我猜你可以制作一系列未压缩的视频文件,每个文件只包含一帧,但我无法想象当图像完成同样的事情时这样做的目的是什么

原来正确的命令行是:

ffmpeg -i "inputfile" -f image2 -vcodec copy -bsf h264_mp4toannexb "%d.h264"