您如何安全地识别 mp4 是纯音频文件还是视频文件

Posted

技术标签:

【中文标题】您如何安全地识别 mp4 是纯音频文件还是视频文件【英文标题】:How do you safely identify whether an mp4 is an audio only or video file 【发布时间】:2011-01-17 13:01:49 【问题描述】:

给定一组 mp4 文件,我只想识别音频文件而不是视频文件。以前我通过确保只有一个 trak atom 来做到这一点,并且该 track atom 包含一个 trak.mdia.minf.smhd atom 但后来发现这不包括一些有效的音频文件。

所以现在我检查文件中找到的每个 trak 原子,只有在我们在任何原子中找到 trak.mdia.minf.vmhd 原子或者我们没有找到至少一个 trak.mdia.minf.smhd 原子时才会拒绝。但我确信这不是无懈可击的,因为必须有不使用 vmhd 原子的视频格式。

最好的方法是什么?

【问题讨论】:

【参考方案1】:

您可以在trak->mdia->hdlr->handlerType 中查找轨道类型,其中handlerTypesoun 用于音频或vide 用于视频。

【讨论】:

感谢听起来比我最终为每个 moov.trak.mdia.minf 原子所做的要简单一些,如果它包含一个 vmhd 原子意味着视频。我猜无论您采用哪种方式,您都需要检查每个 trak atom,虽然可以拥有多个 trak atom,但如果您发现任何包含 vmhd atom 或处理程序类型的 vide,则拒绝。

以上是关于您如何安全地识别 mp4 是纯音频文件还是视频文件的主要内容,如果未能解决你的问题,请参考以下文章

如何使用fineuploader或javascript检测MP4文件是音频还是视频?

m3u8格式的视频文件怎么转成Mp4在电脑上播放?

如何使用 java 合并 .webm(音频)文件和 .mp4(视频)文件?

使用 ffprobe 检查文件是音频还是视频

如何从MP4视频文件中抽取MP3音频?

如何使用 Servlet 流式传输 MP3、MP4、AVI 等音频/视频文件