如何分析文件并检测文件是否为H.264视频格式?

时间:2016-10-05 09:16:11

标签: c++ c video ffmpeg

我编写软件C / C ++来恢复已删除的文件,我需要根据文件的二进制内容来识别文件,所以我的问题是有一个简单的方法可以知道特定文件是否是H.264格式的视频? H.264有签名吗?

我看到了FFMPEG here的代码,但它可以帮到我,怎么样?

3 个答案:

答案 0 :(得分:3)

问题在于H.264不是文件格式,它是视频压缩标准,因此它可以在多种文件格式中找到。您可以使用H.264编码.f4v,尽可能使用H.264编码.mp4。

那么,你如何解决你的问题?好吧,我强烈建议你使用一个为你做这个的库。例如,libavformat应该可以解决问题(检查AVStreamAVFormatContext结构以及avformat_open_input函数)。

现在,如果您绝对不想使用库,可以查看支持H.264的each video container format文档,了解如何检索视频流的编码信息,但希望这样做你至少一两个月。

答案 1 :(得分:1)

如果你想使用FFmpeg - avformat_find_stream_info()应该帮助你。 there就是一个例子。

答案 2 :(得分:0)

对于遇到此问题但正在寻找cli解决方案的人,您可以使用ffprobe

ffprobe -loglevel error -select_streams v -show_entries stream=codec_name -of default=nw=1:nk=1 input.mkv

输出:

h264