我一直想知道是否有可能找出用于解压缩Quicktime Movie的编解码器(如h.264,motion jpeg ..),最好是NSString
。我搜索了Quicktime
和QTKit
api以及所有可获取的属性但没有成功,但我确信必须有办法做到这一点,但是如何?
答案 0 :(得分:2)
我认为你遇到了这个困难,因为你误解了Quicktime电影的本质 - 询问电影的编解码器是什么没有意义,这就是为什么你没有找到它的原因。电影文档。
Quicktime电影由一系列曲目组成(例如视频曲目,音轨等),每首曲目都会引用一个或多个媒体(实际数据) 。它是使用特定编解码器压缩的媒体。通常情况下,电影会有视频轨道和音频轨道,例如,每个电影都将使用不同的编解码器压缩(h.264和aac) - 因此没有一个编解码器整部电影。
要找到用于压缩电影视频轨道的编解码器(听起来就像你想要做的那样),你需要首先从电影中获取对该轨道的引用,然后获取对该媒体的引用。该轨道,然后找出用于该媒体的编解码器。要获取有关如何存储特定媒体对象的样本的信息,您需要使用 getmediasampledescription 调用。
如果您正在使用QTKit,请通过调用[media quicktimeMedia]获取C级媒体参考 - 然后您可以将其传递给getmediasampledescription以获取您正在寻找的信息 - 编解码器4位数标识符位于cType返回的样本描述的字段。
此苹果支持列表中有一些示例代码:
http://lists.apple.com/archives/cocoa-dev/2005//Aug/msg00556.html