我在 Windows 上有 C# .NET 客户端,需要从 .mov 文件中提取开始时间码和持续时间/长度元数据。有谁知道怎么做吗?我在互联网上四处寻找,但还没有找到任何东西。
UnlimitedSprint
问问题
7691 次
2 回答
0
如果您可以调用非托管代码,您也许可以只使用 QuickTime for Windows 来获取此信息。
否则,您想要的所有信息都在电影标题原子中。所有 QuickTime 电影都从时间 0 开始(所以问题解决了一半)并在其指定的持续时间结束,这等于其最长轨道的持续时间。时间是根据电影时间尺度来指定的,它定义了每秒的时间单位数;默认值为每秒 600 个单位。
您可以通过扫描文件查找类型为 的电影头原子的文件来找到电影时间尺度和持续时间'mvhd'
,然后向前跳到原子类型字段开始后 16 个字节的原子的时间尺度和持续时间字段(您找到的“mvhd”)。每个都是一个大端的 4 字节无符号整数。
然而,QuickTime 是一种容器格式,并非所有电影文件都包含电影标题。有些只是指向实际电影数据所在的其他位置的参考或流式电影。即使存在电影标题,也不需要它实际上是文件数据的标题。
您可以在QuickTime 文件格式规范中阅读太多关于 QuickTime 文件格式的内容。(MPEG-4 文件格式实际上是基于 QuickTime 文件格式,所以如果你对此有所了解,知识应该转移。)
于 2009-09-13T04:19:02.380 回答