3

メディア I/O のほとんどのニーズに AV Foundation を使用する 64 ビット Mac OS X Cocoa アプリを持っていますが、他のフォーマット、特に AVI コンテナー内のモーション JPEG も読み取れるようにしたいと考えていますが、おそらく他のものも (サードパーティの QuickTime プラグインでサポートされている他のコーデックとフォーマット)。もちろん、QuickTime 自体は 64 ビット アプリでは使用できないため、これは QTKit につながります。

これはビデオ処理および編集アプリなので、デコードされたサンプル データを取得する必要があります。

QTKit でのフレーム グラブに関する最大のパフォーマンスの問題は、既に解決済みです。興味のある方は、QTMovie を目的のフレーム サンプル時間にステップし、QTMovieFrameImageSessionMode 属性を有効にして QTMovie の -frameImageAtTime を使用して取得し、QTMovieFrameImageType を設定して NSImage の代わりに CVPixelBufferRef を取得します。

しかし、デコードされたPCMオーディオデータを取得することになると途方に暮れます。これは、QuickTime の 7 日間では非常に簡単でしたが、もちろん、64 ビット アプリから QuickTime API を呼び出すことはできません。QTMovie クラスに関連するものは何も表示されません。また、QTTrack レベルにまで下がった場合も同様です。では... 64 ビット アプリはどのようにして QTKit や QuickTime から PCM オーディオを取得するのでしょうか?

ありがとう

4

1 に答える 1

2

私はちょうど同様の問題に苦しんでいます。オーディオ データの抽出に必要な QT API パーツは、64 ビット アプリケーションでは使用できません。オーディオ データを取得するためのすべての関連投稿は、MovieAudioExtractionFillBufferなどを参照しています。

私の解決策は、アプリケーションとプロジェクトの分割です。そのため、32 ビットのオーディオ エクストラクタ プロセスと、IPC メモリ転送を使用してオーディオ データを取得する 64 ビットのメイン アプリケーション プロセスを用意します。

于 2013-05-15T08:45:57.253 に答える