ijkplayer设置rtmp秒开

ijkplayer和ffplay在打开rtmp串流视频时,大多数都会遇到5~10秒的延迟,在ffplay播放时,如果加上-fflags nobuffer可以缩短播放的rtmp视频延迟在1s内,而在ijkVideoView中加入

IjkMediaPlayer ijkMediaPlayer = null;
ijkMediaPlayer = new IjkMediaPlayer();
ijkMediaPlayer.setOption(1, "analyzemaxduration", 100L);
ijkMediaPlayer.setOption(1, "probesize", 10240L);
ijkMediaPlayer.setOption(1, "flush_packets", 1L);
ijkMediaPlayer.setOption(4, "packet-buffering", 0L);
ijkMediaPlayer.setOption(4, "framedrop", 1L);

这几个选项设置,可以让rtmp加载时间从5~10秒缩短到1s以内,以达到秒开且低延迟的目的。


同样,只要是基于ffmpeg中的ffplay播放器,都可以通过加上类似设置达到这个效果。比如在PLDroidPlayer当中,也可以加入这个选项:

AVOptions options = new AVOptions();

options.setInteger(AVOptions.VALUE_FFLAGS_NOBUFFER, 1);

options.setInteger(AVOptions.KEY_PROBESIZE,10240);





你可能感兴趣的:(android)