Jelly Beanの前のAndroidのH.264のハードウェアアクセラレーションビデオデコード
-
21-12-2019 - |
質問
ビデオ会議プロジェクトに取り組んでいます。ソフトウェアコーデックは、符号化および復号化されたビデオフレームの復号化(最大320p)には細かくなりました。私達は720pまでの高解像度のための私達の申請を支援することを計画しました。ハードウェアの加速がこの仕事をかなりよくすることを知っていました。
ハードウェアコーデックAPIメディアコーデックはJelly Beanから入手可能で、符号化と復号化のためにそれを使用しており、うまく機能しています。しかし、私のアプリケーションは2.3からサポートされています。そのため、30FPSで720PのH.264フレームのハードウェアアクセラレーションビデオデコードが必要です。
舞台距離フレームワークを変更することによってOMXコーデックを使用するという考えに遭遇しました.H.264用のハードウェアデコーダが2.1から入手可能で、エンコーダは3.0からあります。私はこのサイトに記載されている多くの記事や質問を経験しており、先に行くことができることを確認しました。
舞台恐怖アーキテクチャについて読んでいたこちら-Achtivery とこちら - StageFright
そして私はOMXコーデックについて読みました android-hardware-decoder-with-omxcodec-in-ndk
解決
ネイティブレイヤ内のOMXCodec
の統合を説明するための最良の例は、監視可能なコマンドラインユーティリティstagefright
です。ここに GingerBread
自体。この例では、 OMXCodec
が作成される方法を示します。 a>。
-
OMXCodec
への入力は、MediaSource
としてモデル化されるべきです。したがって、アプリケーションがこの要件を処理するようにする必要があります。MediaSource
ベースのソースを作成するための例は、record
UtilityファイルDummySource
-
デコーダへの入力は、
MediaSource
メソッドを介してデータを提供する必要があります。したがって、アプリケーションはread
呼び出しごとに個々のフレームを提供する必要があります。 -
デコーダは、出力バッファ割り当て用に
read
を使用して作成できます。この場合、CPUからバッファにアクセスしたい場合は、おそらく詳細については、このクエリ