0

私がやっていること:

複数のオーディオ チャンネルを含む mkv/mka ファイルなど、Apple がサポートしていないオーディオ ファイルとビデオ ファイルを iPhone/iPad で再生する必要があります。

libffmpeg を使用して、メディア ファイル内のオーディオおよびビデオ ストリームを検索しています。ビデオはデコードされてavcodec_decode_video2おり、各関数の戻り値を持つオーディオavcodec_decode_audio3 は次のとおりです。

  • avcodec_decode_video2-AVFrameパッケージからのビデオ ビデオ フレームに関する情報をカプセル化する構造体を返します。具体的にはdata、ピクチャ/チャネル プレーンへのポインタであるフィールドがあります。
  • avcodec_decode_audio3-samplesタイプ int16_t * の戻り値は生のオーディオ データだと思います

つまり、基本的にこれをすべて実行し、メディア コンテンツのデコードに成功しました。

私がしなければならないこと : Apples サービスを使用して、それに応じてオーディオとビデオを再生する必要があります。私が実行する必要がある再生は、ビデオの再生中にオーディオ チャンネルのミキシングをサポートする必要があります。つまり、mkv ファイルに 2 つのオーディオ チャンネルと 1 つのビデオ チャンネルが含まれているとします。どのサービスが私にとって適切な選択になるか知りたいですか? 私の調査によると、AudioQueue サービスはオーディオの再生に役立つ可能性があり、おそらくビデオの場合は AVFoundation であることがわかりました。

私のケースに適したテクノロジー、つまり、ビデオ再生 + オーディオ チャンネルのミキシングが可能なオーディオ再生を見つけるのを手伝ってください。

4

1 に答える 1

2

あなたは正しい道を進んでいます。オーディオのみを再生している (まったく録音していない) 場合は、AudioQueues を使用します。それはあなたのためにミキシングを行います。録音している場合は、AudioUnits を使用する必要があります。Apple の MixerHost サンプル プロジェクトを見てください。ビデオの場合、OpenGL を使用することをお勧めします。イメージ バッファが YUV420 であると仮定すると、単純な 2 パス シェーダ セットアップでこれをレンダリングできます。これを行う方法を示すAppleのサンプルプロジェクトがあると思います。いずれにせよ、OpenGL とシェーダーを使用してピクセル フォーマットを RGBA に変換することで、任意のピクセル フォーマットをレンダリングできます。この助けを願っています。

于 2012-06-22T20:50:24.307 に答える