1.全民K歌推流直播Web实践
全民K歌推流直播Web实践
背景
年疫情期间,源码大众转向线上活动,源码直播行业迎来爆发,源码用户量持续增长,源码特别在线演唱模式受到欢迎。源码TME主办了近场明星在线演唱会。源码直播授课源码面对站外直播需求的源码增加,原有的源码K歌直播技术难以满足新功能和用户需求。
推流直播技术实践
K歌Web使用HLS流为主。源码HLS是源码Apple提出的HTTP流媒体协议,通过切片处理流传输,源码客户端下载m3u8文件以找到媒体流并下载MPEG-TS格式的源码片段。iOS和Android支持HLS,源码网站接直播源码只需做好视频采集、源码推流服务,源码H5页面可直接播放。
HLS局限性
HLS流主要局限在延迟和稳定性方面。为解决这些问题,考虑使用FLV流。靓号php源码
FLV流的优势
FLV流支持更低延迟和稳定传输,平均延迟1~2秒,且避免防火墙干扰,支持跳转和HTTPS加密。然而,iOS浏览器不支持MSE API,语音agc算法源码无法直接播放FLV流。
移动端FLV播放方案
调研发现几种支持移动端FLV播放的js SDK,其中NodePlayer.js通过ASM.js软解码实现移动端播放,WXInlinePlayer和ffmpeg-player分别使用不同的构建方案实现跨平台支持。
优化与封装
对WXInlinePlayer和腾讯的TCPlayer进行源码优化,解决iOS端画音不同步、取存储过程源码系统适配和webgl渲染旋转问题,封装成kg-player SDK。优化flv解析流程,支持多码率流和流地址切换,确保直播流畅。
性能对比
hls与flv流各有优劣,kg-player SDK接入后,flv流在延迟和卡顿率方面表现更优,且支持iOS 及以上和Android 5及以上系统。通过检测页面卡顿,自动降级到低码率流以保证播放性能。
技术架构
推流直播技术架构包含kg-player SDK的播放模块、kg-im SDK的消息模块和礼物动画渲染模块。kg-im SDK支持实时消息拉取和消息结构优化,kg-gift支持多种动画需求。
直播性能数据
在接入kg-player SDK后,flv流的首帧渲染时间较长,播放卡顿率低于hls流。遇到卡顿会自动降级以提高播放体验。
优化与展望
通过优化wasm软解码和webgl渲染,kg-player SDK支持了移动端flv流播放。针对不同系统性能,优化策略进一步提高播放性能和稳定性。未来将支持更多直播业务场景,不断完善技术架构,开源SDK代码。