获取.MP4文件中音频和视频流的计数及其属性



我必须从MP4文件中获得以下信息

Count of video streams
Count of audio streams
For each video stream:
* language
* bitrate mode (fixed or variable)
* maximum bitrate
* length (seconds)
* stream size (megabytes)
* frame size
* framerate
* codec info
* codec profile
for each audio stream:
* language
* bitrate mode (fixed or variable)
* maximum bitrate
* length (seconds)
* stream size (megabytes)
* channels count
* codec info

这必须是一个完全管理和安全的代码,并且必须在Windows Phone 7上运行(在Windows Phone上测试)。

有人对我们怎么做有什么建议吗。

谢谢Vijai

所有这些信息(以及更多信息)都以MP4文件格式提供。如果必须以编程方式执行此操作,则可能需要解析MP4文件,但这并不太难。

文件格式的描述可以在这里找到(好吧,这是Quicktime,但它几乎完全符合您的需求。)

你需要找到一堆原子并从中读取值。原子(或有时称之为盒子)与包含其他盒子的盒子是分层的。

要找到"流"的数量,你需要轨道的数量-每个轨道都有一个TRAK原子(原子都有四个字符的名称)。你可以通过查看顶级MOOV原子并计算其中有多少TRAK原子来找到它。

要了解每一条轨道是什么样的,你需要查看

MOOV->TRAK->MDIA->HDLR原子,并找到该原子的组件子类型字段,该字段将为音频的"soun"和视频的"vide"

其他原子包含你正在寻找的其他字段——建议阅读链接的文档来找出它。

特定信息可以通过FFMPEG获得。consolea应用程序。您可以将FFMPEG的输出定向到您的应用程序。但是FFMPEG可能在Windows手机上不可用。我不熟悉Windows手机。

最新更新