我需要以半實況流式的方式從AVCaptureSession獲取數據流。根據我對AVFoundation的經驗,我只能將文件寫入磁盤,然後將其讀出。從AVFoundation Capture Session獲取原始數據流
有沒有一種方法來捕獲通過流傳輸到服務器的數據?
謝謝!
我需要以半實況流式的方式從AVCaptureSession獲取數據流。根據我對AVFoundation的經驗,我只能將文件寫入磁盤,然後將其讀出。從AVFoundation Capture Session獲取原始數據流
有沒有一種方法來捕獲通過流傳輸到服務器的數據?
謝謝!
您可以使用AVCaptureVideoDataOutput
和/或AVCaptureAudioDataOutput
獲取原始數據。
如何獲取CMSampleBuffer對象並將它們轉換爲適合發送到服務器的NSData對象? – DexterW
@Dex:取決於您捕捉的格式。一般來說,你會得到圖像緩衝區並鎖定它[如圖所示](http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/05_MediaRepresentations.html#//apple_ref/doc/UID/TP40010188-CH2-SW4)。然後,您可以使用'CVPixelBuffer'函數收集所有飛機的原始數據。 –
我實際上只錄制音頻 – DexterW
如果您想發送原始PCM,那麼您可以從CMSampledBuffer中獲取所有數據。查看CMSampleBuffer.h和CMSampleBuffer參考以瞭解如何獲取數據。如果你想傳輸AAC,那麼你將需要使用CoreAudio。您可以使用簡單的AudioQueue服務來做到這一點。如果您需要更多控制,例如使用AAC-LD或音頻取消,則需要使用AudioUnits。查看Kevin Avila和Chris Adamson的CoreAudio手冊。我使用AudioQueue錄製代碼作爲將AAC音頻流式傳輸到服務器的測試用例。 –