6

MediaCodec と MediaMuxer を使用してビデオを録画 (エンコード) できます。次に、MediaCodec と MediaMuxer を使用して、オーディオ部分とビデオを含むオーディオを多重化する必要があります。

私は2つの問題に直面しています:

  1. MediaCodec でオーディオをエンコードする方法。オーディオとビデオを別々のスレッドでエンコードする必要がありますか?

  2. オーディオとビデオのデータを MediaMuxer に渡すにはどうすればよいですか (writeSampleData() メソッドは一度に 1 種類のデータしか取りません)。

MediaMuxerTestを参照しましたが、MediaExtractor を使用しています。ビデオのエンコードは MediaCodec で行われるため、MediaCodec を使用する必要があります。間違っている場合は修正してください。

これらの新しい API に関する適切なドキュメントがないため、提案やアドバイスは非常に役立ちます。

ノート:

  1. 私のアプリは API 18+ (Android 4.3+) をターゲットにしています。
  2. ビデオのエンコーディングについては、Grafikaを参照しました。
4

1 に答える 1

5
  1. いいえ、必ずしもオーディオ用に個別のスレッドが必要というわけではありません。2 つの個別の MediaCodec インスタンスを使用するだけです。

  2. の最初のパラメータはwriteSampleDatatrackIndex、各パケットがどのトラックに対応するかを指定できます。(addTrackトラックごとに 1 回ずつ、2 回実行すると、2 つの個別のトラック ID が得られます。)

于 2014-10-29T11:20:56.887 に答える