android视频相关音视频android app性能优化

短视频秒开优化

2019-01-18  本文已影响38人  BKQ_SYC

从流程分析优化

视频播放流程.png

如图所示,移动设备的播放器通过某个视频url的域名,通过DNS服务请求到IP地址,通过IP地址与视频服务器建立TCP连接,然后再连接之上建立Http协议,最终请求到数据,给到播放器进行解析音视频解码显示。
为了更好的发现可优化的地方,流程拆解如下:


视频播放流程拆解.png

图中灰色部分是不能优化的,在流程上 没有优化控件,而且,这部分容易受到网络情况的影响,所以后续优化,是基于大多数正常网络情况的。图中绿色部分是可以优化并且在显示项目实现中可以实施的。

从业务分析优化

IjkMediaPlayer.OPT_CATEGORY_CODEC, "start-on-prepared", 0)
// 设置缓冲区大小
IjkMediaPlayer.OPT_CATEGORY_FORMAT, "max-buffer-size", 10 * 1024 * 1024)
// 设置探测缓冲区大小
IjkMediaPlayer.OPT_CATEGORY_FORMAT, "probesize", 1024 * 8)
// 每处理一个packet之后刷新io上下文
IjkMediaPlayer.OPT_CATEGORY_FORMAT, "flush_packets", 1)
// 设置探测处理时长
IjkMediaPlayer.OPT_CATEGORY_FORMAT, "analyzeduration", 1000)
// 重连
IjkMediaPlayer.OPT_CATEGORY_FORMAT, "reconnect", 1)
// 设置是否开启环路过滤
//      0 开启,画面质量高,解码开销大
//      48 关闭, 画面质量差,解码开销小
IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_loop_filter", 0)
IjkMediaPlayer.OPT_CATEGORY_CODEC, "skip_frame", 0)

// 跳帧 保证音视频同步
IjkMediaPlayer.OPT_CATEGORY_PLAYER, "framedrop", 5)
IjkMediaPlayer.OPT_CATEGORY_PLAYER, "min-frames", 2)

IjkMediaPlayer.OPT_CATEGORY_PLAYER, "max_cached_duration", 0)
// 设置无限读
IjkMediaPlayer.OPT_CATEGORY_PLAYER, "infbuf", 0)
// 是否开启播放器缓冲 默认开启
IjkMediaPlayer.OPT_CATEGORY_PLAYER, "packet-buffering", 1)
IjkMediaPlayer.OPT_CATEGORY_PLAYER, "mediacodec_all_videos", 1)

何俊林短视频秒播优化
美拍直播秒开优化
闲鱼视频信息流列表优化

上一篇下一篇

猜你喜欢

热点阅读