3

私はビデオ会議プロジェクトに取り組んでいます。ビデオ フレームのエンコードとデコードにソフトウェア コーデックを使用していましたが、これは低解像度 (最大 320p) で問題なく動作します。また、最大 720p までの高解像度のアプリケーションをサポートする予定です。ハードウェア アクセラレーションがこの仕事をかなりうまくやってのけることを知りました。

ハードウェア コーデック API メディア コーデックは Jelly Bean 以降で使用できるため、エンコードとデコードに使用しましたが、正常に動作しています。しかし、私のアプリケーションは 2.3 からサポートされています。したがって、30fps で 720p の H.264 フレームのハードウェア アクセラレーション ビデオ デコードが必要です。

H.264 のハードウェア デコーダーは 2.1 から、エンコーダーは 3.0 から利用できると読んだことがあります。このサイトに掲載されている多くの記事や質問を確認し、先に進むことができることを確認しました。

私は舞台恐怖症のアーキテクチャについてここで読んでいました - 建築とここ - 舞台恐怖症がどのように機能するか

そして、ここで OMX コーデックについて読みました- use-android-hardware-decoder-with-omxcodec-in-ndk

起動に問題があり、その実装についていくつかの混乱があります。それについての情報が欲しいです。

  1. コードで OMX コーデックを使用するには、Android ソース ツリー全体を使用してプロジェクトをビルドする必要があります。または、AOSP ソースからいくつかのファイルを追加することで実行できます (はいの場合)。
  2. それを達成するために従うべき最初からの手順は何ですか。

誰かがこれに関するガイドラインを教えてもらえますか

ありがとう...

4

1 に答える 1

5

OMXCodecのネイティブ レイヤーへの統合を説明する最良の例は、ここstagefright確認できるコマンド ライン ユーティリティです。この例は、 がどのように作成されるかを示しています。GingerBreadOMXCodec

注意すべき点:

  1. への入力OMXCodecは としてモデル化する必要があるMediaSourceため、アプリケーションでこの要件を確実に処理する必要があります。MediaSourceベースのソースを作成する例は、recordユーティリティ ファイルにDummySource.

  2. デコーダーへの入力、つまりメソッドをMediaSource介してデータを提供する必要があるreadため、アプリケーションは呼び出しごとに個別のフレームを提供する必要がありますread

  3. NativeWindowデコーダーは、出力バッファーの割り当て用に作成できます。この場合、CPU からバッファにアクセスする場合は、詳細についてこのクエリを参照する必要があります。

于 2014-06-05T05:48:10.597 に答える