如何从.mov文件中提取开始时间码和持续时间/长度元数据?

问题描述 投票:5回答:2

我在Windows上具有C#.net客户端,需要从.mov文件中提取开始时间码和持续时间/长度元数据。有人知道该怎么做吗?我在网上四处张望,但尚未找到任何东西。预先感谢您的宝贵时间。

c# .net quicktime
2个回答
0
投票

我不知道任何能够解析.mov文件的C#库。您可以在您的环境中调用非托管代码吗? (需要FullTrust权限)

自己解析文件确实很困难(我们曾经在DirectShow过滤器中进行过解析,所以我建议使用库来为您完成这项工作。看例如MediaInfoffmpeg

MP4容器与.mov文件非常相似,因此您也可以使用mp4box之类的MP4工具提取非常详细的信息(例如,获取开始时间码)


0
投票

如果可以调用非托管代码,则可以仅使用Windows的QuickTime来获取此信息。

否则,您想要的所有信息都在电影标题原子中。所有QuickTime电影都从时间0开始(因此解决了一半的问题),并在其指定的持续时间结束,该持续时间等于其最长轨道的时间。时间是根据电影时间标度来指定的,该时间标度定义了每秒的时间单位数。默认值为每秒600个单位。

您可以通过扫描文件以查找其类型为'mvhd'的电影标头原子,然后向前跳至原子的时间标度和持续时间字段,该原子距标头的开头16个字节,来查找电影的时间标度和持续时间。原子类型字段(您找到的“ mvhd”)。每个都是4位大字节序无符号整数。

QuickTime是一种容器格式,但是,并非所有电影文件都包含电影头。有些只是参考电影或流电影,它们指向实际电影数据所在的其他位置。即使存在影片标题,也没有要求它实际上是文件数据的标题。

您可能对QuickTime File Format Specification中的QuickTime文件格式了解太多。 (MPEG-4文件格式实际上是基于QuickTime文件格式的,因此,如果您对此有所了解,则应该转移知识。)

热门问题
推荐问题
最新问题