2016-07-18 15 views
0

Picasaを使用すると、Androidアプリで画像をすばやくダウンロードして表示できました。今、私は私のS3サーバからの私のビデオをストリーミングし、ここに私のコードよりも速く私のアプリを介してそれらを再生したい:VideoViewでバッファリングとビデオ再生を高速化

try { 
     MediaController VideoController = new MediaController(VideoPlayerActivity.this);//Creates a media controller to this activity. 

     VideoController.setAnchorView(AdVideoView);//Adds the media controller to the video view. 
     Uri video = Uri.parse(VideoURL);//Creates a Uri to hold the URL of the video. 
     AdVideoView.setMediaController(VideoController);//Add the media controller to the video view. 
     AdVideoView.setVideoURI(video);//Make the video view play from the Uri. 
    } catch(Exception e) { 

     Log.e("Video Stream Error", e.getMessage());//Sets the message for the log. 
     e.printStackTrace();//Displays the error in the stack trace. 
     e.notify(); 
    } 

GitHubのか、より良いコードを通じて動画を表示するためのより高速な方法はありますか?

ありがとうございます!

答えて

1

通常、ストリーミングされたビデオ再生の速度が遅くなるのは、クライアント側ではなくサーバー側やネットワーク側のことです。非常に遅いデバイスや非常にビジーなデバイスを使用している場合を除き、レートでビデオを再生することはできませんそれはネットワークを介して受信される。

あなたがストリーミングされた動画に遅れがあるとすれば、探すべき共通の事柄がいくつかあります。

まず、通常の形式のmp4ビデオは、ビデオファイルの最後にメタデータがあり、ストリーミングには適していません。クイックスタートと呼ばれるテクニックがあります。これは、あなたが間違いなく使用したいと思うスタートにメタデータを移動させます。詳細:

第二に、ネットワーク接続が明らかに変えることができ、低速ネットワークは、ストリーミング、高品質のビデオは、問題をファイルします。アダプティブビットレートストリーミング(ABR)と呼ばれる手法では、ネットワーク品質が悪い場合は低品質のビデオチャンクを要求し、品質が向上すると高品質に変更します。

ABRを使用すると、低品質のレベル、つまりサイズの小さいチャンクを使用してビデオストリームをすばやく開始し、ビデオの進行に合わせて品質を向上させることができます。今日のNetflix(2016年7月)など、ほとんどのオンラインビデオサービスを開始すると、この効果が見られます。

ビデオホスティングとストリーミングは専門分野であるため、既存のストリーミング技術やサービスを活用して自分のものを構築する方が簡単です。オープンソースソリューションの感触を得るために見ていくつかの良い場所:

関連する問題