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

时间:2010-10-04 10:49:02

标签: macos video video-streaming qtkit

我一直在玩QTKit几天,我已经成功地使用QTCaptureSessionQTCaptureDeviceInput等将视频数据录制到相机中的文件。

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

我有一个QTCaptureMovieFileOutput并且我正在传递nil作为文件URL,因此它实际上并没有将数据记录到文件中(我只对{中包含的数据感兴趣) {1}}可以通过委托回调获得。

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

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

我遇到的问题是QTKit框架中没有'播放器'对象似乎能够播放视频数据的“流”。我在这个假设中是否正确?

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

我是否从错误的角度处理这个问题?

之前我使用QTMovieView为每个视频帧传递QTCapturePreviewOutput秒。我正在将这些帧转换为CVImageBufferRef以显示在视图上 虽然这给人一种流媒体的印象,但它很慢并且处理器处于饥饿状态。

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

1 个答案:

答案 0 :(得分:0)

对我而言似乎需要制作GL纹理,然后在每帧的基础上将数据加载到其中。关于QTMovie的一切似乎都基于预先存在的文件,就我的小脑子所知。