2016-04-01 9 views
4

ビデオプレーヤープロジェクトでは、低速ソースからLibVLC httpストリーミングを使用したいと考えています。http/network再生の最小バッファーしきい値を設定する

しかし、私はFIRSTをストリームしてからデータを連続してダウンロードすることはできません。プレーヤーは常に中間に停止します。

私はGITのvlc-androidを使用しています。

これは、メディアプレーヤーの設定コードです:

ArrayList<String> options = new ArrayList<>(); 
options.add("--no-sub-autodetect-file"); 
options.add("--swscale-mode=0"); 
options.add("--network-caching=60000"); 

if (BuildConfig.DEBUG) { 
    options.add("-vvv"); // verbosity 
} 

libVLC = new LibVLC(options); 

mediaPlayer = new org.videolan.libvlc.MediaPlayer(libVLC); 
mediaPlayer.setEventListener(this); 

final IVLCVout vout = mediaPlayer.getVLCVout(); 
vout.setVideoView(videoView); 
vout.setSubtitlesView(subtitleView); 
vout.addCallback(this); 
vout.attachViews(); 

final Media media = new Media(libVLC, getIntent().getData()); 
media.setHWDecoderEnabled(true, false); 
media.addOption(":network-caching=60000"); 
media.addOption(":clock-jitter=0"); 
media.addOption(":clock-synchro=0"); 

mediaPlayer.setMedia(media); 
mediaPlayer.play(); 

私はメディアオブジェクトに:network-cachingを設定することが十分であることを期待していたが、それはまだデータのうち、全体の時間を実行しているようです。

スタッターがなくなるようにLibVLCを設定するにはどうすればいいですか?バッファ時間はOKです。

ストリームタイプは、HTTP経由で配信されるMOVファイルです。

答えて

0

libvlcオプションは、それを試してみてください。

ArrayList<String> options = new ArrayList<String>(); 
options.add("--audio-time-stretch"); // time stretching 
options.add("-vvv"); // verbosity 
options.add("--no-audio"); // no audio 
options.add("--aout=none"); 
options.add("--no-sub-autodetect-file"); 
options.add("--swscale-mode=0"); 
options.add("--network-caching=400"); 
options.add("--no-drop-late-frames"); 
options.add("--no-skip-frames"); 
options.add("--avcodec-skip-frame"); 
options.add("--avcodec-hw=any"); 

メディアaddOptionはそれを試してみてください。

Media m = new Media(libvlc, Uri.parse(URL)); 
m.setHWDecoderEnabled(true, true); 
m.addOption(":network-caching=5000"); 
m.addOption(":clock-jitter=0"); 
m.addOption(":clock-synchro=0"); 
m.addOption(":codec=all"); 
mMediaPlayer.setMedia(m); 
mMediaPlayer.play(); 
関連する問題