CDN推流
通过CDN推流API来开启和停止直播。
开启推流
请求
POST /streaming/start
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
{
"channelId":"HelloPano", // string, 必填, 频道ID
"streamList": [
{
"streamId": 1, // int, 必填, 直播流ID
"url": "rtmp://...", // string, 必填, RTMP推流地址
"flag": 15, // int, 必填, 媒体类型
"type": 1, // int, 必填, 推流模式
"userId": "1", // string, 可选, 用户ID
"layout": {...}, // object, 可选, 布局参数
"fps": 15, // int, 可选, 帧率
"watermarks": [...], // array, 可选, 水印
"delayClose": 0 // int, 可选, 延迟关闭
},
{
"streamId": 2,
"url": "rtmp://...",
"flag": 15,
"type": 2,
"userId": "2",
"layout": {...},
"fps": 15,
"watermarks": [...],
"delayClose": 0
}
]
}
参数说明:
- streamList - 直播流列表,默认情况下,每个频道最多可以同时配置 3 路直播流。
- streamId - 直播流ID,由开发者指定,用于标识和区分同一channelId内的不同直播流,后续可以使用streamId来更新、结束推流。
开发者可以对同一个channelId创建多个直播流,每个流有不同的配置。 - flag - 媒体类型,表示推哪些媒体流,1: 推音频、2: 推视频、4: 推桌面共享、8: 推白板,多个值相加表示同时推多种媒体,值15表示所有媒体(15=1+2+4+8)
- type - 推流模式
"type": 1
,混流模式,频道内所有用户的音视频混合后推到CDN"type": 2
,单流模式,单个用户的音视频流混合后推到CDN(单流时必须指定userId
)
- userId - 用户ID
- 单流模式时表示推流的用户的
userId
(type
为2时,userId
是必填项) - 混流模式时表示主讲人ID,混流时如果不指定
userId
则第一个入会的用户作为主讲人
- 单流模式时表示推流的用户的
- layout - 布局参数,用于设置视频合流布局,格式请参考布局参数说明
- url - 推流地址,目前只支持RTMP推流,CDN一般支持RTMP、HLS和FLV等方式拉流
- 如果是自行采购的CDN服务,请向CDN厂商获取推拉流地址
- 如果是从Pano采购的CDN服务,请使用RESTful API获取推拉流地址,具体请咨询技术支持
- fps - 设置推流的帧率,支持30帧(默认值)和15帧
- watermarks - 水印,格式请参考水印
- delayClose - 延迟关闭,在收到停止推流的消息后,延迟一段时间关闭推流。有效值0-600, 单位秒,默认值为0(不延迟关闭)
响应
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
400 | 请求格式错误 |
401 | 认证错误 |
404 | 频道不存在。该错误可能是在第一个用户开启频道之前发起推流时发生,可尝试重试该请求。 |
500 | 服务器内部错误 |
更新推流
请求
PUT /streaming/update
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
{
"channelId":"HelloPano", // string, 必填, 频道ID
"streamList": [
{
"streamId": 1, // int, 必填, 直播流ID
"url": "rtmp://...", // string, 可选, 推流地址
"userId": "1", // string, 可选, 用户ID
"layout": {...}, // object, 可选, 布局参数
"fps": 15, // int, 可选, 帧率
"watermarks": [...] // array, 可选, 更新水印设置, 数组为空时表示删除水印
},
{
"streamId": 2,
"url": "rtmp://...",
"layout": {...},
"fps": 15,
"watermarks": [...]
}
]
}
通过更新接口可以更新stream的布局、直播url、混流时的主讲人Id等。
注意:type和flag不可以更新。如果是单流,userId也不可以更新。
响应
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
400 | 请求格式错误 |
401 | 认证错误 |
404 | 频道不存在 |
500 | 服务器内部错误 |
结束推流
请求
POST /streaming/stop
Host: api.pano.video
Content-Type: application/json
Authorization: PanoSign <PanoSign>
Tracking-Id: ef9b2acc8e1f4d598090eb6d9cbe8596
{
"channelId": "HelloPano", // string, 必填, 频道ID
"streamId": 1 // int, 可选, 当为空时, 结束频道下所有推流, 当不为空时, 仅结束此streamId对应推流
}
响应
状态码 | 说明 |
---|---|
200 | 请求成功处理 |
400 | 请求格式错误 |
401 | 认证错误 |
404 | 频道不存在 |
500 | 服务器内部错误 |