2010-10-04 73 views
1

我一直在玩QTKit幾天,併成功地使用QTCaptureSessionQTCaptureDeviceInput等將視頻數據記錄到相機的文件中。在Mac OS X上使用QTKit播放視頻數據流

然而,我想要做的是將數據發送到另一個位置,通過網絡或同一應用程序內的不同對象(無所謂),然後播放視頻數據,就好像它是一個流。

我有一個QTCaptureMovieFileOutput,我路過nil作爲文件的URL,這樣它實際上並沒有數據記錄到文件(我只包含在QTSampleBuffer是通過委託回調是可用的數據感興趣)。

我在輸出上設置了一個QTCompressionOptions對象,指定H264視頻和高質量AAC音頻壓縮。

每次收到回調函數時,我都會將樣本緩衝區中的數據附加到作爲實例變量的NSMutableData對象中。

我遇到的問題是,QTKit框架中沒有'player'對象似乎能夠播放視頻數據的'流'。我在這個假設中糾正了嗎?

我嘗試使用我的數據實例變量創建一個QTMovie對象(在QTMovieView中播放),但我得到數據不是電影的錯誤。

我從錯誤的角度來處理這個問題嗎?

此前我使用的是QTCapturePreviewOutput,它通過每個視頻幀CVImageBufferRef s。我將這些幀轉換爲NSImages以在視圖上顯示。
雖然這給人流動的印象,但速度緩慢,處理器飢餓。

其他人如何克服流視頻問題?

回答

0

對我來說就像你需要做一個GL紋理,然後在每幀的基礎上加載數據到它。據我所知,QTMovie的一切似乎都基於預先存在的文件。