4

誰かがRTSPを介してAndroidに高品質のビデオ(1000kbps以上)をストリーミングする運がありますか?

現在、3Gでうまく機能する低品質のビデオストリーム(約200kbps)があります。現在、ユーザーがより高速な接続を使用している場合に備えて、高品質のストリームを提供しようとしています。高品質のビデオはVLCでスムーズに再生されますが、Androidの再生では、4メガビットの接続でもフレームがドロップしてブロックされるようです。

YouTubeアプリは、高品質の動画にプレーンなHTTPダウンロードを使用しているようです。これはうまく機能し、スムーズに再生されますが、ライブビデオのストリーミングには機能しません。誰かがRTSPを介してAndroidに高品質のビデオをストリーミングする運がありましたか?

ビデオは、H.264、1500kbps、24fps、および720x480の解像度を使用してエンコードされます。アプリでは、VideoViewを使用してビデオを再生しています。Darwin Streaming Serverを使用していますが、必要に応じて他のオプションを利用できます。

2011年6月23日更新

今日はダーウィンをもう少し見てみましょう。これまでのところ、Darwinモジュールにリクエストとセッション情報を記録しています。

元のDroidは、次の設定を使用しようとします3GPP-Adaptation:...size=131072;target-time=4000。つまり、4秒のバッファが必要ですが、131Kbは1200kbpsで約1秒の再生しか保持しません。1200kbpsが大きいことは理解していますが、高品質のビデオ(720x480での最小圧縮)には必要です。

クライアントにさらにバッファリングを強制しようとしていますが、その方法はまだわかりません。私はDarwinStreamingServerのソースを調べて、それらがどのように機能するかを理解しようとしています。ダーウィンの専門家はいますか?

2011年6月24日更新

結局のところ、ビデオをオンデマンドで表示するためにプレーンな古いHTTPを使用すると、品質を損なうことなくうまく機能します。ライブストリーミングを開始するときは、RTSPを詳しく調べる必要があります。

4

1 に答える 1

2

ネットワークがそのレートで送信できる場合でも、デコードする必要があります。デコードには何を使用していますか?適切なフレームレートと適切なサイズのバッファを確保できるように、おそらくNEONアクセラレーションビデオデコーダを使用する必要があります...グラフィックプロセッサは、それが入っているバスと同じくらい優れています...また、エンコード設定は何ですかそして解像度?

編集:それらを高ビットレートでエンコードしていますが、その半分で十分です。また、問題がどこにあるのかを確認する必要があります。mediaPlayer はデータを取得し、適切なフレームレートでストリーミングできません。その場合、MediaPlayer コードを独自のプレーヤーに置き換える必要があります。それはネットワークの問題であり、唯一の解決策はビットレートを下げることです.600Kbpsで十分です(または500Kbpsのビデオ、128Kbpsのオーディオ).200kストリームの3倍であり、この小さな画面では違いは目立ちません.

于 2011-06-22T20:35:49.517 に答える