tencent cloud

实时音视频

动态与公告
产品动态
产品近期公告
关于 TRTC Live 正式上线的公告
关于TRTC Conference 正式版上线的公告
Conference 商业化版本即将推出
关于多人音视频 Conference 开启内测公告
关于音视频通话 Call 正式版上线的公告
关于腾讯云音视频终端 SDK 播放升级及新增授权校验的公告
关于 TRTC 应用订阅套餐服务上线的相关说明
产品简介
产品概述
基本概念
产品功能
产品优势
应用场景
性能数据
购买指南
计费概述
免费时长说明
月订阅
现收现付
TRTC 逾期与暂停政策
常见问题解答
退款说明
新手指引
Demo 体验
视频通话 SDK
组件介绍
开通服务
跑通 Demo
快速接入
离线唤醒
会话聊天
云端录制
AI 降噪
界面定制
Chat 集成通话能力
更多特性
无 UI 集成
服务端 API
客户端 API
解决方案
错误码表
发布日志
常见问题
视频会议 SDK
组件介绍(TUIRoomKit)
开通服务(TUIRoomKit)
跑通 Demo(TUIRoomKit)
快速接入(TUIRoomKit)
屏幕共享(TUIRoomKit)
预定会议(TUIRoomKit)
会中呼叫(TUIRoomKit)
界面定制(TUIRoomKit)
虚拟背景(TUIRoomKit)
会议控制(TUIRoomKit)
云端录制(TUIRoomKit)
AI 降噪(TUIRoomKit)
会中聊天(TUIRoomKit)
机器人推流(TUIRoomKit)
更多特性(TUIRoomKit)
客户端 API(TUIRoomKit)
服务端 API(TUIRoomKit)
常见问题(TUIRoomKit)
错误码 (TUIRoomKit)
SDK更新日志(TUIRoomKit)
直播与语聊 SDK
Live 视频直播计费说明
组件介绍
开通服务(TUILiveKit)
跑通 Demo
无 UI 集成
UI 自定义
直播监播
视频直播
语聊房
高级功能
客户端 API
服务端 API
错误码
发布日志
常见问题
RTC Engine
开通服务
SDK 下载
API-Example
接入指引
API-参考手册
高级功能
AI 集成
概述
MCP 配置
Skills 配置
集成指南
常见问题
RTC RESTFUL API
History
Introduction
API Category
Room Management APIs
Stream mixing and relay APIs
On-cloud recording APIs
Data Monitoring APIs
Pull stream Relay Related interface
Web Record APIs
AI Service APIs
Cloud Slicing APIs
Cloud Moderation APIs
Making API Requests
Call Quality Monitoring APIs
Usage Statistics APIs
Data Types
Appendix
Error Codes
控制台指南
应用管理
套餐包管理
用量统计
监控仪表盘
开发辅助
解决方案
实时合唱
常见问题
迁移指南
计费相关
功能相关
UserSig 相关
应对防火墙限制相关
缩减安装包体积相关
Andriod 与 iOS 相关
Web 端相关
Flutter 相关
Electron 相关
TRTCCalling Web 相关
音视频质量相关
其他问题
旧版文档
RTC RoomEngine SDK(旧)
集成 TUIRoom (Web)
集成 TUIRoom (Android)
集成 TUIRoom (iOS)
集成 TUIRoom (Flutter)
集成 TUIRoom (Electron)
TUIRoom API 查询
实现云端录制与回放(旧)
监控仪表盘计费(旧)
协议与策略
安全合规认证
安全白皮书
信息安全说明
服务等级协议
苹果隐私策略:PrivacyInfo.xcprivacy
TRTC 政策
隐私协议
数据处理和安全协议
词汇表

实现云端切片

PDF
聚焦模式
字号
最后更新时间: 2025-09-15 21:13:16

场景说明

在远程教育、秀场直播、视频会议、远程定损、金融双录、在线医疗等应用场景中,考虑取证、质检、审核、存档和回放等需求,常需要将整个视频通话或互动直播过程通过云端切片存储下来的情况。

云端切片费用

通过 TRTC 发起的云端审核,TRTC 仅向您收取音频切片和视频截图的费用,同时第三方审核将按照各自的计费规则向您收取审核费用。音频切片和视频截图的费用详情请参考 音频切片和视频截图计费说明

功能说明

通过 TRTC 的云端切片功能,您可以将房间中每一个用户的音视频流进行云端音频切片或者视频截图处理,无需客户端接入。

名词解释

音频切片:将房间内的某一个用户的音频流按照一定的时间间隔进行切片处理,切片后为音频片段。
视频截图:将房间内的某一个用户的视频流按照一定的时间间隔进行截图处理,截图后为图片。
文件存储:支持将云端切片后的文件存储到对象存储 COS,AWS S3, 阿里云 OSS。
回调通知:我们支持回调通知的能力,通过配置您的回调域名,云端切片的事件状态会通知到您的回调服务器。

音频切片及视频截图流程

如下图所示,房间里面主播1和主播2都上行了音视频流,假设您通过机器人订阅了主播1和主播2的音视频流,并设置同时进行视频截图和音频切片,后台会分别拉取主播1和主播2的音视频流,把音视频流切片成多个独立的音频文件和截图图片文件:
主播1的多个音频切片文件。
主播1的多个视频截图图片文件。
主播2的多个音频切片文件。
主播2的多个视频截图图片文件。
后台会把这些文件上传到您指定的云存储平台(对象存储 COS,AWS S3或者 阿里云OSS)。具体切片流程如下:



API 接口和切片并发限制

切片接口的调用频率限制为20qps(如需提高 QPS 请 提交工单)。
单个接口超时时间为6秒。
单个应用下默认并发切片支持500路(API 切片任务的总和),超过并发限制的任务会失败,如需更多并发路数,请 提交工单 联系我们。
单次切片任务最大支持同时订阅的房间内主播数为25个,主播只上行音频也会单独占据一路。

切片任务执行流程

启动切片任务(CreateCloudSlice

通过您的后台服务调用 REST API (CreateCloudSlice)来启动云端切片,需要重点关注参数— 任务 ID(TaskId);这个参数是本次切片任务的唯一标识,您需要保存下这个任务 ID 作为后续针对这个切片任务接口操作的输入参数。
说明:
1. 发起任务(CreateCloudSlice
发起云端切片任务的接口 CreateCloudSlice 中需要您指定分配切片机器人的进房参数 UserId 和 UserSig(如何获取 UserSig),请不要与您房间内的正常主播或观众使用的 UserId 重复且不可与正在切片中的房间内指定的切片机器人 UserId 一致,否则会导致切片任务失败。
2. 指定切片用户(SubscribeStreamUserIds
您也可以通过参数 SubscribeStreamUserIds 指定想要切片或者不想切片的主播用户的黑白名单信息,当然我们也支持在切片的过程中进行更新操作。
3. 指定存储位置(SliceStorageParams
3.1 存储位置:支持存储至AWS S3 或对象存储 COS,请通过在SliceStorageParams 参数进行指定您的存储参数。
3.2 切片格式:图片切片文件为png, 音频切片文件为ogg

查询切片任务状态 (DescribeCloudSlice

如果需要,您可以调用该接口查询切片服务的状态。

修改切片任务参数(ModifyCloudSlice

如果需要,您可以调用该接口修改切片服务的参数,如修改指定切片用户(SubscribeStreamUserIds)。

停止切片任务 (DeleteCloudSliceTask

成功开启切片任务后,可以使用此接口来停止任务。

切片文件管理

切片文件命名说明

音频切片默认命名为:
{你的桶名称}/{taskId}/{userId}/audios/{sdkappid}_{roomId}_{userid}_{UTC时间}.ogg
视频截图图片默认命名为:
{你的桶名称}/{taskId}/{userId}/images/{sdkappid}_{roomId}_{userid}_{UTC时间}.png
字段含义说明:
字段
含义
<taskId>
切片的任务 ID
<sdkappid>
切片任务的 SdkAppId
<roomId>
切片的房间号
<userid>
切片的用户 ID
<UTC时间>
当前时间字符串 例如:20250106143143

查找切片文件

登录 对象存储 COS 控制台,选择您指定的存储桶 Bucket 进行查找:
音频切片路径:{您的桶名称}/{taskId}/{userId}/audios/
视频截图路径:{您的桶名称}/{taskId}/{userId}/images/


切片回调事件

我们针对云端切片功能提供了多种的回调事件,帮助您及时了解切片任务的处理和完成情况。

切片回调地址配置

实时音视频 TRTC 控制台支持自助配置回调信息,配置完成后即可接收事件回调通知。详细操作指引请参见 回调配置


回调接口

您可以提供一个接收回调的 HTTP/HTTPS 服务网关来订阅回调消息。当相关事件发生时,云切片系统会回调事件通知到您的消息接收服务器。

事件回调消息格式

事件回调消息以 HTTP/HTTPS POST 请求发送给您的服务器,其中:
字符编码格式:UTF-8。
请求:body 格式为 JSON。
应答:HTTP STATUS CODE = 200,服务端忽略应答包具体内容,为了协议友好,建议客户应答内容携带 JSON: {"code":0}。

切片回调事件

参数说明

事件回调消息的 header 中包含以下字段:
字段名
Content-Type
application/json
Sign
签名值
SdkAppId
SDK 应用 ID 值

事件回调消息的 body 中包含以下字段:

字段名
类型
含义
EventGroupId
Number
事件组 ID, 云端切片固定为10
EventType
Number
回调通知的事件类型
CallbackTs
Number
事件回调服务器向您的服务器发出回调请求的 Unix 时间戳,单位为毫秒
EventInfo
JSON Object
事件信息

事件类型说明:

字段名
类型
含义
EVENT_TYPE_CLOUD_SLICE_START
1001
云端切片模块启动
EVENT_TYPE_CLOUD_SLICE_STOP
1002
云端切片模块退出
EVENT_TYPE_CLOUD_SLICE_UPLOAD_START
1003
云端切片切片文件上传任务启动,仅在选择对象存储时回调
EVENT_TYPE_CLOUD_SLICE_FILE_INFO
1004
云端切片 生成视频截图或者音频分片文件,上传成功后回调,仅在选择对象存储时回调
EVENT_TYPE_CLOUD_SLICE_UPLOAD_STOP
1005
云端切片文件上传结束,仅在选择对象存储时回调
EVENT_TYPE_CLOUD_SLICE_UPLOAD_ERROR
1006
云端切片投递模块发生错误

事件信息说明:

字段名
类型
含义
RoomId
String/Number
房间名(类型与客户端房间号类型一致)
EventTs
Number
事件发生的 Unix 时间戳,单位为秒 (不建议使用该字段,建议使用EventMsTs)
EventMsTs
Number
事件发生的 Unix 时间戳,单位为毫秒
UserId
String
切片机器人的用户 ID
TaskId
String
切片任务 ID,一次云端切片任务唯一的 ID
Payload
JsonObject
根据不同事件类型定义不同
事件类型为1001 (EVENT_TYPE_CLOUD_SLICE_START) 时 Payload 的定义:
字段名
类型
含义
Status
Number
0:代表切片模块启动成功
1:代表切片模块启动失败
{
"EventGroupId": 10,
"EventType": 1001,
"CallbackTs": 1726125338219,
"EventInfo": {
"RoomId": "960025",
"EventTs": 1726125338,
"EventMsTs": 1726125338219,
"UserId": "inspect",
"TaskId": "-npVqpdU7sBobiK1iskE3BwlLIebCMrbKUbnL4K-rO+8oZWQndib9uvO4Deq9P1Na+sXGNGNuAE."
"Payload": {
"Status": 0
}
}
}
事件类型为1002 (EVENT_TYPE_CLOUD_SLICE_STOP) 时 Payload 的定义:
字段名
类型
含义
LeaveCode
Number
0:代表切片模块正常调用停止切片退出
1:切片机器人被客户踢出房间
2:客户解散房间
3:服务器将切片机器人踢出
4:服务器解散房间
99:代表房间内除了切片机器人没有其他用户流,超过指定时间退出
100:房间超时退出
101:同一用户重复进入相同房间导致机器人退出
{
"EventGroupId": 10,
"EventType": 1002,
"CallbackTs": 1729601782073,
"EventInfo": {
"RoomId": "975626",
"EventTs": "1729601782",
"EventMsTs": 1729601782073,
"UserId": "SliceTaskDuration1-partner-robot",
"TaskId": "-nHRjqhU7gTG0UIL-MquzG8D0Q+wehTbVTeeIIK-rO+8oZWQndibtueIpQ8A0F3n9PEVRk0rngE.",
"Payload": {
"LeaveCode": 99
}
}
}
事件类型为1003 (EVENT_TYPE_CLOUD_SLICE_UPLOAD_START) 时 Payload 的定义:
字段名
类型
含义
Status
Number
0:代表上传模块正常启动
1:代表上传模块初始化失败。
{
"EventGroupId": 10,
"EventType": 1003,
"CallbackTs": 1726750023538,
"EventInfo": {
"RoomId": "295210",
"EventTs": 1726750023,
"EventMsTs": 1726750023538,
"UserId": "inspect",
"TaskId": "-nHwXIdU7mJvL22pFsXZ-v7OgEzq1OzbNXe9L4K-4pycoZWQndib3ZfzqN7Wq+AdiPLMBLxd0gE.",
"Payload": {
"Status": 0
}
}
}
事件类型为1004 (EVENT_TYPE_CLOUD_SLICE_FILE_INFO )时 Payload 的定义:
字段名
类型
含义
Payload
对象
切片结果
StreamUserId
String
当前主播id
{
"EventGroupId": 10,
"EventType": 1004,
"CallbackTs": 1726750309161,
"EventInfo": {
"RoomId": "963600",
"EventTs": 1730186326,
"EventMsTs": 1730186326109,
"UserId": "SliceCustomUploadCase6-partner-robot",
"StreamerUserId": "SliceCustomUploadCase6-user0",
"TaskId": "-nHRjqhU7kGRgNhGI8Gq8JkT7wnFeUXbXG-6IYK-yb3t8ZWQndibhWMUwNxQwRlgnWuvEuBSqAE.",
"Payload": {
"FileList": "20012177_2428_1929088_20250106143143.png"
}
}
}

事件类型为1005 (EVENT_TYPE_CLOUD_SLICE_UPLOAD_STOP) 时 Payload 的定义:
字段名
类型
含义
Status
Number
结束送审
{
"EventGroupId": 10,
"EventType": 1005,
"CallbackTs": 1726751347072,
"EventInfo": {
"RoomId": "295211",
"EventTs": 1726751347,
"EventMsTs": 1726751347072,
"UserId": "inspect",
"TaskId": "-nHwXIdU7jx6C00Nt8Vr+3h4GwYdP7zbeHi9L4K-4pycoZWQndibqFeEaV4LvjFqSuQvaAkrNQE.",
"Payload": {
"Status": 0
}
}
}
事件类型为1006 (EVENT_TYPE_CLOUD_SLICE_UPLOAD_ERROR) 时 Payload 的定义:
字段名
类型
含义
Code
Number
COS 或者第三方存储错误码
Message
String
COS 或者第三方存储错误消息
{
"EventGroupId": 10,
"EventType": 1006,
"CallbackTs": 1726751347072,
"EventInfo": {
"RoomId": "295211",
"EventTs": 1726751347,
"EventMsTs": 1726751347072,
"UserId": "inspect",
"TaskId": "-nHwXIdU7jx6C00Nt8Vr+3h4GwYdP7zbeHi9L4K-4pycoZWQndibqFeEaV4LvjFqSuQvaAkrNQE.",
"Payload": {
"Code": 10002,
"Message": "BadRequest"
}
}
}



















帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈