7

RTSP ストリームを取り込んでオーディオ/ビデオを表示する Android アプリケーションを構築しようとしています。私は VideoView を使用していますが、リアルタイムから 3 ~ 10 秒の遅延が発生します。この遅延を 3 秒未満にする必要があります。

PC では、VLC を使用して同じ RTSP ストリームをわずか 1 ~ 2 秒の遅延で見ることができます。Androidでこれを複製するにはどうすればよいですか? MoboPlayer/RockPlayer などの他のアプリを使用しても、遅延は 3 ~ 10 秒です。(問題があれば、PC と Android の両方でワイヤレスで RTSP ストリームに接続しています)

MediaPlayer の代替として、Android 用の FFmpeg と Android 用の Gstreamer SDK を使用することを検討し始めましたが、どちらも私のような初心者にとっては扱いにくく、複数の問題に直面しています。

どんな情報でも大歓迎です!

4

1 に答える 1

1

まず、遅延は Android ハードウェアでは制御できない初期バッファ サイズが原因だと思いますMediaPlayer。これは、カスタム SW メディア プレーヤーを FFMpeg (現在は AVconv) または GStreamer として使用することで修正できます。ただし、パフォーマンス (ビデオ ストリームの圧縮、解像度、fps によって異なります) とデバイスのバッテリー寿命が犠牲になります。

もちろん、FFMpeg または同様の C/C++ フレームワークを使用したネイティブ開発は複雑であり、多くの時間と経験が必要です。

別のオプション: 新しいAndroid 4.1 Java APIを試して、ビデオとオーディオのデコーダーにアクセスすることができます。そして、この API と RTSP サーバーからビデオ ストリームをロードするためのコードを使用して、独自の RTSP プレーヤーを構築します (おそらく Java ライブラリは既に存在します)。

Android 4.1 マルチメディア

于 2014-09-11T08:36:10.460 に答える