找出文件是视频还是ffmpeg的图像

时间:2014-06-02 17:31:09

标签: c image video ffmpeg

在使用ffmpeg库时,有没有直接的方法可以找出文件是图像还是视频?

我知道我可以从AVCodecContext(https://www.ffmpeg.org/doxygen/trunk/structAVCodecContext.html)获取codec_id,但枚举位于https://www.ffmpeg.org/doxygen/trunk/group__lavc__core.html#gaadca229ad2c20e060a14fec08a5cc7ce

真的很大,似乎没有分类......

1 个答案:

答案 0 :(得分:1)

好的,在调查ffprobe来源后似乎我找到了一些有帮助的东西(不确定它是否100%可靠)

AVFormatContext->iformat->name

但那里有类似的问题..很多未分类的可能性。除了在图像的情况下它返回“image2”/“gif”/“ico”。可以显示更多图片格式,所有支持的图片都列在http://www.ffmpeg.org/general.html#Image-Formats

如果它不是图像,则必须分析所有流并检测其中的视频流(知道它是视频而不是音频或字幕文件)。基本上检查:

AVFormatContext->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO

首先检查iformat->名称仍然是必要的,因为流检查会为图像和视频返回AVMEDIA_TYPE_VIDEO。