检测mp4文件

问题描述 投票:4回答:4

我必须设计一个检测mp4文件的模块。如果将获得任何随机文件作为输入,则必须告诉它是否是mp4文件。在哪里可以找到mp4文件头的规范?尝试使用谷歌搜索,但除签名外找不到其他内容。关于模块的C编程的其他技巧吗?

c mp4
4个回答
7
投票

您可以检查扩展名或文件签名(幻数

http://www.garykessler.net/library/file_sigs.html

http://en.wikipedia.org/wiki/List_of_file_signatures

00 00 00 18 66 74 79 70 33 67 70 35 .... ftyp 3gp5 MPEG-4视频文件

或者,如果您使用的是Unix / Linux,则可以从程序中解析file(1)的输出。

编辑:

您无需扫描整个文件即可识别它,签名即可,但是,如果需要的话,请注意MP4是其他格式的container,这意味着您可能需要知道关于MP4及其包含的其他格式,这里有一些信息:http://en.wikipedia.org/wiki/MPEG-4_Part_14

我会使用类似libffmpeg的方法来做到这一点。


1
投票
  • ISO基本媒体文件格式是免费提供的,MP4文件格式是“基本媒体格式”的扩展,在大多数情况下,它足以理解“基本媒体格式”。尝试谷歌将返回一个标准。

  • 要检测文件是否为MP4,您需要读取前8个字节,其中包含(前4个字节为ATOM的大小,后4个字节为“ FTYP”)。之后,它包含大品牌和兼容商标-如果它们之一是ISOM,则肯定是MP4文件。因此,您只需要解析最初的几个字节即可确认MP4文件。

您还可以查看“ mp4v2-1.9.1”代码以了解MP4格式。


0
投票

这是一种容器格式。 The specification is here

即使手头有规范,您仍然需要做很多工作来支持程序中所有要表示的容器。设置切合实际的要求。


0
投票
将文件读取为字节[],然后解析mime。
© www.soinside.com 2019 - 2024. All rights reserved.