2011-07-07 24 views
0

AVCaptureSessionからのデータストリームをセミライブストリーミングの方法で取得する必要があります。 AVFoundationでの私の経験では、ファイルをディスクに書き込んだ後でそれを読み取ることしかできません。AVFoundationキャプチャセッションから生データストリームを取得

ストリームを経由してサーバーにパイプしてデータをキャプチャする方法はありますか?

ありがとうございます!

+3

raw PCMを送信する場合は、CMSampledBufferからすべてのデータを取得できます。データの取得方法については、CMSampleBuffer.hおよびCMSampleBufferリファレンスを参照してください。 AACをストリーミングする場合は、CoreAudioを使用する必要があります。これは単純なAudioQueueサービスを使用して行うことができます。 AAC-LDやオーディオキャンセルなどのコントロールが必要な場合は、AudioUnitsを使用する必要があります。 Kevin AvilaとChris AdamsonのCoreAudioの本を調べてください。私はAQオーディオをサーバーにストリーミングするためのテストケースとしてAudioQueue録音コードを使用しました。 –

答えて

2

AVCaptureVideoDataOutputおよび/またはAVCaptureAudioDataOutputを使用して生データを取得できます。

+0

どのようにCMSampleBufferオブジェクトを取得し、それらをサーバーに送信するのに適したNSDataオブジェクトに変換しますか? – DexterW

+2

@Dex:キャプチャしているフォーマットによって異なります。一般に、イメージバッファを取得し、[ここ](http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/05_MediaRepresentations.html#//apple_ref/doc)に示すようにロックします。/uid/TP40010188-CH2-SW4)。次に、 'CVPixelBuffer'関数を使って生データを収集し、すべてのプレーンを取得することができます。 –

+0

私は実際にオーディオを録音しています – DexterW

関連する問題