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

时间:2012-07-17 11:27:37

标签: c# audio video encoding

我必须从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 7上测试)。

有人有任何建议我们如何做到这一点。

由于 Vijai

2 个答案:

答案 0 :(得分:1)

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

可以找到文件格式的说明here(好的,那就是Quicktime,但它对您的需求几乎完全相同。)

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

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

要找出你需要查看的每种类型的轨道

< MOOV-> TRAK-> MDIA-> HDLR原子并找到其中的组件子类型字段,其将是' soun'对于音频和' vide'视频

其他原子包含您正在寻找的其他字段 - 建议阅读链接文档以了解它。

答案 1 :(得分:0)

可以使用FFMPEG获取该特定信息。控制台应用程序。您可以将FFMPEG的输出定向到您的应用程序。 但是FFMPEG可能在Windows手机上不可用。我不熟悉Windows手机。