QuickTime 学习资料一

来源:互联网 发布:张北云计算 编辑:程序博客网 时间:2024/05/01 15:41
 
       接触MAC下的QuickTime开发也有一段时间了,一直也没有时间纪录下学习过程中的点点滴滴,现在我就简单讨论一下苹果QuickTime开发的难点,重点,也希望有相关技术的兄台能给点指点,不胜感激!
       MAC下作音视频开发首先你要弄清楚苹果下的视频格式,我就简单介绍一下苹果自己的视频格式.MOV格式,.MOV格式是对图片视频的压缩,归纳起来就是单个图片按照播放顺序进行解码和显示,其中没有用到帧间参考(这是我自己理解的,有不正确的地方欢迎大家指正)。但像MPEG2,MPEG4等视频压缩格式都存在帧间的参考,如P帧的前向参考和B帧的前向参考和后向参考。
       Mac下的视频流程和DirectShow的流程有一定的相似度,但又存在很大的区别,首先你应该了解一下几个概念:
       Movie ToolBox (提供控制Movie播放的上层Api函数和驱动力)。
       Image Compress Manager (提供音视频压缩,解码的上层Api以及和底层交互的参数变量)。
       QuickTime下没有Filter的概念,每一个播放环节都进行了模块化,成为Component(构件)。苹果提供犹如Movie Import Component,Media Handler Component,Decompress Component,Clock Component,Compress Component等等,具体要用到的可以参考Mac的IDC。
       QuickTime 对媒体的播放可以理解成下面这样:
              首先:你需要利用Movie Import Component 将媒体引入填充到一个Movie框架中。
              其次:在Media Handler Component 中要对这个Movie 框架中的数据进行读取。
              再次:将读取的数据通过Decompress Component进行解压缩到一个系统制定的buffer中就可以实现现实。
              最后:就是通过对各个函数的实现来进行媒体播放的控制。
       MAC下写Component不存在类继承的概念,但是提供了一个Delegate的对象,也就是相当于系统帮你实现不需要的部分,这个和继承有点相似。所以写Component不需要自己实现每一个功能,只要找到一个合适的Component就可以帮你完成大部分功能,这个我们一般选取base的对象。