在Mac OS X上使用QTKit播放视频数据流

问题描述:

我一直在玩QTKit几天,并成功地使用QTCaptureSessionQTCaptureDeviceInput等将视频数据记录到相机的文件中。在Mac OS X上使用QTKit播放视频数据流

然而,我想要做的是将数据发送到另一个位置,通过网络或同一应用程序内的不同对象(无所谓),然后播放视频数据,就好像它是一个流。

我有一个QTCaptureMovieFileOutput,我路过nil作为文件的URL,这样它实际上并没有数据记录到文件(我只包含在QTSampleBuffer是通过委托回调是可用的数据感兴趣)。

我在输出上设置了一个QTCompressionOptions对象,指定H264视频和高质量AAC音频压缩。

每次收到回调函数时,我都会将样本缓冲区中的数据附加到作为实例变量的NSMutableData对象中。

我遇到的问题是,QTKit框架中没有'player'对象似乎能够播放视频数据的'流'。我在这个假设中纠正了吗?

我尝试使用我的数据实例变量创建一个QTMovie对象(在QTMovieView中播放),但我得到数据不是电影的错误。

我从错误的角度来处理这个问题吗?

此前我使用的是QTCapturePreviewOutput,它通过每个视频帧CVImageBufferRef s。我将这些帧转换为NSImages以在视图上显示。
虽然这给人流动的印象,但速度缓慢,处理器饥饿。

其他人如何克服流视频问题?

对我来说就像你需要做一个GL纹理,然后在每帧的基础上加载数据到它。据我所知,QTMovie的一切似乎都基于预先存在的文件。