iOS ijkplayer设置rtmp秒开

应用场景,之前项目中集成ijkplayer播放直播流,每次开启都很慢,大概需要五到十秒。

刚好最近在研究ijkplayer,就顺带把这个问题顺带解决了。

 IJKFFOptions *options=[IJKFFOptions optionsByDefault];

//不限制输入缓存区大小

[optionssetOptionIntValue:1 forKey:@"infbuf" ofCategory:kIJKFFOptionCategoryPlayer];

//最大缓存区大小

[optionssetOptionIntValue:1024 forKey:@"maxx-buffer-size" ofCategory:kIJKFFOptionCategoryPlayer];

//设置rtmp的来源

[optionssetOptionValue:[YPGlobalObject shareInstance].bundleIdentifier forKey:@"rtmp_pageurl" ofCategory:kIJKFFOptionCategoryFormat];

//底下这几句补上,可以大大提高ijkplayer打开直播流的速度

[optionssetOptionIntValue:100L forKey:@"analyzemaxduration" ofCategory:1];

[optionssetOptionIntValue:10240L forKey:@"probesize" ofCategory:1];

[optionssetOptionIntValue:1L forKey:@"flush_packets" ofCategory:1];

[optionssetOptionIntValue:0L forKey:@"packet-buffering" ofCategory:4];

[optionssetOptionIntValue:1L forKey:@"framedrop" ofCategory:4];

在ffplay播放时,如果加上-fflags nobuffer可以缩短播放的rtmp视频延迟甚至能达到在1s内播放的效果。同样,只要是基于ffmpeg中的ffplay播放器,都可以通过加上类似设置达到这个效果。比如在PLDroidPlayer当中,也可以加入这个选项:

AVOptions options = new AVOptions();

options.setInteger(AVOptions.VALUE_FFLAGS_NOBUFFER, 1);

options.setInteger(AVOptions.KEY_PROBESIZE,10240);

借鉴于:https://blog.csdn.net/lp8800/article/details/65629187

你可能感兴趣的:(iOS ijkplayer设置rtmp秒开)