随着直播行业的快速发展,直播带货秒杀和在线教育答题等应用场景对直播延时的要求越来越严苛,为了应对这种需求,腾讯云推出了快直播,快直播就是针对传统直播协议高延时的痛点,基于WebRTC技术实现毫秒级延时的直播产品方案。当前,快直播终于上线。快直播除电商带货和在线教育外,还能满足体育直播、游戏直播等各种能融合实时互动的直播场景需求。
现在直播行业大多数用的是标准直播,它的直播协议主要是FLV、HLS、RTMP。FLV延时一般在2-10秒左右,它的延时因素主要是GOP大小和TCP弱网传输积压。HLS的延时更大,一般是几秒到几十秒,它的延时因素主要是GOP大小和TS大小,HLS是以文件索引和下载的方式,它每个文件的的大小限制了它的延时,很多播放器要等3个TS才播放,而3个TS可能就有几十秒了。
众所周知,WebRTC通过RTP/RTCP协议和优秀的拥塞控制算法在实时音视频领域实现了出色的低延时和抗弱网性能。而快直播正是采用WebRTC协议对标准直播的拉流侧进行低延时改造,将延时降低至1秒以内,同时兼顾秒开、卡顿率等核心指标,给用户带来极致的超低延时直播体验。
那么如何在集成标准移动直播的基础上快速的升级使用到快直播呢,可以参考以下方法快速升级体验,如果你是新用户可以参考移动直播官网(https://cloud.tencent.com/document/product/454/55880)集成方式快速集成,通过下面方法实现快直播播放。
旧版本IOS快速升级指引
1、选择pod 的方式的话,进入项目所在路径,项目之前已经已经创建过Podfile文件的话,直接打开Podfile文件,使用CocoaPod官方源,pod install 更新本地库文件。
pod 命令执行完后,重新打开.xcworkspace的文件。
2、手动升级更新的话,可以在腾讯云移动直播SDK官网下载移动直播专业版SDK(https://cloud.tencent.com/document/product/454/7873),这里需要注意的是下载之前请查看一下你之前项目集成的SDK 是专业版(Professional)还是企业版(Enterprise),下载跟你项目对应的SDK版本。
将下载到本地的SDK TXLiteAVSDK_Professional.framework文件包直接拖拽到项目文件中进行替换,需要注意的是如果你之前项目集成的是Professional专业版SDK,但是你需要更换为Enterprise企业版SDK的话,要把项目中的专业版SDK 删除掉,重新把企业版SDK拖拽到项目中,然后再修改下Paths路径。
旧版本安卓快速升级指引
(手动升级)(aar)
1、选择升级aar库的方式,下载LiveAVSDK(https://cloud.tencent.com/document/product/454/7873)专业版或企业版,下载和你之前工程引入对应的SDK版本,下载完成后进行解压。在 SDK 目录下找到 LiteAVSDK_Professional_Android_8.7.10102(其中 8.7为 LiteAVSDK 的版本号,也是支持快直播拉流的最新版本):
2、将下载文件解压之后 SDK 目录下的 aar 文件拷贝到工程的 app/libs 目录下,替换掉你之前版本的aar文件;
3、再次检查工程根目录下的 build.gradle中,添加 flatDir,是否指定的本地仓库路径;
4、在 app/build.gradle 中,修改引用 aar 包的代码,修改为你下载最新版的SDK;
代码语言:javascript复制implementation(name:'LiteAVSDK_Professional_8.7.10102', ext:'aar')
5、单击Sync Now按钮同步SDK,完成LiteAVSDK的集成工作。
(手动升级)(jar)
1、下载LiveAVSDK(https://cloud.tencent.com/document/product/454/7873),下载完成后进行解压。在 SDK 目录下找到LiteAVSDK_Professional_8.7.10102(其中8.7.10102 为 LiteAVSDK 的版本号):
2、将解压得到的 jar文件和armeabi、armeabi-v7a、arm64-v8a 文件夹拷贝到 app/libs 目录下,替换掉之前的文件夹;
3、在 app/build.gradle 中,检查一下jar库的引用代码;
4、点击Sync Now按钮同步 SDK,完成LiteAVSDK的集成工作。
IOS、安卓端实现快直播播放
切换快直播拉流
新版本的移动直播SDK,可以使用V2TXLivePlayer(https://cloud.tencent.com/document/product/454/56044)来播放快直播的流,快直播直播协议支持 WebRTC 标准协议,使用标准的扩展方式。
推流可以正常使用OBS 和移动直播SDK就可以。快直播主要体现于拉流播放,其采用 UDP 协议将传统直播中3秒 - 5秒延迟降低至1秒以内,同时兼顾秒开、卡顿率等核心指标
1)首先要获得快直播的拉流地址,可以在云直播控制台地址生成器生成webrtc 的播放地址,也可以根据规则在后台自己拼接并返回给前端。快直播 URL 均以 webrtc:// 字符开始,类似于这样:
2)IOS端直接使用V2TXLivePlayer对象可以使用快直播进行拉流具体做法如下:
3)安卓端直接使用V2TXLivePlayer对象可以使用快直播进行拉流,具体做法如下:
下面是我们测试的快直播和标准的 CDN 直播的真实对比视频(使用 scrcpy 工具 配合录制),从左至右分别为:标准的 CDN 直播、快直播、推流端。
总结
快直播通过对标准直播的推流接入和CDN边缘节点进行WebRTC改造,使直播迈入了毫秒级的低延时时代。并且在此基础上对标准WebRTC进行了升级扩展,完美对接了国内主流直播推流音视频格式。大家有对延时要求比较高的场景,快直播绝对是一个不错的选择。更多详情参考腾讯云移动直播官网(https://cloud.tencent.com/document/product/454/55880),可以通过官网demo 快速体验快直播。