设置http /网络播放的最小缓冲区阈值

时间:2016-04-01 12:42:18

标签: android vlc libvlc

在视频播放器项目中,我希望从慢速源使用LibVLC http流。

但是,我无法将其传输到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以消除口吃?一些缓冲时间没问题。

流类型是通过HTTP提供的MOV文件。

1 个答案:

答案 0 :(得分: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");

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