2

H.264 のサンプル バッファが与えられた場合、それが表すフレームを画像として抽出する方法はありますか?

QTKit を使用してカメラからビデオをキャプチャしQTCaptureMovieFileOutput、を出力オブジェクトとして使用しています。

デリゲート メソッドCVImageBufferRefにパラメーターとして渡されるものに似たものが必要です。QTCaptureVideoPreviewOutput何らかの理由で、ファイル出力にCVImageBufferRef.

私が取得するのは QTSampleBuffer です。圧縮オプションで設定したため、H.264 サンプルが含まれています。

iPhone では、CoreMedia と AVFoundation を使用してCVImageBufferRef、与えられた からを作成できることを確認しました (これは、取得できる限り にCMSampleBufferRef近いと思います) - しかし、これは iPhone ではなく Mac です。QTSampleBuffer

Mac には CoreMedia も AVFoundation もありません。同じタスクを実行する方法が見当たりません。

私が必要としているのは、Output オブジェクトのコールバックによって与えられた H.264 サンプルの現在のフレームからの画像 (CVImageBufferRef、CIImage、または NSImage であるかどうかは関係ありません) です。


拡張情報 (以下のコメントから)

元の問題に焦点を当てた関連する質問を投稿しました - QTKit を使用してビデオ サンプルのストリームを単純に再生しようとしています: Mac OS X で QTKit を使用してビデオ データのストリームを再生する

CVImageBufferRef可能ではないように思われるため、画像データをスケーリング、圧縮、変換NSImageし、ネットワーク経由でピアに送信することにより、フレームを画像として取得し、ビデオの外観を作成しようとしました。

QTCapturePreviewVideoOutput(または解凍) を使用して、圧縮されていないフレーム画像を の形式で取得できますCVImageBufferRef

ただし、これらの画像参照は、使用する前に圧縮、スケーリング、および への変換を行う必要があるNSImageため、 を使用してフレームワークから既にスケーリングおよび圧縮されたフレームを取得しようとしますQTCaptureMovieFileOutput(これにより、前に圧縮と画像サイズを設定できます)。キャプチャを開始する)、CPU を殺す高価な圧縮、スケーリング、および変換操作を実行する必要がなくなります。

4

1 に答える 1

0

この場合、QTKit アプリケーション プログラミング ガイドのシングル フレーム グラビング アプリケーションの作成セクションは機能しませんか?

于 2010-10-10T23:08:50.327 に答える