現在、Android を Skype エンドポイントとして使用しようとしています。この段階で、ビデオを H.264 にエンコードし (Skype でサポートされている唯一の形式であるため)、ストリーミングを機能させるために RTP でカプセル化する必要があります。
どうやら はMediaRecorder
、さまざまな理由からこれにはあまり適していません。1 つは、終了後に MP4 または 3GP ヘッダーを追加するためです。もう 1 つの理由は、レイテンシを最小限に抑えるために、ハードウェア アクセラレーションが役立つ場合があるためです。MediaCodec
そのため、フレームワークへの最近の低レベルの追加である being 、MediaExtractor
などを利用したいと思います。
現時点では、以下のような活動を予定しています。カメラはビデオをバッファに書き込みます。MediaCodec はビデオを H264 でエンコードし、結果を別のバッファーに書き込みます。このバッファは、ストリーム データをサーバーに送信する RTP カプセル化装置によって読み取られます。これが私の最初の質問です。この計画は実行可能だと思いますか?
今、私はすでにステップ1で立ち往生しています。カメラの使用に関するインターネット上のすべてのドキュメントは を使用しているMediaRecorder
ため、エンコードする前に生データをバッファに保存する方法が見つかりません。addCallbackBuffer はこれに適していますか? 誰かが例とのリンクを持っていますか?
次に、MediaCodec に関する多くのドキュメントを見つけることができません (かなり新しいため)。堅実なチュートリアルを持っている人はいますか?
最後に: RTP ライブラリに関する推奨事項はありますか?
よろしくお願いします!