2

「古い」Androidバージョンで生のh264ストリームをデコードしようとしています。MediaPlayer クラスを試しましたが、ストリーム形式をサポートしていないようです。

市場の他のCam Viewerアプリでストリームを見ることができるので、おそらくNDKを使用してそれを行う方法があるに違いないと思います.

OpenMAX と Stagefright について読んだことがありますが、ストリーミングに関する実際の例が見つかりませんでした。

誰かが私を正しい方向に向けてもらえますか?

また、「frameworks/av/include/media/stagefright/MediaSource.h」やその他のソースについていくつかの場所で読んでいますが、通常の SDK にも NDK にもないようです。このソースはどこにありますか? 別のSDKはありますか?

前もって感謝します。

更新: rtsp 接続を受信して​​います。

4

3 に答える 3

3

特定の機能を検証するための簡単な実験のみを実行したい場合は、コマンド ラインstagefrightユーティリティの使用を検討できます。ストリーミング入力がサポートされていない可能性があるこの条件を考慮してください。

より包括的なプレーヤー パイプラインを構築したい場合は、こちらまたはこちらrtspのように処理を検討できます。これはストリーミング データのジッタとして機能する実装を提供するため、ストリーミング入力には実装が不可欠であることに注意してください。httpNuCachedSource2page cache

1 つの重要な点に注意してください: コマンド ラインstagefrightユーティリティは画面にレンダリングされません。したがって、レンダリングする場合は、レンダリングを使用して完全な再生パイプラインを実装する必要があります。

関連する注意事項として、入力がの場合、標準プレーヤーの実装では、ここstreaming inputで確認できるようにストリーミング入力がサポートされています。同じ問題に直面しましたか?

fadden がすでに指摘しているように、MediaCodecin を導入することで作業がはるかに簡単になりAndroid 4.xます。

于 2014-01-09T00:44:45.843 に答える
3

Stagefright と OpenMAX IL は、Android の内部コンポーネントでした (今もそうです)。MediaSource.hコード (を含む) はhttps://android.googlesource.com/platform/frameworks/av/+/masterで見つけることができます。メディア フレームワークが別の「ツリー」に移動したのはframeworks/av最近のことです。「frameworks/base」の一部になる前は、たとえばhttps://android.googlesource.com/platform/frameworks/base/+/gingerbread/media/

于 2014-01-09T09:36:29.527 に答える