新手指引

最近更新时间:2025-09-26 10:24:21

我的收藏
说明:
建议先了解基础概念,再根据指引开始进行 Demo 体验和 SDK 开发集成。

基础概念

名词
说明
现场设备
在作业现场需要被监控或操控的设备, 常见如机器人、车辆、工程机械、无人机等,主要作为视频推流端。
远端设备
在远端对现场设备进行操控或者视频观看的设备, 常见如电脑、驾驶舱、手机、平板、VR等,主要作为视频观看端。
会话权限
远端设备与现场设备建立会话的权限。拥有会话权限的远端设备可查看现场设备在线状态、订阅现场设备音频和视频、收取现场设备消息等。
控制权限
远端设备对现场设备下发控制消息/音频数据的权限。一个现场设备同时只能授予一个远端设备控制权限(master 权限),但可授予多个远端设备观看权限(guest 权限)。
项目 ID
项目标识。一个账号可创建不同项目进行管理,彼此间设备隔离。每个项目可单独查看总用量和会话统计数据。
设备 ID
项目下的设备标识,项目下唯一。与项目ID可共同构成全局唯一设备ID,projectID/deviceID。
设备密码
用于设备接入验证的密码,又称为设备token。设备接入时会基于设备密码生成验证信息与云端校验。 设备密码可通过接口更新, 或者基于项目共享密钥签名生成。详细参见 免注册登录与临时会话授权
配置 JSON
用于 SDK 初始化的 JSON 配置,可设置 SDK 的接入信息并配置 SDK 功能选项。详细参见 现场设备配置说明远端设备配置说明
视频流 ID
现场设备下的视频流标识,以0开始编号,与配置 JSON 中 streams_config 数组元素编号一致,最大值为设备总流数(device_streams)-1。
视频流接收句柄
远端设备用于接收视频流的句柄标识,每个句柄只能同时拉取一路视频流,可与视频渲染窗口关联。详细参见 视频观看与切流
按需推流
现场设备默认按需推流,即有远端设备订阅时才会推送视频流。计费也是按实际远端设备订阅会话时长进行计费。如需强制推流可通过配置开启。
视频接入授权
预付费包月时长包,可绑定现场设备。观看对应现场设备视频流的会话时长消耗,都会从绑定时长包中扣减。如果未绑定时长包但开启了后付费,则会按对应用量直接从腾讯云账号按日扣减。
强制登录
同一时间,同一个设备 ID 只能有一个客户端登录。默认后登录客户端会被阻止登录。如果打开强制登录(配置 force_login 为1),后登录客户端会踢除之前登录的客户端。
SDK 证书
SDK 包中 device.pem 证书文件,配置 JSON 会通过 certificate 配置加载该证书文件路径。如果证书文件路径错误或系统时间超出证书有效期范围,可能导致无法连接云服务器。

快速体验 Demo

根据 Demo 体验 页面引导,您需要完成以下操作:
1. 完成业务开通和试用授权申请。
2. 完成项目创建、现场设备创建和远端设备创建。
3. 下载对应平台 Demo。
4. 绑定试用视频接入授权到现场设备。
5. 生成配置 JSON,完成配置文件。
6. 运行 Demo 进行体验。

查看视频指标

若您遇到卡顿或者视频延迟大的情况,请查看 Demo 显示的指标或根据 会话查看 操作指引查看后台会话详情指标。以下是相关指标的说明。

端到端视频指标

视频延迟:从现场设备到远端设备的视频传输延迟(含编解码)。
视频卡顿率:远端设备观看的视频卡顿率。100ms/150ms卡顿率为卡顿时长超过100ms/150ms的视频卡顿率。高于常规实时音视频200/300ms门限。

现场设备网络指标

网络 rtt:现场设备到就近接入服务器的网络回环延迟。
网络 lost:现场设备到服务器网络丢包率。

远端设备网络指标

网络 rtt:远端设备到就近接入服务器的网络回环延迟。
网络 lost:远端设备到服务器网络丢包率。

现场设备视频传输指标

视频 fps:现场设备推流到服务器的视频传输帧率。
视频 rate: 现场设备推流到服务器的视频传输码率。
带宽估计:SDK 估计的现场设备到服务器网络带宽,上限以视频流期望码率之和最大范围估计。
调控码率:SDK 建议的视频流传输码率,其值为 min(视频流分配带宽,视频流期望码率)。

远端设备视频传输指标

视频 fps:远端设备从服务器接收的视频传输帧率
视频 rate: 远端设备从服务器接收的视频传输码率

其他指标

现场设备编码耗时:SDK 进行编码时,单帧编码耗时,通常在20ms以内,典型值约10ms。
远端设备解码耗时:SDK 进行解码时,单帧解码耗时,通常在20ms以内, 典型值约10ms。

指标优化建议

国内视频延迟指标通常小于100ms。现场设备网络(蜂窝) rtt 通常小于50-60ms,远端设备网络(WiFi) rtt 通常小于30-40ms。可参考该典型值进行优化。
当发现期望码率高于调控码率或带宽估计值过低时:建议优化 视频流编码配置,并尽量提高现场设备网络带宽,例如增加蜂窝网卡使用 多网络路径传输
当发现设备网络 rtt 过大,但丢包和带宽估计值正常时:建议优化网络路径,现场设备查看 SIM 卡出口,远端设备优化 Wi-Fi 接入等。
当发现带宽估计值正常,现场设备视频传输码率低于建议码率,但网络仍存在较明显固定丢包时:建议优化网络设备,使用较好的 Wi-Fi 路由器或用手机热点测试。

SDK 开发集成

现场设备 SDK 开发

基础流程:SDK API 调用流程
示例代码
集成事项
视频流对接:SDK 使用视频流托管模式,仅需应用输入视频流数据或配置视频流采集相机。SDK 会自动进行按需推流和断网恢复。
控制流对接:SDK 在现场设备和远端设备间使用二进制透传,应用自行定义传输数据格式,可参考 控制数据传输 对接,需要注意监控延迟回调和接收消息间隔,进行网络异常降级保护。
配置管理:根据 现场设备配置说明 在配置中配置相关功能以及 device.pem 证书和日志路径,建议使用绝对路径。
进阶注意
回调状态监听
参数
说明
onSignalState
必监听,用于查看初始化阶段和后续设备与远端服务的连接状态。
onState
建议监听,用于查看视频流连接状态。当现场设备进行推流时,该状态为已连接。
onMediaState
建议监控,用于查看视频流传输状态和网络情况。
onEncodeFrameInfo
使用外部输入编码流时建议监听,用于指导输入编码流的码率和I帧刷新。
onOperationPermissionRequest
使用自定义控制权限管理时必监听,用于接收远端设备控制权限请求。
onErrorEvent
SDK 底层错误或告警信息提示。
onLatencyReport
使用控制流时必监听,用于查看远控延迟,便于业务进行降级保护。
视频流输入
您需根据 现场设备配置说明,配置对应的视频流协议:
V4L2 相机采集: protocol 为 v4l2。
RTSP 相机采集:编码流透传时 protocol 为 rtsp_enc, 转码后传输 protocol 为 normal,详细参见 网络摄像机接入
外部输入视频图像:protocol 为 outside,调用 TRRO_externalVideoData 接口输入,支持 I420, YUYV, UYVY, NV12, JPEG, RGB 等多种格式,详见头文件。
外部输入视频流编码数据:protocol 为 outenc,调用TRRO_externalEncodeVideoData接口输入,支持 H264/H265输入,关键帧中需带有SPS/PPS 信息。
编码流配置:您可查看 视频流编码配置 文档进行配置。
物联网白名单配置:您可查看 物联网卡白名单配置 文档进行配置。
多网络路径传输配置:您可查看 多网络路径传输 文档进行配置。
语音使用:您可查看 语音对讲 使用语音。

远端设备 SDK 开发

基础流程:SDK API 调用流程
API 文档
iOS API
示例代码
集成事项
视频流拉取:SDK 封装了拉流 API,调用 connect 即可获取指定现场设备指定 ID 的视频流;SDK 会自动维持端到端拉流状态和断网恢复。
视频流渲染:SDK 提供内置渲染功能以及外部渲染示例代码,可根据需要选取内部渲染或外部渲染。
控制流对接:SDK 在现场设备和远端设备间使用二进制透传,应用自行定义传输数据格式。
在线状态管理:通过 TRRO_getGwListTRRO_getGwInfo 查看现场设备在线情况。
延迟监测:一般建议在现场设备做延迟异常的降级处理。远端设备可根据延迟情况给用户进行操作提示。
进阶注意
回调状态监听
参数
说明
onSignalState
必监听,用于查看初始化阶段和后续设备与远端服务的连接状态。
onState
必监听,用于查看视频流接收句柄与服务端视频连接状态是否建立。
onMediaState
建议监听,用于查看远端设备拉流与服务器的视频流传输状态和网络情况。
onFieldSideMediaState
建议监听,用于查看现场设备推流与服务器的视频流传输状态和网络情况。
OnOperationPermissionState
使用应用控制授权时必监听,用于接收现场设备的控制权限通知。
onAllLatencyReport
建议监听,用于查看现场设备到远端设备端到端视频流和控制数据流延迟指标。
onErrorEvent
建议监听,SDK 底层错误或告警信息提示。
onRemoteFrame
外部渲染必监听,用于接收解码后的原始图像。
onRemoteEncodedFrame
应用自主解码必监听,用于接收原始编码数据。无需 SDK 解码,建议开启 TRRO_useExternalDecoder
视频流输出
SDK 渲染:通过 TRRO_connectFieldTRRO_setWindows 接口将视频流关联接收句柄和渲染窗口。内部渲染支持夜视增强、超分等处理,详细可参见 TRRO_SetRenderConfig
外部渲染:通过 onRemoteFrame 获取解码后原始图像进行渲染。
本地录制:配置中开启 "file_path" 配置录制目录。
视频转推:通过 TRRO_startMediaPush 接口进行视频流转推。
现场设备编码配置更新:您可查看 TRRO_fieldDeviceEncodeConfig 文档进行配置。
会话连接诊断:您可查看 会话连接诊断 文档进行操作。
语音对接:您可查看 语音对讲 文档进行接入。
视频流观看与切流:您可查看 视频观看与切流 文档进行操作。
控制授权管理:您可查看 控制授权管理 文档进行管理。

云端开发

API 文档服务端 API 文档
集成事项
项目创建:可提前手动创建项目,或通过创建项目接口
设备注册、密钥更新与会话权限管理:可参考 配置与密钥管理 两种方式进行管理:
设备注册管理方式:通过 创建设备接口 进行设备注册,并通过 修改权限接口 管理会话权限。
免注册与项目共享密钥方式:通过设置项目共享密钥,生成设备每次登录的token,并通过临时授权码管理会话权限。详细参见 免注册登录与临时会话授权
云端录制与转推:设置 云端录制与转推回调接口,调用 开启云端录制云端转推