本文介绍如何使用 Web 拉流 SDK(VePlayer)启用自适应码率(Adaptive Bit-Rate, ABR)功能,该功能适用于用户网络环境不稳定或网络质量差异较大的场景,能够动态切换码率,从而提升播放连续性和体验流畅度。本功能仅支持 FLV 格式流。
本文档适用于最新版本的 Web 拉流 SDK,版本信息请参考发布历史,历史版本请参考历史文档。
已完成 SDK 集成。
要启用 ABR,首先需提前获取多个码率档位的 FLV 拉流地址。如果使用火山引擎视频直播服务,按照以下步骤获取:
登录控制台,完成转码配置。
获取各档位拉流地址:
下表展示了不同档位的 FLV 地址及其对应的码率:
档位说明 | 拉流地址 | 码率(kbps) |
---|---|---|
超清(UHD) | https://pull.example.com/live/123456_uhd.flv | 2500 |
高清(HD) | https://pull.example.com/live/123456_hd.flv | 1000 |
标清(SD) | https://pull.example.com/live/123456_sd.flv | 800 |
低清(LD) | https://pull.example.com/live/123456_ld.flv | 500 |
配置播放器时,通过 abr.urls
指定所有档位的拉流地址,并设置初始播放档位的码率。播放过程中,SDK 会根据网络状况动态切换档位,并触发以下事件回调:
ABR_SWITCH_START
:开始切换档位。ABR_SWITCH_SUCCESS
:档位切换成功。ABR_SWITCH_FAILED
:档位切换失败。您可根据项目的集成方式,选择合适的接入方案,以下是两种接入方式的代码示例。
注意
确保每个档位的码率设置与转码配置中填写的编码码率保持一致。
VePlayer.createLivePlayer({ width: 640, height: 360, url: 'https://pull.example.com/live/123456_uhd.flv', flv: { abr: { bitrate: 2500000, urls: { 2500000: 'https://pull.example.com/live/123456_uhd.flv', 1000000: 'https://pull.example.com/live/123456_hd.flv', 800000: 'https://pull.example.com/live/123456_sd.flv', 500000: 'https://pull.example.com/live/123456_ld.flv' }, }, } }).then(function (veplayer) { veplayer.on(VePlayer.live.Events.ABR_SWITCH_START, function (data) { console.log('ABR_SWITCH_START', data.bitrate); }); veplayer.on(VePlayer.live.Events.ABR_SWITCH_SUCCESS, function (data) { console.log('ABR_SWITCH_SUCCESS', data.bitrate); }); veplayer.on(VePlayer.live.Events.ABR_SWITCH_FAILED, function (data) { console.log('ABR_SWITCH_FAILED', data.bitrate); }); })