视频直播 SDK 是一款专属直播业务场景的自研软件开发工具集,已为抖音、西瓜、今日头条等全线产品提供了直播的底层能力支持。在集成视频直播推拉流能力的同时,抽象典型应用场景,提供连麦互动、主播 PK 和美颜特效等互动功能。具有高稳定性,功能丰富,接入简单的特点。
| 平台 | 集成 SDK | SDK 最新版本号 |
|---|---|---|
| Android | 集成 SDK | 1.49.1.11 |
| iOS | 集成 SDK | 1.49.1.7-premium |
| React Native | 集成 SDK | 1.1.1 |
| HarmonyOS NEXT(鸿蒙星河版) | 集成 SDK | 3.4.1-tob |
| Flutter 拉流 SDK | 集成 SDK | 1.47.3 |
| uni-app 拉流 SDK | 集成 SDK | 1.0.0 |
视频直播 SDK 签发的 License 分为基础版、高级版和试用版三种。
视频直播 SDK 分为直播推流 SDK 和直播拉流 SDK。直播推流 SDK 和直播拉流 SDK 所支持的功能与版本和 License 对应关系如下表所示。
功能 | 说明 | Android & iOS | React Native | |
|---|---|---|---|---|
推流协议 | RTMP | 支持 RTMP 协议推流,提供可靠的连接。 | 支持 | 支持 |
RTMPS | 支持 RTMPS 协议推流。利用 TLS/SSL 加密技术保护音视频内容免受未经授权的访问和数据泄露。 | 支持 | 支持 | |
RTMP over QUIC | 支持基于 RTMP 协议的 QUIC 加速推流。支持快速连接和更好的网络适应性,适合实时性要求更高的场景。 | 支持 | 支持 | |
多 URL 推流 | 使用多 URL 推流,可以在推流失败后自动切换到下一个推流地址继续推流,提高推流的稳定性和可靠性。 | 支持 | 支持 | |
视频采集和录制 | 视频编码参数控制 | 支持配置视频采集的分辨率、编码格式、帧率、码率和视频 GOP 大小等信息。 | 支持 | 支持 |
横竖屏 | 支持横屏或竖屏发起推流。 | 支持 | 支持 | |
手机前后摄像头采集 | 支持采集手机的前置和后置摄像头。 | 支持 | 支持 | |
手机屏幕采集 | 支持获取手机屏幕画面作为采集源。适用于游戏直播、移动端 App 演示等场景。 | 支持 | 支持 | |
闪光灯 | 支持开启或关闭闪光灯。 | 支持 | 不支持 | |
曝光 | 支持设置当前使用摄像头的曝光点和曝光补偿。 | 支持 | 不支持 | |
摄像头切换 | 支持前后摄像头切换。 | 支持 | 支持 | |
摄像头缩放 | 支持摄像头缩放。 | 支持 | 不支持 | |
自动、手动对焦 | 支持开启或关闭自动对焦,以及设置手动对焦焦点。 | 支持 | 不支持 | |
本地摄像头预览视图 | 支持设置本地摄像头预览视图。摄像头采集到的画面,经过美颜、脸形调整、滤镜等多种效果叠加之后,最终会显示到摄像头预览视图上。 | 支持 | 支持 | |
镜像 | 支持配置采集镜像、本地预览镜像和推流镜像。 | 支持 | 支持 | |
水印 | 支持添加半透明水印。 | 支持 | 支持 | |
外部视频采集 | 支持输入外部视频源。 | 支持 | 支持 | |
视频混流 | 除主要视频输入源,推流引擎支持添加多个视频输入源,推流引擎内部会自动将所有输入源合并成同一视图后传送给编码模块。 | 支持 | 支持 | |
图片推流 | 支持将图片作为视频源。适用于应用进入后台或网络较差时使用。 | 支持 | 支持 | |
视频尾帧、黑帧推流 | 将视频的最后一帧或黑帧作为画面推流。 | 支持 | 支持 | |
自定义视频处理 | 支持自行处理 SDK 采集的视频数据。 | 支持 | 不支持 | |
滤镜、美颜、风格妆、贴纸 | 支持滤镜、美颜和贴纸效果,并支持根据特定风格设计化妆方式。 说明 此为增值能力,需单独购买智能美化特效 SDK。请提交工单联系技术支持获取智能美化特效 SDK。 | 支持 | 支持 | |
音频采集与录制 | 音频编码参数控制 | 支持配置音频采样率和声道数。 | 支持 说明
| 支持 说明
|
手机麦克风采集 | 支持采集手机麦克风音频。 | 支持 | 支持 | |
静音帧 | 支持静音采集,不会真正启用设备的音频采集能力。 | 支持 | 支持 | |
音频响度 | 支持调整音频响度。例如在环境噪音较大时提高响度让声音更清晰,或在安静环境下降低响度避免刺耳。 | 支持 | 支持 | |
音量 | 支持设置背景音乐音量和主播声音音量。 | 支持 | 支持 | |
耳返 | 在直播过程中,主播可以通过耳机实时监听自己的声音。特别是在唱歌时,耳返功能让主播能够直接听到观众端的声音效果,这对于准确把握音调非常关键。由于网络传输与空气传播的声音存在差异,耳返功能可以帮助主播更好地掌控表现,减少延迟问题,并迅速解决音频上的不足,从而优化整体直播体验。 |
|
| |
静音 | 支持静音推流。 | 支持 | 支持 | |
获取静音状态 | 支持获取当前是否为静音状态。 | 支持 | 支持 | |
背景音乐 | 支持添加推流时的背景音乐,并提供循环播放、开始、暂停、恢复及停止播放等功能。 | 支持 | 支持 | |
音频降噪 | 通过技术手段减少或消除音频中的背景噪音,从而提高音质和听觉体验。常用于过滤掉环境中的杂音,如风声、交通噪音或其他不必要的声音干扰,有助于确保声音的清晰度,使听众能够更专注于主要音频内容。 |
|
| |
自定义音频处理 | 支持自行处理 SDK 采集的音频数据。 | 支持 | 不支持 | |
外部音频采集 | 支持输入外部音频源。 | 支持 | 支持 | |
音频混流 | 除主路音频流之外,推流引擎支持添加多个音频输入源,推流引擎内部会自动将所有音频流混流后传送给编码模块,同时支持在本地播放混流音频。 | 支持 | 不支持 | |
视频编码 | H.264 硬编 | 支持 H.264 硬编。 | 支持 | 支持 |
H.264 软编 | 支持 H.264 软编。 | 支持 | 支持 | |
H.265 硬编 | 支持 H.265 硬编。 | 仅高级版或试用版 License 支持 | 仅高级版或试用版 License 支持 | |
H.265 软编 | 支持 H.265 软编。 | 仅高级版或试用版 License 支持 | 仅高级版或试用版 License 支持 | |
直播推流 | 自动重连 | 支持在推流失败后自动重连。 | 支持 | 支持 |
SEI 消息发送 | SEI(Supplemental Enhancement Information,补充增强信息)通过流媒体通道将文本信息与音视频内容打包在一起,从主播端(推流端)推出,并从观众端(拉流端)接收,以此实现文本数据与音视频内容精准同步的目的。 | 支持 | 支持 | |
后台模式 | 在直播期间,当主播在应用进入后台时,可以持续推流。后台模式提供尾帧、黑帧、图片三种模式推流。 | 支持 说明 Android 还支持在后台模式推流摄像头画面。 | 支持 说明 Android 还支持在后台模式推流摄像头画面。 | |
动态切换横竖屏 | 在直播期间,主播可以随时切换手机的横屏和竖屏模式。直播会自动适应屏幕方向,无需中断。 |
| 不支持 | |
推流码率自适应 | 支持根据网络情况自动调整推流码率,支持多种模式设置,使直播更加流畅。 | 支持 | 支持 | |
实时调整分辨率 | 在直播期间,支持实时调整推流画面的分辨率。 | 支持 | 支持 | |
推流画面填充模式 | 支持调整推流画面的填充模式。 | 支持 | 支持 | |
录屏推流 | 通过录屏推流,主播可以将手机屏幕上的内容实时推送到服务器,让观众能够看到主播的屏幕操作或游戏画面。适用于游戏直播、移动端 App 演示等场景。 | 支持 |
| |
截图 | 在直播期间,主播可以将自己的精彩直播瞬间截图并保存在手机上。 | 支持 | 不支持 | |
录制 | 在直播期间,主播可以将自己的精彩直播录制并保存在手机上。 | 支持 | 支持 | |
互动直播 | 支持观众连麦和主播 PK 功能。 说明 此为增值能力,需单独开通 RTC 服务,并集成 RTC SDK。 | 支持 | 不支持 | |
其他功能 | 配置事件监听 | 通过配置事件监听,可以获取推流引擎的推流错误、状态、网络质量、首帧等数据,以及音视频数据等。 | 支持 | 支持 |
订阅音视频数据 | 通过订阅音视频数据,可以保存编码前和采集到的音视频数据。 | 支持 | 不支持 | |
功能 | 说明 | Android & iOS | Flutter | React Native | HarmonyOS NEXT(鸿蒙星河版) | |
|---|---|---|---|---|---|---|
播放格式 | FLV | 支持播放 FLV 流,延时 6-10 秒。 | 支持 | 支持 | 支持 | 支持 |
FLV(低延时) | 支持播放 FLV 流,延时约 2 秒。 | 仅高级版或试用版 License 支持 | 不支持 | 不支持 | 不支持 | |
HLS | 支持播放 HLS 流。 | 支持 | 支持 | 支持 | 支持 | |
RTM | 支持播放 RTM 流。 说明 不支持纯音频或纯视频流。 | 仅高级版或试用版 License 支持 | 支持 | 支持 | 不支持 | |
RTMP | 支持播放 RTMP 流。 | 支持 | 支持 | 支持 | 支持 | |
传输协议 | TCP | 支持 TCP 协议。 | 支持 | 支持 | 支持 | 支持 |
QUIC | 支持 QUIC 协议。 | 仅高级版或试用版 License 支持 | 支持 | 支持 | 不支持 | |
TLS | 支持 TLS 协议。 | 支持 | 支持 | 支持 | 支持 | |
HTTP 2.0 | 支持 HTTP 2.0 协议。 说明 不支持 RTM 流。 | 支持 | 支持 | 支持 | 不支持 | |
HTTP Header | 请求视频资源时,支持自定义 HTTP Headers 内容。 | 支持 | 不支持 | 支持 | 不支持 | |
视频解码 | H.264 硬解 | 支持 H.264 硬解。 | 支持 | 支持 | 支持 | 支持 |
H.264 软解 | 支持 H.264 软解。 | 支持 | 支持 | 支持 | 支持 | |
H.265 硬解 | 支持 H.265 硬解。 | 仅高级版或试用版 License 支持 | 仅高级版或试用版 License 支持 | 仅高级版或试用版 License 支持 | 仅高级版或试用版 License 支持 | |
H.265 软解 | 支持 H.265 软解。 | 仅高级版或试用版 License 支持 | 仅高级版或试用版 License 支持 | 仅高级版或试用版 License 支持 | 仅高级版或试用版 License 支持 | |
H.265 降级 | 当 H.265 硬解播放失败时,系统会自动采取降级策略。如果已设置 H.264 备流,系统将自动切换到播放 H.264 备流。若未设置 H.264 备流,则系统将尝试使用 H.265 软解进行播放。 | 支持 | 支持 | 支持 | 不支持 | |
H.266 软解 | 支持 H.266 软解。 |
| 不支持 | 不支持 | 不支持 | |
AAC-HE | 支持 AAC-HE 音频编码格式。 | 支持 | 支持 | 支持 | 支持 | |
AAC-LC | 支持 AAC-LC 音频编码格式。 | 支持 | 支持 | 支持 | 支持 | |
播放控制 | 开始、停止播放 | 支持开始或停止播放。 | 支持 | 支持 | 支持 | 支持 |
暂停、恢复播放 | 支持暂停或恢复播放。 | 支持 | 支持 | 支持 | 支持 | |
获取当前播放状态 | 支持获取当前的播放状态。 | 支持 | 支持 | 支持 | 支持 | |
手动切换清晰度 | 支持多个档位清晰度之间的手动切换。 | 支持 | 不支持 | 支持 | 不支持 | |
设置播放器缓存时间 | 播放器预先下载一定量的数据,以确保播放的连续性和流畅性。缓存时间越长,播放器在遇到网络波动或延迟时,就能更好地维持视频或音频的播放不中断。 说明 如需实现该功能,请提交工单联系视频直播技术支持。 | 支持 | 不支持 | 支持 | 支持 | |
视频效果 | 配置渲染 View | 配置渲染 View,展示播放器的视频画面。 | 支持 | 支持 | 支持 | 支持 |
画面填充模式 | 支持调整播放画面的填充模式。 | 支持 | 支持 | 支持 | 支持 | |
画面旋转角度 | 支持配置播放画面的旋转角度,支持将画面顺时针旋转 0°、90°、180° 和 270°。 | 支持 | 支持 | 支持 | 不支持 | |
镜像 | 支持配置播放画面的镜像模式,例如水平镜像、垂直镜像。 | 支持 | 不支持 | 支持 | 不支持 | |
画中画播放 | 通过将播放器窗口缩小并置于界面一角,允许观众在观看直播的同时浏览其他内容或打开其他应用,从而提升用户体验。 说明 如需实现该功能,请提交工单联系视频直播技术支持。 | 支持 | 不支持 | 支持 | 支持 | |
SDR 视频播放 | 支持播放 SDR(Standard Dynamic Range,标准动态范围)视频。 | 支持 | 支持 | 支持 | 不支持 | |
拉流超分 | 超分,即超分辨率技术(Super-Resolution, SR),指从观测到的低分辨率图像重建出相应的高分辨率图像的过程。移动端实时超分,指利用算法技术在端上对低分辨率的帧进行实时重建,产生高分辨率的帧显示在屏幕上,从而改善视频内容的细节与对比度,全面提升视频的播放清晰度和观看体验的优化手段。 | 仅高级版或试用版 License 支持 | 不支持 | 仅高级版或试用版 License 支持 | 不支持 | |
视频锐化 | 视频锐化是一种图像处理技术,用于增强视频画面的清晰度和细节。通过锐化处理,可以使视频中的边缘和细节更加突出,使画面看起来更加清晰和生动。 | 仅高级版或试用版 License 支持 | 不支持 | 支持 | 不支持 | |
音频效果 | 音量调节 | 支持调整播放音量。 | 支持 | 支持 | 支持 | 支持 |
静音 | 支持静音播放。 | 支持 | 支持 | 支持 | 支持 | |
获取静音状态 | 支持获取当前是否为静音状态。 | 支持 | 支持 | 支持 | 支持 | |
后台保持音频播放 | 应用切换到后台时,支持继续播放音频。 | 支持 | 支持 | 支持 | 支持 | |
纯音频播放 | 支持播放纯音频。 说明 仅适用于 FLV 流。 | 支持 | 支持 | 支持 | 支持 | |
双声道音频 | 支持播放双声道音频。 | 支持 | 支持 | 支持 | 支持 | |
播放策略 | 播放失败重试 | 当网络异常等导致直播中断时,播放器会尝试重试。 | 支持 | 支持 | 支持 | 支持 |
本地 DNS 预解析 | 开启本地 DNS 预解析可以优化播放器的起播时间。 | 支持 | 支持 | 支持 | 支持 | |
配置一个或多个播放地址 | 支持配置一个或多个播放地址。配置多个播放地址后,可实现 ABR 拉流、主备流切换等依赖多路流的功能。 | 支持 | 支持 | 支持 | 支持 | |
ABR 拉流 | 自适应码率(Adaptive Bit-Rate,简称 ABR)是一种流媒体传输技术,通过一系列算法策略,动态切换不同档位媒体流,以达到适应网络带宽变化,防止观众在观看直播过程产生卡顿,提升播放质量和观看体验。 说明 仅适用于 FLV 流。 | 仅高级版或试用版 License 支持 | 支持 | 支持 | 不支持 | |
IP 地址拉流 | 支持通过设置播放域名的 IP 地址进行拉流,以降低播放首帧时间。 | 支持 | 不支持 | 支持 | 不支持 | |
主备流切换 | 当主流地址拉流失败或播放出错时,播放器会自动切换到备流地址进行播放。当备流地址拉流失败或播放出错时,播放器会切换回主流地址进行播放。 | 仅高级版或试用版 License 支持 | 支持 | 支持 | 支持 | |
多实例 | 支持在一个界面添加多个播放器同时播放。 | 支持 | 支持 | 支持 | 支持 | |
动态追帧 | 在直播过程中,由于网络波动或其他因素,视频流可能会出现延迟或卡顿。动态追帧技术通过调整帧的播放速度或跳过某些帧来追赶实时直播,从而减少延迟。 | 支持 | 支持 | 支持 | 不支持 | |
域名解析 | 支持调用火山引擎 HTTPDNS 服务对拉流地址预解析,以此来降低播放首帧时长。 说明 此为增值能力,需单独开通 HTTPDNS 服务。 | 支持 | 不支持 | 不支持 | 不支持 | |
秒开优化 | 优化首帧时间,实现秒开效果。 说明 如需实现该功能,请提交工单联系视频直播技术支持。 | 支持 | 不支持 | 支持 | 不支持 | |
其他功能 | 截图 | 支持在播放器中截取当前直播画面并生成一张图片。 | 支持 | 不支持 | 支持 | 支持 |
SEI 消息接收 | SEI(Supplemental Enhancement Information,补充增强信息)通过流媒体通道将文本信息与音视频内容打包在一起,从主播端(推流端)推出,并从观众端(拉流端)接收,以此实现文本数据与音视频内容精准同步的目的。 | 仅高级版或试用版 License 支持 | 支持 | 支持 | 仅 FLV 流支持。 | |
配置事件监听 | 通过配置事件监听,可以获取播放器的内部状态信息,包括播放状态、错误信息、音视频首帧回调以及周期性统计数据等。 | 支持 | 支持 | 支持 | 支持 | |
订阅音视频数据 | 通过订阅解码后的音视频数据,可以获取音视频帧数据并进行自定义的处理和渲染操作。 | 支持 | 不支持 | 不支持 | 不支持 | |
质量安全 | 日志上报 | 支持上报 SDK 日志,统计音视频直播相关播放埋点信息。 | 支持 | 支持 | 支持 | 支持 |
客户端 SDK 相关名词的含义请参见名词解释。