C ++ / C从视频文件中提取特定帧

时间:2018-04-13 06:39:02

标签: video ffmpeg

正如标题所说,我想从视频文件中提取某些帧。现在我可以使用FFmpeg命令行工具来做到这一点。

ffmpeg -i in_video.avi -vf "select=gte(n\,100)" -vframes 1 out_img.png

但是我不能直接使用FFmpeg命令行工具。 我可以在C / C ++中提取特定的框架吗?

1 个答案:

答案 0 :(得分:3)

Here是来自FFmpeg的解码视频的示例。只需修改它,以便不是将所有帧写入输出视频文件,而只是寻找所需帧的位置,然后解码该单帧并将其写入文件。寻求查看av_seek_frame。寻求的技巧是它需要pts,但你可以通过获取流的时基并乘以帧索引从帧索引中获取pts。