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);
原文:https://blog.youkuaiyun.com/lp8800/article/details/65629187
本文介绍了使用ijkplayer和ffplay播放RTMP流时减少延迟的方法。通过设置特定选项,如减少缓存大小和禁用缓冲标志,可以将加载时间从5~10秒缩短到1秒以内。
2307

被折叠的 条评论
为什么被折叠?



