2

小さなビデオを録画して再生できる小さなアプリを開発しました(10秒まで)。このアプリは6Mbpsでビデオをキャプチャします。高速ビデオ再生を実現するために、私はHLS(httpライブストリーミング)を実装しようとしています。しかし、私は、アプリケーションが常に最も低いビットレートのストリームをピックアップし、10秒後にのみ利用可能な最良のストリーム(ネットワーク帯域幅に基づく)に切り替えることに気付いた。アンドロイドのHLSアダプティブストリーミングは10秒後にのみストリームを変更しますか?

私はアンドロイドメディアプレーヤー、exoplayerなどのような異なるメディアプレーヤーをテストしましたが、動作は一貫しています。ビデオはちょうど10秒後にストリームを変更します。これはアンドロイドのhlsのデフォルト実装ですか?または私は何かを逃している?私がテストに使用 M3U8あなたはbipbopall.m3u8に記載されているプレイリストの内容を見れば、あなたはセグメント持続時間は10秒であることがわかりますhttp://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8

 localUrl = "http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"; 
     vidView.setVideoPath(localUrl); 
     Log.i("GenericRequest", "VideoUrl " + localUrl); 
     vidView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
      @Override 
      public void onPrepared(MediaPlayer mp) { 
      vidView.start(); 
      } 
     }); 

答えて

6

です。これはおそらく10秒後にスイッチが表示される理由を説明します。

bipbopall.m3u8にリストされている最初のプレイリストをダウンロードします。このプレイリストは、この例では最も低いビットレートのストリームで、最初のセグメントの再生を開始します。その後、追加の帯域幅が利用可能であると計算し、より高いビットレートのストリームに切り替える。

セグメントの期間が異なる場合は、異なるタイミングで切り替わる可能性があります。

関連する問題