human: 如何处理七牛云的实时音视频RTC-Pub

gpt: [实时音视频](https://developer.qiniu.com/rtc) > API 文档 >
[服务端API](https://developer.qiniu.com/rtc/api/12000/the-service-api) > RTC-Pub

#  RTC-Pub

最近更新时间: 2022-09-09 17:14:31

rtc-pub 允许用户将视频文件转推到房间内，供房间内的其他用户订阅。

## 接口鉴权

与开启房间相同，需要在路径上带上token=。room token 必须是合法的房间token，并具有管理员权限。

## 限制条件

目前转推的文件必须使用 H264 视频编码及 AAC
音频编码（采样率为44100Hz），flv封装。不符合条件的文件在转推时可能出现无法观看、音视频与源文件有较大差异等异常，可转码后再使用转推服务。

## 建立转推任务

**路径**

    
    
    POST /v3/apps/<appID>/rooms/<roomID>/pub
    

**请求参数**

参数名称| 位置| 含义| 备注  
---|---|---|---  
sourceUrls| 请求体| 转推视频的下载地址列表| 有多个时，依次转推，即第一个源地址转推完毕后开始转推第二个，依此类推。  
  
**请求示例**

    
    
    curl -XPOST -H"Content-Type:application/json"  -v https://rtc.qiniuapi.com/v3/apps/app000/rooms/room000/pub?token=<roomtoken>\
    -d'{"sourceUrls":["https://video.example.com/1.mp4"]}'
    

**返回示例**

    
    
    {"taskID":"1234567890_rtcaabbccddeeff1234567890"}
    

返回创建的转推任务ID。

## 列出转推任务

**路径**

    
    
    GET /v3/apps/<appID>/rooms/<roomID>/pub
    

**请求示例**

    
    
    curl -v https://rtc.qiniuapi.com/v3/apps/app000/rooms/room000/pub?token=<roomtoken>
    

**返回示例**

    
    
    {"tasks":[
    {"taskID":"1234567890_rtctask0","name":"rtctask0","appID":"abcdefghi","uid":1234567890,"roomID":"abcdefghi:room0","sourceUrls":["http://video.example.com/aaa-123.mp4"],"status":"running","createTime":"2021-01-01T10:00:00","startTime":"2021-01-01T10:00:01"},
    {"taskID":"1234567890_rtctask1","name":"rtctask1","appID":"abcdefghi","uid":1234567890,"roomID":"abcdefghi:room0","sourceUrls":["http://video.example.com/aaa-456.mp4"],"status":"stopped","createTime":"2021-01-01T10:00:00","startTime":"2021-01-01T10:00:01","stopTime":"2021-01-01T10:01:00"}
    ]}
    

## 查看转推任务详情

**路径**

    
    
    GET /v3/apps/<appID>/rooms/<roomID>/pub/<taskID>
    

**请求示例**

    
    
    curl -v https://rtc.qiniuapi.com/v3/apps/app000/rooms/room000/pub/1234567890_rtctask0?token=<roomtoken>
    

**返回示例**

    
    
    {"taskID":"1234567890_rtctask0","name":"rtctask0","appID":"abcdefghi","uid":1234567890,"roomID":"abcdefghi:room0",
    "roomServer":"room-server-0","sourceUrls":["http://video.example.com/aaa-123.mp4"],"status":"running","createTime":"2021-01-01T10:00:00","startTime":"2021-01-01T10:00:01"}
    

## 删除转推任务

**路径**

    
    
    DELETE /v3/apps/<appID>/rooms/<roomID>/pub/<taskID>
    

**请求示例**

    
    
    curl - XDELETE -v https://rtc.qiniuapi.com/v3/apps/app000/rooms/room000/pub/1234567890_rtctask0?token=<roomtoken>
    

**返回示例**

正常返回时状态码为200,无其他信息。

## 开始转推任务

开始已经停止的转推任务。若转推任务处于failed/finished状态，从头开始；处于stopped状态，从停止点开始。

**路径**

    
    
    POST /v3/apps/<appID>/rooms/<roomID>/pub/<taskID>/start
    

无请求体。

**请求示例**

    
    
    curl -XPOST -H"Content-Type:application/json"  -v https://rtc.qiniuapi.com/v3/apps/app000/rooms/room000/pub/1234567890_rtcaabbccddeeff1234567890/start?token=<roomtoken>
    

**返回示例** 正常返回时状态码为200，无其他信息.

## 停止转推任务

停止转推任务，相当于视频播放中的暂停。

**路径**

    
    
    POST /v3/apps/<appID>/rooms/<roomID>/pub/<taskID>/stop
    

无请求体。

**请求示例**

    
    
    curl -XPOST -H"Content-Type:application/json"  -v https://rtc.qiniuapi.com/v3/apps/app000/rooms/room000/pub/1234567890_rtcaabbccddeeff1234567890/stop?token=<roomtoken>
    

**返回示例**

正常返回时状态码为200，无其他信息。

## 设置seek时间

设置视频文件开始播放的时间。

**路径**

    
    
    POST /v3/apps/<appID>/rooms/<roomName>/pub/<taskID>/seek
    

**请求参数**

参数名称| 位置| 含义| 备注  
---|---|---|---  
index| 请求体| sourceUrl的索引号，即第几个源地址。从0开始编号。|  
seek| 请求体| 转推的seek位置，相对视频文件的开始时间。单位为秒。|  
  
**请求示例**

    
    
    curl -XPOST -H"Content-Type:application/json"  -v https://rtc.qiniuapi.com/v3/apps/app000/rooms/room000/pub/1234567890_rtcaabbccddeeff1234567890/seek?token=<roomtoken>\
    -d'{"index":0,"seek":120}'
    

该请求将第一个视频seek位置设置到120秒的位置。

**返回示例** 正常返回时状态码为200，无其他信息。

以上内容是否对您有帮助？