0

Androidでエンコーダーを構築する必要があります。カメラでキャプチャしたビデオ ストリームを にエンコードしようとしていh.264ます。
ファイルはあるのlibffmpeg.soですが、使い方がわかりません。

私はこれが初めてです。誰か提案をしてもらえますか?

4

1 に答える 1

0

Android でライブラリを使用するには、コンポーネントFFMPEGと同じものを統合する必要がありOMXます。

ffmpegコンパイルと生成についてOMXは、次のリンクを参照できます: FFmpeg on Android

コンポーネントの準備ができたらOMX、同じものを に含めて、同じものを Android に統合する必要がありますmedia_codecs.xml。特定のエンコーダーを常に呼び出したい場合は、コーデックがリストに登録されている最初のコーデックであることを確認してください。

エンコーダーについては、いくつかの重要な点を考慮する必要があります。

1 つ目は、OMXシステムを最適化する場合、ソース (カメラ、サーフェス、またはその他のソース) からエンコーダ コンポーネントの入力ポートへのフレームのコピーを回避したい場合があります。したがって、コーデックはメタデータを介したバッファの受け渡しをサポートする必要があります (参照: http://androidxref.com/4.2.2_r1/xref/frameworks/av/media/libmediaplayerservice/StagefrightRecorder.cpp#1413 )。このトピックに関する詳細情報が必要な場合は、別の質問を提起してください。

2. エンコーダーはOMX標準のインデックスといくつかの新しいインデックスをサポートする必要があります。たとえば、 では、 でサポートされMiracastている新しいインデックスprependSPSPPStoIDRFramesが導入されていgetExtensionIndexます。参考までに、 http://androidxref.com/4.2.2_r1/xref/frameworks/av/media/libstagefright/ACodec.cpp#891を参照してください。

前述のインデックスに加えて、エンコーダーはブール値をenableGraphicBuffers持つ新しいリクエストも取得します。FALSEこれら 2 つのインデックスの最も重要な点は、OMXこれら 2 つのインデックスが呼び出されたときにコンポーネントが失敗しないようにすることです。

Stagefrightこれらの変更により、エンコーダーをフレームワークに統合できるはずです。

于 2013-04-11T06:16:07.073 に答える