ijkplayer设置rtmp秒开(转)

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

 

 
  1. IjkMediaPlayer ijkMediaPlayer = null;

  2. ijkMediaPlayer = new IjkMediaPlayer();

  3. ijkMediaPlayer.setOption(1, "analyzemaxduration", 100L);

  4. ijkMediaPlayer.setOption(1, "probesize", 10240L);

  5. ijkMediaPlayer.setOption(1, "flush_packets", 1L);

  6. ijkMediaPlayer.setOption(4, "packet-buffering", 0L);

  7. ijkMediaPlayer.setOption(4, "framedrop", 1L);


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

 

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

 
  1. AVOptions options = new AVOptions();

  2.  
  3. options.setInteger(AVOptions.VALUE_FFLAGS_NOBUFFER, 1);

  4.  
  5. options.setInteger(AVOptions.KEY_PROBESIZE,10240);

  6.  

 

原文:https://blog.csdn.net/lp8800/article/details/65629187