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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。