2017-10-10 11 views
0

最近、Apple Core Audio C++ APIを使用してオーディオデコードタスクを完了しました。OSXネイティブAPIビデオデコードC++

ここでは、ビデオファイルのフレームの未加工の非圧縮データを、C++のネイティブOSX API(Windows OS上のDirectShowまたはMedia Foundationのアナログ)で再度取得することに興味があります。

私は利用可能なAPI(AVFoundation、Core Videoなど)を見てきましたが、仕事を行い、C++を通じてアクセス可能なフレームワークを見つけることができませんでした。

私の質問は、このタスクのためにピックアップするのに最も適したフレームワークですか?

答えて

1

AVFoundationAVAssetReaderを使用して、ファイルから生のビデオデータを読み取ることができます。

AVAssetReaderを作成し、nil出力設定のAVAssetReaderTrackOutputを追加してから、完了するまでcopyNextSampleBuffer()を呼び出します。

しかし、非常に特殊なニーズがある場合を除いて、生のコーデックビデオデータが非常に役立つことはほとんどありません。ビデオを表示しようとしていますか?その場合、AVPlayerLayer/AVPlayerAVFoundation)がおそらくあなたが探しているものです。あなたが何かより低いレベルを望むなら、CoreMedia/VideoToolboxがあなたのためかもしれません。 AVFoundationは客観的なCフレームワークなので、objective-C++を使用しますが、CoreMediaVideoToolboxはCフレームワークです。

+0

お返事ありがとうございます。私はこのプロジェクトをしばらくの間脇に置かなければなりませんでしたが、今私はこの作業を再開しています。私はちょうどフレームごとにピクセルの生の非圧縮rgb値を取得する必要があります。私はビデオ(自分で実装したもの)でカスタムフィルタを実行したいので、生のピクセルデータは入力ファイルから取得する必要があります。私はあなたの提案を試してみて、結果についてあなたに知らせます。ありがとう。 – mbaros

+1

ああ、フレームデータの場合、rilba(おそらく)を指定して、nil以外のオプションを渡す必要があります。私は自分の答えを更新することができます。 –

+0

それは素晴らしいだろう。ありがとう – mbaros

関連する問題