我一直在玩QTKit幾天,併成功地使用QTCaptureSession
和QTCaptureDeviceInput
等將視頻數據記錄到相機的文件中。在Mac OS X上使用QTKit播放視頻數據流
然而,我想要做的是將數據發送到另一個位置,通過網絡或同一應用程序內的不同對象(無所謂),然後播放視頻數據,就好像它是一個流。
我有一個QTCaptureMovieFileOutput
,我路過nil
作爲文件的URL,這樣它實際上並沒有數據記錄到文件(我只包含在QTSampleBuffer
是通過委託回調是可用的數據感興趣)。
我在輸出上設置了一個QTCompressionOptions
對象,指定H264視頻和高質量AAC音頻壓縮。
每次收到回調函數時,我都會將樣本緩衝區中的數據附加到作爲實例變量的NSMutableData
對象中。
我遇到的問題是,QTKit框架中沒有'player'對象似乎能夠播放視頻數據的'流'。我在這個假設中糾正了嗎?
我嘗試使用我的數據實例變量創建一個QTMovie
對象(在QTMovieView
中播放),但我得到數據不是電影的錯誤。
我從錯誤的角度來處理這個問題嗎?
此前我使用的是QTCapturePreviewOutput
,它通過每個視頻幀CVImageBufferRef
s。我將這些幀轉換爲NSImages
以在視圖上顯示。
雖然這給人流動的印象,但速度緩慢,處理器飢餓。
其他人如何克服流視頻問題?