2011-06-22 3 views
3

誰もRTSPを通じてAndroidに高画質の動画(1000kbps以上)をストリーミングしていますか?Androidに高品質のRTSPストリームをスムーズに再生させる方法を教えてください。

私たちは現在、3G上で素晴らしい動作をする低品質のビデオストリーム(約200kbps)を持っています。今、私たちはユーザーがより速い接続を持っているときに高品質なストリームを提供しようとしています。 VLCでは高画質の動画がスムーズに再生されますが、Androidの再生は4メガビットの接続であってもフレームが落ちてぎこちないようです。

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

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

アップデート2011年6月23日

今日ダーウィンを通じていくつかのより多くのを探しています。これまでは、Darwinモジュールに要求とセッションの情報を記録しています。

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

私はクライアントにもっとバッファリングをさせようとしていますが、まだそれをどうやって行うのか分かりません。私はダーウィン・ストリーミング・サーバーのソースを見て、彼らがどのようにしているかを把握しようとしています。ダーウィンの専門家はいますか?

アップデート2011年6月24日

それはオンデマンドでビデオを表示するため、昔ながらのHTTPを使用して、結局のところは、品質の損失なしでうまく動作します。ライブストリーミングが始まると、RTSPの詳細を調べなければなりません。

+0

あなたはHTTP URLをどのように取得しているのか教えていただけますか?私は現在YouTube Gdata API(検索用)を使用していますが、非常に低品質のストリームを取得しています。これは私のために、より良いでしょう、ありがとう。 編集:あなた自身のストリーミングをしている、気にしない:) –

答えて

1

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

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

+0

元の投稿にエンコードと解像度を追加しました。デコードをAndroidのMediaPlayerに任せていますが、これはStagefrightを使うべきですが、他のデバイスでもOpenCoreを使うことができます。 –

+0

不幸にも、私がReal Timeで働いた唯一の解決策はhttp://www.tokbox.com/opentok/api/featuresであり、おそらくあなたのニーズには適していません。だから、実際には本当に本当に他の人が何を言わなければならないか見ることに興味があります。 – Astronaut

関連する問題