如何将视频文件(例如mpeg)转换为图像集合?

Dou*_*ell 5 c++ java video mpeg

如何将视频文件(例如mpeg)转换为图像集合?

理想的答案将涵盖使用可用库的C++和Java,以及如何手动从视频文件中删除单个帧以获得某些常见的视频格式.

Mec*_*ail 6

要无损地提取所有帧,请使用

ffmpeg -i "$input_file" -f image2 "outdir/%05d.png"
Run Code Online (Sandbox Code Playgroud)

如果您喜欢不同的输出格式,只需更改.png; 默认情况下,ffmpeg将从扩展名推断文件类型.

该选项-f image2告诉ffmpeg写入一系列图像.在"outdir/%05d.png"给出了一个文件名模式,在这种情况下" 5-digit frame number.png".

如果您只想每秒提取n帧,请在之后添加选项.(我认为n可以是浮点数.)-r n"$input_file"

如果您的视频是Motion JPEG(mjpeg),请改用:

ffmpeg -i "$input_file" -vcodec copy -f image2 "outdir/%05d.jpg"
Run Code Online (Sandbox Code Playgroud)

这直接从视频流解包帧,这更快,显然使用更少的磁盘空间.

有关更多信息/其他选项,请参见手册页或文档(搜索image2).