Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c QTKit:声音的视频上下文模拟_Objective C_Cocoa_Qtkit - Fatal编程技术网

Objective c QTKit:声音的视频上下文模拟

Objective c QTKit:声音的视频上下文模拟,objective-c,cocoa,qtkit,Objective C,Cocoa,Qtkit,我正在编写一个简单的网络视频流应用程序,使用与普通的“H.264 over RTP”方法略有不同的方法(我使用自己的编解码器) 为了实现这一点,我需要QTMovie在播放电影时隐式发送给QTMovieView的原始帧和原始音频样本 检索原始视频帧最常用的方法是使用VisualContext,然后使用显示链接回调,使用该VisualContext“生成”CVPixelBufferRef。因此,我得到的帧的频率与我当前的刷新率同步(我不需要这种同步-我只需要有一个可以通过网络传输的帧“流”-但Cor

我正在编写一个简单的网络视频流应用程序,使用与普通的“H.264 over RTP”方法略有不同的方法(我使用自己的编解码器)

为了实现这一点,我需要QTMovie在播放电影时隐式发送给QTMovieView的原始帧和原始音频样本

检索原始视频帧最常用的方法是使用VisualContext,然后使用显示链接回调,使用该VisualContext“生成”CVPixelBufferRef。因此,我得到的帧的频率与我当前的刷新率同步(我不需要这种同步-我只需要有一个可以通过网络传输的帧“流”-但CoreVideo编程指南和大多数与视频相关的苹果示例都推广了这种方法)

我遇到的第一个问题是,当我将VisualContext附加到QTMovie时,图片无法再渲染到QTMovieView上。我不知道为什么会发生这种情况(我想这与GWorld的概念有关,当我附加VisualContext时,渲染与GWorld“分离”)。好的,至少我有一些帧,我可以将它们渲染到一个简单的NSView上(尽管这听起来是错误的,而且性能不友好。我做得对吗?)

声音怎么样,我不知道该怎么办。我需要在播放电影时获得原始的声音样本(理想情况下-类似于QTCaptureDecompressedOutput在其回调中返回的内容)。 如果没有其他方法,我已经准备好深入研究不推荐的Carbon QuickTime API。但我甚至不知道从哪里开始。我是否应该使用相同的CoreVideo显示链接并以某种方式定期检索声音?我应该获取QTDataReference并手动定位声音帧吗

我实际上是一个视频和音频服务编程的初学者。如果你能分享一些经验,我将非常感激你能与我分享的任何想法:)

谢谢,,
James

我不太确定我是否正确理解了你的问题,但有没有什么特殊原因阻止你使用QTCaptureDecompressedVideoOutput和qtCaptureDecompressedDaudioOutput?它们应该为您提供代理回调中所需的示例缓冲区。