1

我已经用 QTKit 玩了几天,我成功地能够使用 a 等将视频数据从相机记录到文件QTCaptureSessionQTCaptureDeviceInput

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

我有一个QTCaptureMovieFileOutput并且我nil作为文件 URL 传递,因此它实际上不会将数据记录到文件中(我只对QTSampleBuffer通过委托回调可用的数据中包含的数据感兴趣)。

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

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

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

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

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

以前我使用 a它为每个视频帧QTCapturePreviewOutput传递s 。CVImageBufferRef我正在将这些框架转换NSImages为在视图上显示。
虽然这给人一种流媒体的印象,但它很慢而且处理器很饿。

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

4

1 回答 1

0

在我看来,您需要制作 GL 纹理,然后按帧将数据加载到其中。据我所知,关于 QTMovie 的一切似乎都基于预先存在的文件。

于 2011-09-03T23:09:26.847 回答