2016-04-01 7 views
4

В проекте видеопроигрывателя я хочу использовать потоковое видео LibVLC с медленного источника.Установите порог минимального буфера для воспроизведения http/сети

Тем не менее, я не могу получить его в поток FIRST, а затем непрерывно загружать данные. Игрок всегда будет останавливаться между ними.

Я использую vlc-android от GIT.

Это код медиа-плеер настройки:

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 так, чтобы заикание было устранено? Некоторое время буфера в порядке.

Тип потока - файл MOV, обслуживаемый через HTTP.

ответ

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();