我一直在玩QTKit几天,我已经成功地使用QTCaptureSession
和QTCaptureDeviceInput
等将视频数据录制到相机中的文件。
但是,我想要做的是将数据发送到另一个位置,通过网络或同一个应用程序内的另一个对象(无关紧要)然后播放视频数据,就像它是一个流一样。
我有一个QTCaptureMovieFileOutput
并且我正在传递nil
作为文件URL,因此它实际上并没有将数据记录到文件中(我只对{中包含的数据感兴趣) {1}}可以通过委托回调获得。
我在输出上设置了一个QTSampleBuffer
对象,指定H264视频和高质量AAC音频压缩。
每次收到回调时,我都会将示例缓冲区中的数据附加到我作为实例变量的QTCompressionOptions
对象中。
我遇到的问题是QTKit框架中没有'播放器'对象似乎能够播放视频数据的“流”。我在这个假设中是否正确?
我尝试使用我的数据实例变量创建一个NSMutableData
对象(在QTMovie
中播放),但我得到数据不是电影的错误。
我是否从错误的角度处理这个问题?
之前我使用QTMovieView
为每个视频帧传递QTCapturePreviewOutput
秒。我正在将这些帧转换为CVImageBufferRef
以显示在视图上
虽然这给人一种流媒体的印象,但它很慢并且处理器处于饥饿状态。
其他人如何克服流媒体视频问题?
答案 0 :(得分:0)
对我而言似乎需要制作GL纹理,然后在每帧的基础上将数据加载到其中。关于QTMovie的一切似乎都基于预先存在的文件,就我的小脑子所知。