超低延时直播

智能视频SDK VideoCreatingSDK

  • 智能视频SDK开发者个人信息保护合规指引
  • 智能视频SDK隐私政策
  • 功能发布记录
  • 播放器SDK
    • SDK&Demo下载
    • 产品简介与下载
    • ios播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 功能列表
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Unity播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • uniapp播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 快速进阶
    • HarmonyOS NEXT
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • Andriod播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Web 播放器
      • license指引
      • 简介
      • 使用指南
      • 版本更新记录
      • 开发指南
      • 接口速查
        • 事件响应接口
        • 控制接口
  • 图片加载SDK
    • SDK&Demo下载
    • SDK集成
    • 快速开始
    • 版本更新记录
    • 接口速查
    • 产品简介
    • 快速进阶
  • 短视频SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • 能力限制
      • DEMO体验
      • SDK下载
    • 使用指南
      • License申请
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 录制
        • 编辑
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • IOS版本开发接入文档
      • 视频指导
        • 视频指南
      • Android开发说明
        • 录制
        • Android版本开发接入文档
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • 概述
  • 移动直播SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • demo体验
      • SDK下载
    • 使用指南
      • 接入教程
      • License申请
      • License续费
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 互动直播
        • 特效直播
        • 拉流
        • IOS接入概述
        • 超低延迟直播
        • 直播推流
      • Android开发说明
        • 超低延时直播
        • 互动直播
        • 普通直播
        • 特效直播
        • 拉流
        • Android接入概述
        • 推流参数配置
所有文档
menu
没有找到结果,请重新输入

智能视频SDK VideoCreatingSDK

  • 智能视频SDK开发者个人信息保护合规指引
  • 智能视频SDK隐私政策
  • 功能发布记录
  • 播放器SDK
    • SDK&Demo下载
    • 产品简介与下载
    • ios播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 功能列表
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Unity播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • uniapp播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 快速进阶
    • HarmonyOS NEXT
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
    • Andriod播放器
      • SDK集成
      • 快速开始
      • 简介
      • 版本更新记录
      • 接口速查
      • 快速进阶
      • 高级版功能接入
        • 端上超分功能接入
        • VR功能接入
        • 绿幕抠图功能接入
        • 投屏功能接入
        • 全景声功能接入
        • HDR功能接入
        • 超低延时直播功能接入
    • Web 播放器
      • license指引
      • 简介
      • 使用指南
      • 版本更新记录
      • 开发指南
      • 接口速查
        • 事件响应接口
        • 控制接口
  • 图片加载SDK
    • SDK&Demo下载
    • SDK集成
    • 快速开始
    • 版本更新记录
    • 接口速查
    • 产品简介
    • 快速进阶
  • 短视频SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • 能力限制
      • DEMO体验
      • SDK下载
    • 使用指南
      • License申请
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 录制
        • 编辑
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • IOS版本开发接入文档
      • 视频指导
        • 视频指南
      • Android开发说明
        • 录制
        • Android版本开发接入文档
        • 字幕
        • 转场
        • 合成
        • 快速接入
        • 概述
  • 移动直播SDK
    • 产品描述
      • 名词解释
      • 功能说明
      • 产品简介
      • 核心优势
    • SDK体验
      • demo体验
      • SDK下载
    • 使用指南
      • 接入教程
      • License申请
      • License续费
    • 常见问题
      • 内容制作类问题
      • 开发类问题
      • 常见问题总览
      • 常见错误码
    • 购买指南
      • 欠费说明
      • 如何购买
      • 产品定价
    • 开发指南
      • IOS开发说明
        • 互动直播
        • 特效直播
        • 拉流
        • IOS接入概述
        • 超低延迟直播
        • 直播推流
      • Android开发说明
        • 超低延时直播
        • 互动直播
        • 普通直播
        • 特效直播
        • 拉流
        • Android接入概述
        • 推流参数配置
  • 文档中心
  • arrow
  • 智能视频SDKVideoCreatingSDK
  • arrow
  • 移动直播SDK
  • arrow
  • 开发指南
  • arrow
  • Android开发说明
  • arrow
  • 超低延时直播
本页目录
  • 概述
  • 功能介绍
  • Demo体验
  • SDK 下载
  • 快速集成
  • 快速开始
  • 接口说明
  • BRTCPlayerParameters类
  • BRTCPlayerEvents类
  • RTCVideoView类
  • BRTCPlayer接口

超低延时直播

更新时间:2025-08-22

概述

百度云超低延时直播(BRTCPlayer)是在百度智能云视频直播的基础上通过链路传输协议优化,解决传统直播延迟过高的弊端,通过集成百度智能云播放器SDK,可以支持千万级并发场景的毫秒级延时直播,并为用户提供低卡顿、秒开流畅的直播观看体验。

功能介绍

BRTCPlayer 主要功能如下:

  • 支持UDP信令模式:除HTTP标准信令模式外支持UDP信令模式,0 RTT 极速启播,有效提升秒开率;
  • 支持AVC、HEVC视频硬解码;
  • 支持视频B帧:引入B帧,可在清晰率不变的情况下降低码率;
  • 支持AAC音频解码,支持MP4A-ADTS格式 48000 及 44100 采样率;
  • 支持视频平滑渲染: 网络抖动时,平滑渲染视频帧, 降低卡顿;
  • 支持最小延迟动态配置:可实现延迟换流畅,在允许范围内增大延迟可有效降低卡顿;
  • 支持网络健康度实时检测;
  • 内置HTTPDns支持;
  • 支持 SEI 消息;

Demo体验

前往DEMO下载页面扫码安装DEMO

SDK 下载

前往SDK下载页面下载支持超低延时直播的智能视频SDK V1.8.0 及以后版本, 内含Demo源码;

快速集成

百度云超低延时直播由独立SDK提供支持,用户可通过在播放侧单独集成BRTCPlayer SDK实现超低延时直播,而推流侧则可复用当前使用的推流器,仅需在百度直播LSS平台针对当前域名开通低延时播放能力。 BRTCPlayer SDK具体的集成步骤如下:

  • BRTCPlayer 作为独立SDK 提供低延时播放能力,包体精简,classes.jar 约350KB, 单架构 so (如 armeabi-v7a) 1M;

image.png

  • 导入BRTCPlayer aar到工程,集成后的示例如下:

image.png

  • 修改 build.gradle
Java
1dependencies {
2    implementation fileTree(dir: 'libs', include: ['brtcplayer.aar'])
3    implementation 'com.squareup.okhttp3:okhttp:3.10.0'
4    ...
5}
  • 添加混淆规则
Plain Text
1-keepclasseswithmembernames,allowshrinking,allowoptimization class * {
2    native <methods>;
3}
4
5-keep interface * {
6    public <fields>;
7    public <methods>;
8}
9
10-keep class com.baidu.rtc.** {*;}
11-keep class com.webrtc.** {*;}

快速开始

  1. 创建播放渲染视窗
Java
1// 在布局文件中添加渲染控件
2<com.baidu.rtc.RTCVideoView
3        android:id="@+id/brtc_video_view"
4 		android:layout_width="match_parent"
5        android:layout_height="match_parent" />
6
7// 寻回渲染控件对象
8mVideoView = (RTCVideoView) findViewById(R.id.brtc_video_view);
  1. 创建播放器对象及播放器初始化
Java
1// 创建播放器对象
2mBRTCPlayer = new BRTCPlayerImpl(this);
3// 创建播放参数集,初始化播放器
4mPlayerParameters = new BRTCPlayerParameters();
5// 设置播放器信令服务地址
6mPlayerParameters.setPullUrl(mSignalUrl);
7// UDP 信令模式需要进行相关预设
8if (bUseUdpSignaling) {
9    // 设置Udp信令模式
10    mPlayerParameters.setEnableSignalOverUdp(bUseUdpSignaling);
11    if (bEnableHevc) {
12        // 由业务侧确定是否为H265格式,默认为H264格式; udp 信令模式需设置视频编码
13        mPlayerParameters.setVideoDecodeFormat(BRTCPlayerParameters.H265);
14    }
15    // 音频默认格式为 MP4A-ADTS, udp 信令模式需设置采样率
16    mPlayerParameters.setAudioSampleRate(mAudioSampleRate);
17}
18// 初始化播放器 传入播放参数及事件监听器
19mBRTCPlayer.initPlayer(mPlayerParameters, this);
  1. 播放设置
Java
1// 设置播放渲染视图
2mBRTCPlayer.setSurfaceView(mVideoView);
3// 设置媒体流地址
4mBRTCPlayer.setStreamUri(mStreamUrl);
  1. 播放控制
Java
1// 准备播放,获取播放依赖资源
2mBRTCPlayer.prepareAsync();
3// 开始播放
4mBRTCPlayer.startPlay();
5// 暂停播放
6mBRTCPlayer.pausePlay();
7// 恢复播放
8mBRTCPlayer.resumePlay();
9// 停止播放
10mBRTCPlayer.stopPlay();
  1. 释放播放器
Java
1// 释放播放器
2mBRTCPlayer.releasePlayer();

在智能视频SDK Demo中对上述流程有详细的展示,可以参考;

接口说明

BRTCPlayerParameters类

接口名 描述
void setEnableDebug(boolean enable) 设置是否开启debug日志
void setPullUrl(String pullUrl) 设置信令服务地址,格式为http[:s]//domain/brtc/v3/pullstream
void setAutoPlay(boolean autoPlay) 设置是否自动启播,默认false
void void setEnableSilentStart(boolean enable) 设置静音启播
void setBaseDelayMs(int baseDelayMs) 设置最小延时, 可通过该参数增大延时降低卡顿提升播放流畅度
void setCpuType(String cpuType) 指定下载的SO库CPU架构
void setVideoDecodeFormat(int videoDecodeFormat) 设置视频解码格式,由业务侧确定是否为H265格式,默认为H264格式,仅UDP信令模式
void setAudioSampleRate(int sampleRate) 设置音频播放采样率[48000, 44100], 仅UDP信令模式
void setEnableVideoBFrame(boolean bFrame) 是否开启B帧支持,由业务侧确定是否开启,默认开启 ,仅UDP信令模式

BRTCPlayerEvents类

错误码 含义
BRTC_PLAYER_ERROR_INVALID_URL = 10000 URL 格式错误
BRTC_PLAYER_ERROR_ICE_CHANNEL = 10001 ICE 连接错误
BRTC_PLAYER_ERROR_RESERVED = 10002 替换预留错误码
BRTC_PLAYER_ERROR_CONNECTION = 10003 连接创建失败
BRTC_PLAYER_ERROR_LOCAL_SDP_REQUEST = 10004 媒体描述请求失败
BRTC_PLAYER_ERROR_LOCAL_SDP_SET = 10005 媒体描述设置失败
BRTC_PLAYER_ERROR_REMOTE_SDP_REQUEST = 10006 远端媒体描述请求失败,一般由于启播放时主播侧已停播
BRTC_PLAYER_ERROR_REMOTE_SDP_SET = 10007 远端媒体描述设置失败
BRTC_PLAYER_ERROR_INVALID_STATE = 10008 播放状态错误
BRTC_PLAYER_ERROR_STREAMING_INTERRUPT = 10009 媒体流中断,一段时间未收媒体流,SDK内部检测到断流错误后会立即停止播放,一般在播放中主播停播但业务侧未退出
BRTC_PLAYER_ERROR_LOAD_LIBRARIES = 10010 SO库文件后下载失败
BRTC_PLAYER_ERROR_INVALID_LICENSE = 100011 license错误
BRTC_PLAYER_ERROR_LICENSE_FEATURE_INVALID = 10012 当前license不包含低延时播放feature
BRTC_PLAYER_ERROR_DECODER_OPEN_FAILED = 10013 解码器打开失败
int BRTC_PLAYER_ERROR_MTU_SIZE_CHECK_FAILED = 10014 用户网络MTU Size 检测失败(< 1300 Byte)无法支持RTC媒体传输,约2s后返回,建议业务侧降级为普通播放

事件码 含义
BRTC_PLAYER_EVENT_REMOTE_RENDER = 1000 开始远端渲染
BRTC_PLAYER_EVENT_ICE_CONNECTED = 1001 ICE连接成功
BRTC_PLAYER_EVENT_PEER_CONNECTION_CLOSED = 1002 对端连接关闭
BRTC_PLAYER_EVENT_STATS_UPDATED = 1003 媒体流信息更新
BRTC_PLAYER_EVENT_BUFFERING_START = 1004 Buffering start事件
BRTC_PLAYER_EVENT_BUFFERING_END = 1005 Buffering end事件
BRTC_PLAYER_EVENT_ICE_DISCONNECTED = 1006 ICE连接断开
BRTC_PLAYER_EVENT_NO_STREAMING_DETECTED = 1007 没有检测到媒体流
BRTC_PLAYER_EVENT_PLAY_TIME_STATISTIC = 1008
BRTC_PLAYER_EVENT_LOCAL_SDP_SET = 1009
BRTC_PLAYER_EVENT_REMOTE_SDP_ACQUIRED = 1010
BRTC_PLAYER_EVENT_LIBS_DOWNLOAD_COMPLETED = 1011
BRTC_PLAYER_EVENT_LIBS_LOADED_SUCCESS = 1012
BRTC_PLAYER_EVENT_RENDERVIEW_VISIBLE = 1013
启播各阶段耗时统计
BRTC_PLAYER_EVENT_DECODER_OPENED = 1014 解码器成功打开
BRTC_PLAYER_EVENT_START_RECONNECT = 1015 内部播放重连
BRTC_PLAYER_EVENT_LINK_DOWN = 1016 播放链路带宽不足,建议业务侧尝试低码率流播放
BRTC_PLAYER_EVENT_FIRST_AUDIO_PLAYOUT = 1007 音频首帧播放出事件, 若业务侧设置初始静音播放,则可在该事件恢复音频播放

事件回调 含义
void onPrepared() 播放器准备就绪
void onFirstFrameRendered() 首帧渲染事件
void onResolutionChanged(int w, int h) 分辨率更新回调
void onError(int errCode, String msg) 错误错误回调,错误码定义见前文
void onInfoUpdated(int event, Object msg) 事件更新回调,事件码定义见前文
void onPlayerStateChanged(BRTCPlayer.PlayerState currentState) 播放状态更新
void onSEIRecv(ByteBuffer data) 接收到SEI 消息,回调在解码线程,不应在该回调里实现复杂业务

SEI 数据格式(h264):[nal_type(1)|sei_type(1)|sei_size(n+1)|sei_payload(n*255+m)|trailing_bits(1)]
sei_size: 需判断第3个字节起连续0xFF的个数n,加第1个不为0xFF的字节(如: 0x21),该字段占字节数为 n + 1; 其值为:0xFF*n+0x21;
sei_payload: SEI字段的值(h265);如:[ 0x06 0x05 0x18 0x54 0x80 0x83 0x97 0xF0 0x23 0x47 0x4B 0xB7 0xF7 0x4F 0x32 0xB5 0x4E 0x06 0xAC 0x27 0x11 0xFE 0x69 0x79 0x01 0x00 0x00 0x80 ]
注: h265 与 h264 的 sei 格式略有不同, h264 的nal_type 为 0x06, sei_type 为0x 05; h265 的 nal_type 为 0x4e, sei_type 为两字节 0x01、0x05;

RTCVideoView类

枚举类型 描述
ScalingType.SCALE_ASPECT_FIT 缩放模式:适应
ScalingType.SCALE_ASPECT_FILL 缩放模式:拉伸

BRTCPlayer接口

接口名 描述
long initPlayer(BRTCPlayerParameters playParameters, BRTCPlayerEvents events) 初始化播放器。
playParameters 播放参数集
events 播放事件监听
void setEventObserver(BRTCPlayerEvents events) 设置播放事件监听
void setSurfaceView(RTCVideoView surfaceView) 设置播放渲染视窗,当前只支持RTCVideoView
void setScalingType(RTCVideoView.ScalingType scaleType) 设置播放视窗缩放模式
void prepareAsync() 准备播放
void setPlayWhenReady(boolean autoPlay) 设置是否自动启播,默认false
void startPlay() 开始播放
void pausePlay() 暂停播放,不停止拉流,仅暂停本地媒体流渲染
void resumePlay() 恢复播放,从暂停状态恢复播放
void stopPlay() 停止播放,停止媒体拉流及渲染,再次播放需调用startPlay()
boolean hasVideo() 媒体流是否包含视频流
boolean hasAudio() 媒体流是否包含音频流
void releasePlayer() 释放播放器
void setVolume(double volume) 设备播放音量
void setStreamUri(String streamPath) 设置播放媒体流地址,媒体流URL格式为webrtc://domain/app/stream
PlayerState getPlayerState() 获取播放状态

上一篇
IOS开发说明
下一篇
互动直播