私の要件は、Android アプリでライブ ビデオ ストリームを再生できることです。ストリームは RTSP/RTP 経由になります。ソースを制御することはできません。また、RTP ペイロードが、開発者ガイドビデオ エンコーディングの推奨事項 に記載されている要件を満たしていないようです。具体的には、次の要件がビデオ ソースによって違反されているようです。
3GPP および MPEG-4 コンテナーの場合、moov アトムはすべての mdat アトムより前にある必要がありますが、ftyp アトムの後に続く必要があります。
基本的に、生の H264 データ (コンテナーにラップされていない) を取得しているように見えます。
今、
MediaPlayer
Android 2.2 Samsung Galaxy Tab のクラスを使用して、このストリームを再生できませんでした。- ただし、Android 2.3 Samsung Galaxy S ではプレイできました。
- 一部のサードパーティ アプリ (MX Player) は、2.2 Galaxy Tab でも同じストリームを再生できました。
上記のケース 2 と 3 の両方で、DDMS ログは、Stage Fright フレームワークが内部で使用されていたという事実を指摘しましたが、ケース 1 では、PVP (つまり、OpenCore) が使用されていました。これらすべてから、次のように結論付けられます。
- 私のストリームは OpenCore フレームワークで再生できません。
- Android 2.2 でも、私のストリームは Stagefright を使用して再生できます
それは私の質問に私をもたらします:
stagefright を Android 2.2 に移植するには何が必要ですか?
さらに、AOSP ソースで、新しいNuPlayer
方が現在 RTSP ストリームの再生を担当していることに気付きました。質問:
NuPlayer
古いバージョンの Android (2.2 または 2.3)に移植することはできますか?- もしそうなら、それを自分のアプリで使用できるようにするには、何をする必要がありますか?
ソースをチェックアウトし、NDK を使用して stagefright と NuPlayer をビルドできることを認識しています (ただし、NDK レベルで作業したことはありません)。私が知らないのは、私のアプリがこの NuPlayer をどのように使用できるかです。