問題タブ [stagefright]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android ソース コードでカスタム デコーダーを呼び出す方法
ソフトウェア HEVC デコーダーを Android ソース コードに追加しようとしています。libstagefright.soファイルを生成したいと考えています。
他の同様の質問を参照しましたが、あまり役に立ちませんでした。以下の質問やリファレンス ガイドでは、明確なイメージを得ることができませんでした。
1) コーデックを Android マルチメディア フレームワークに統合します。
2) カスタム デコーダーを統合して、Android で再生し、同時に fps を表示します。
3) 新しいデコーダーを追加するために OMX コアを登録する方法。
新しいカスタム デコーダーを Android に統合する手順を教えてください。
今、media_codecs.xml と{ "OMX.google.h265.decoder" , "hevcdec" , "video_decoder.hevc" }
SoftOMXPlugin.cpp ファイルに を追加しました。
新しい形式を Android ソース コードに追加するには、他にどのファイルを編集する必要がありますか? デコーダのソース コードを呼び出す関数はどれですか (softomxcplugin ソース ファイルはデコーダを呼び出しますか?)。
android - Android MediaCodec はハードウェア コーデックを使用しますか?
Android で使用されているコーデックと混同していMediaCodec
ますか?
以下のリンクから:
MediaCodec
ハードウェアエンコーディングに使用されていることがわかりました。
しかし、その後、私が見ると
Google Summit 2012 での Dave Burke による「Android の新しい低レベル メディア API」プレゼンテーションは、HAL レイヤーを使用してMediaCodec
新しいコーデックを導入するためのアーキテクチャを提供するフレームワークです。OMX IL
[間違っていたら訂正してください。] つまり、ハードウェア コーデックまたはソフトウェア コーデックのいずれかになります。
ハードウェアコーデックが使用されているかどうかを確認するにはどうすればよいですか?
c++ - Android MediaPlayer / Stagefright が RTSP サーバーから SDP を読み取ってクラッシュする
Android の MediaPlayer クラスを使用して RTSP ストリームを再生しようとしています。これを実現するために、MediaPlayer は stagefright というネイティブ ライブラリを呼び出します。このライブラリとメディア フレームワーク全体が、次のエラーでクラッシュします。
したがって、エラーが何であるかは明らかですnalType
.7であるはずのときにアサートが失敗しますが、代わりに22に評価されます.なぜこれが理解できません. コンテキストとして、RTSP ストリームの SDP にsprop-parameter-sets
は、base64 でエンコードされた一連のバイトである属性が含まれています。nalType
base64-decoding の結果の最初のバイトを参照しているようsprop-parameter-sets
です。この場合、これは base64 でエンコードされたバージョンです。
デコードすると、次のようになります。
APacketSource.cpp
以下は、Android 4.4 ソース コードからの関連する抜粋です。
マスクされた後の最初のバイト 0x67 は、0x07 に評価されます。どういうわけか、0x16 に評価されます。これがなぜなのかはわかりませんが、nal->data()
.
ログに出力されるスタックトレースを提供できますが、それは非常に大きく、関連性があるかどうかわかりません。このアサートが失敗するのはなぜですか?
android - Jelly bean 4.1.1 ボート DM3730 でハードウェア エンコーダーを有効にする
問題についての説明が少し長くなることをお許しください。
私はDM3730プロセッサを搭載したカスタムボードを持っており、Androidの手漕ぎボートを構築しています
目的: ハードウェア デコーダーを有効にする。
2.1) そのためには、OMAX-IL インターフェイスが必要です。したがって、TI からダウンロードしたソース コードを調べました。しかし、 OMX 実装を表す hardware/ti/の下にomap3/ ディレクトリが見つかりません。
2.2) したがって、AOSP Jelly Bean Code からダウンロード
2.3) https://source.android.com/devices/media.htmlによると
2.4)次のエントリを保持するようにmedia_codec.xmlを変更しました。
2.5) [注: 私は最新のものを取りました] IE: DVSDKに従って DSP を構築しました
最初に考えて、それが正しいアプローチであるかどうかを確認したいですか? または、私が認識する必要がある他の基盤は何ですか?
どこを打った?
失敗は
3.2 メディア プレーヤーで高解像度ビデオを実行する。以下はlogcatです。
#dspexec -v で試しました
libdspbridge のコードを見ると、デバイス ファイル /dev/dsplink を開き、デバイスをエミュレートします [何をしているのかわかりません] が、デバイスに ioctl を送信するためにエミュレーションが失敗します。
http://androidxref.com/4.1.1/xref/hardware/ti/omap3/dspbridge/libbridge/dsptrap.c
DSPTRAP_Trap は dwResult を -1 として返します。
私の問題がどこにあるかを親切に指摘してください。
アップデート:
発見:
1) dsp-bridge、dsp-link 両方のドライバーが異なり、dsp-link 用に構築された DSP があり、dsp-bridge で試しています。
android - Androidでカメラフレームをmp4にエンコードする方法
Android カメラから640x480 (私には十分) のカメラ プレビュー フレームを取得し、それらにいくつかの変更を加えます。しかし今、それらを新しいMP4
ファイルにエンコードする必要があります(オーディオ付き)。
これはどのように可能ですか?ffmpeg
ライセンスが良くないので使えませんStagefright
が、おそらくそれができるはずのフレームワークを見つけました。しかし、私がしなければならないことを行うための公式ドキュメントやチュートリアルは見つかりませんでした。
このフレームワークでそれを行う方法はありますか? コードは必要ありません。正しい方向を示してくれるだけでとてもうれしいです。
android - [Android] MediaRecorder の setOutputFile(String path) を引き続き使用できるのはなぜですか?
のマルチプレクサ部分を抽出しようとしているMediaRecorder
ので、現在 Android 4.2.2 のソース コードを学習していますが、それは重要ではありません。ここで質問があります。程度setOutputFile(String path)
ですMediaRecorder.java
。
の呼び出し結果MediaRecorder.java
は
しかしStagefrightRecorder.cpp
、それは言います
では、どうすれば を使い続けることができるsetOutputFile(String path)
でしょMediaRecorder
うか? 本当にわかりません。