快直播拉流

最近更新时间:2026-04-20 17:34:07

我的收藏

快直播概述

快直播(Live Event Broadcasting,LEB)是标准直播在超低延时播放场景下的延伸,比传统直播协议延时更低,为观众提供毫秒级的高品质直播观看体验。 能够满足一些对延时性能要求更高的特定场景需求,例如在线教育、体育赛事直播、在线答题等。

说明:
上图为快直播和标准的 CDN 直播的真实对比视频,从左至右分别为:标准的 CDN 直播、快直播、推流端。
标准直播与快直播计费价格不同,更多计费详情请参见 标准直播计费快直播计费

方案优势

优势
说明
毫秒级超低延时播放
采用 UDP 协议将传统直播中3秒 - 5秒延时降低至1秒以内,同时兼顾秒开、卡顿率等核心指标,给用户带来高品质的超低延时直播体验。
功能完善,平滑兼容
兼容了标准直播包括推流、转码、录制、截图、鉴黄、播放等全功能,支持客户从现有的标准直播业务平滑迁移。
简单易用,安全可靠
采用标准协议,对接简单,在 Chrome 和 Safari 浏览器中无需任何插件即可进行播放。播放协议默认加密,更加安全可靠。

适用场景

场景
说明
体育赛事
快直播为体育赛事提供超低延时的直播能力加持,使比赛赛事结果快速通过直播触达用户,让观众享受实时了解赛事动态的乐趣。
电商直播
电商直播中,商品拍卖、促销抢购等交易反馈对直播实时性要求很高,快直播的超低延时能力,能让主播和观众能够及时得到交易反馈,提升边看边买的体验。
在线课堂
师生通过直播完成在线的课堂教学,得力于快直播的超低延时能力,使课堂互动能力得到提升,让在线课堂也能像线下授课一样自然。
在线答题
传统的在线答题由于存在延时,观众端有时需要进行补帧才能让观众和主持两端同时显示。快直播的超低延时能够完美解决这个问题,让双方实时看到答题画面,降低了实现难度,也让体验更加流畅。
秀场互动
快直播适用于秀场直播场景,极大优化了观众送礼等对画面实时性要求高的直播互动场景中的观众互动体验。

接入工程

新版本的直播 SDK,可以使用 V2TXLivePlayer 来播放快直播的流,同时也提供了 V2TXLivePusher 来推流。快直播直播协议支持 WebRTC 标准协议,使用标准的扩展方式,其 URL 均以 webrtc:// 字符开始。

步骤1:下载 SDK

下载 SDK 开发包,并按照鸿蒙 SDK 集成指引将 SDK 嵌入您的 App 工程中。

步骤2:给 SDK 配置 License 授权

1. 获取 License 授权:
若您已获得相关 License 授权,需在 云直播控制台 获取 License URL 和 License Key。

若您暂未获得 License 授权,需先参考 新增与续期 License 进行申请。
2. 在您的 App 调用全功能版 SDK 相关功能之前进行如下设置:
import { getV2TXLivePremierShareInstance } from 'liteavsdk';

export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
let licenseUrl: string = "<获取到的licenseUrl>";
let licenseKey: string = "<获取到的key>";

getV2TXLivePremierShareInstance(this.context).setLicence(licenseUrl, licenseKey);
}
}
注意:
License 中配置的 bundleName 必须和应用本身一致,否则会播放失败。

步骤3:获取播放 URL

在直播场景中,不论是推流还是拉流都离不开对应的 URL。请参见 快直播快速入门 获取快直播的播放 URL。
快直播 URL 均以 webrtc:// 字符开始,类似于这样:
webrtc://{Domain}/{AppName}/{StreamName}
在上述的 URL 中,存在一些关键字段,关于其中关键字段的含义信息,详见下表:
字段名称
字段含义
webrtc://
快直播 URL 的前缀字段。
Domain
快直播播放域名。
AppName
应用名称,指的是直播流媒体文件存放路径,默认云直播会分配一个路径:live。
StreamName
流名称,指每路直播流唯一的标识符。
说明:
如果需要推流,具体操作请参见 摄像头推流 或者 录屏推流

步骤4:实现快直播播放

使用 V2TXLivePlayer 对象可以使用快直播进行拉流,具体做法如下(传入正确的 URL 是关键):

示例代码

import { createV2TXLivePlayer, V2TXLivePlayer } from 'liteavsdk';

private player: V2TXLivePlayer | null = null;
private viewId: string = 'player_view';

build() {
Column() {
XComponent({
id: this.viewId,
type: XComponentType.SURFACE,
libraryname: 'liteavsdk'
})
.width('100%')
.aspectRatio(9 / 16)
.backgroundColor(Color.Black)

Button('开始播放').onClick(() => {
this.player?.startPlay('webrtc://domain/live/stream-id');
})
}
}

aboutToAppear(): void {
this.player = createV2TXLivePlayer(getContext());
this.player.setRenderView(this.viewId);
}