流媒体Api文档
点播接口
点播接口 - 01 上传点播文件
工作流程
graph LR
上传文件 --> 服务器判断有效性 --> FFMPeg切片处理 --> 生成M3U8点播文件 --> 返回视频URL
- post
/vod/upload
入参
参数 | 类型 | 描述 |
---|---|---|
file | File | 上传文件 |
path (选填) | String | 上传子目录 |
resolution(选填) | String | 多清晰度转码 如 yh,hfd,hd,sd 其中yh:原始视频(必须包含),hfd:超清,hd:高清,sd:标清 |
出参
200
参数 | 类型 | 描述 |
---|---|---|
id | String | 名称 |
size | String | 文件大小 |
type | String | 文件类型 |
status | String | 转码状态:(转码中-transing、等待转码-waiting、转码完成-done、转码失败-error) Allowed values: transing, waiting, done, error |
duration | String | 时长 |
videoCodec | String | 视频编码 |
audioCodec | String | 音频编码 |
aspect | String | 宽高 |
error | String | 错误信息 |
sharedLink | String | 分享链接 |
snapUrl | String | 封面图片链接 |
videoUrl | String | 点播播放链接 |
playNum | Integer | 点播次数 |
flowNum | Integer | 点播总流量(B) |
createAt | String | 创建时间, YYYY-MM-DD HH:mm:ss |
updateAt | String | 更新时间, YYYY-MM-DD HH:mm:ss |
{
"id": "VcN09XFSg",
"createAt": "2024-01-10 15:26:31",
"updateAt": "2024-01-10 15:26:31",
"name": "20220518093511934749_back",
"size": 9069143,
"type": "video/mp4",
"path": "/home/samples/SoftWare/EasyDSS-linux-4.6.0-23100914/data/vodsrc/VcN09XFSg.mp4",
"folder": "VcN09XFSg",
"status": "waiting",
"duration": 14,
"videoCodec": "H.264",
"audioCodec": "",
"videoCodecOriginal": "H.264",
"audioCodecOriginal": "",
"aspect": "1908x1080",
"error": "",
"shared": false,
"shareBeginTime": null,
"shareEndTime": null,
"rotate": 0,
"resolution": "",
"isresolution": false,
"resolutiondefault": "hd",
"transvideo": false,
"userId": "",
"localIp": "172.17.0.1",
"snapUrl": "",
"videoUrl": "/fvod/VcN09XFSg/video.m3u8",
"sharedLink": "/share.html?id=VcN09XFSg&type=vod",
"flowNum": 0,
"progress": 0,
"playNum": 0
}
点播接口 - 02 获取标签下对应的点播列表
- GET|POST
/vod/list
參數
欄位 | 類型 | 描述 |
---|---|---|
folder選填 | String | 子文件夹 |
start | Number | 分页开始,从零开始 |
limit | Number | 分页大小 |
sort選填 | String | 排序字段 |
order選填 | String | 排序顺序Allowed values: ascending , descending |
q選填 | String | 查询参数 |
200
欄位 | 類型 | 描述 |
---|---|---|
total | Number | 总数 |
rows | Object[] | 分页数据 |
id | String | |
name | String | 名称 |
size | String | 文件大小 |
type | String | 文件类型 |
status | String | 转码状态:(转码中-transing、等待转码-waiting、转码完成-done、转码失败-error)Allowed values: transing , waiting , done , error |
duration | String | 时长 |
videoCodec | String | 视频编码 |
audioCodec | String | 音频编码 |
aspect | String | 宽高 |
error | String | 错误信息 |
sharedLink | String | 分享链接 |
snapUrl | String | 封面图片链接 |
videoUrl | String | 点播播放链接 |
playNum | Integer | 点播次数 |
flowNum | Integer | 点播总流量(B) |
createAt | String | 创建时间, YYYY-MM-DD HH:mm:ss |
updateAt | String | 更新时间, YYYY-MM-DD HH:mm:ss |
点播接口 - 03 下载点播文件
graph LR
解析M3U8地址 --> 返回文件地址
- get
/vod/download/:id
参数 | 类型 | 描述 |
---|---|---|
id | String | 点播ID |
入参
- 使用ffmpeg将m3u8格式的文件转换成单独的mp4文件
- 通过Api实现文件下载的功能
点播接口 - 04 删除点播
0.0.0
POST
/vod/remove
參數
欄位 | 類型 | 描述 |
---|---|---|
id | String |
HTTP/1.1 200 OK
{"code":200,"msg":"Success"}
点播接口 - 05 批量删除点播文件
0.0.0
POST
/vod/removeBatch
參數
欄位 | 類型 | 描述 |
---|---|---|
ids | Array |
HTTP/1.1 200 OK
{"code":200,"msg":"Success"}
直播接口
直播接口 - 01 新建/编辑直播
- post
/live/save
入参
参数 | 类型 | 描述 |
---|---|---|
id (选填) | String | 不填时表示新建 |
cid (选填) | String | 自定义ID,新建时可以传递自定义ID,可包含大小写字母下划线中划线,需保证唯一性 |
name | String | 名称 |
recordReserve | String | 录像保存(天) |
actived (选填) | Boolean | 推流开关,默认开启 |
shared (选填) | Boolean | 分享开关,默认关闭 |
authed (选填) | Boolean | 推流鉴权,默认开启 |
beginAt (选填) | String | 推流有效期开始, YYYY-MM-DD HH:mm:ss |
endAt (选填) | String | 推流有效期结束, YYYY-MM-DD HH:mm:ss |
storePath (选填) | String | 新建时才有效:直播间录像实际存储路径,此处配置绝对路径 |
shareBeginTime(选填) | String | 分享开始时间 |
shareEndTime (选填) | String | 分享结束时间 |
allowLivePlan (选填) | Boolean | 允许推流开关 |
allowRecordPlan (选填) | Boolean | 允许录像开关 |
livePlanData (选填) | String | 推流计划数据 |
recordPlanData (选填) | String | 录像计划数据 |
turntopush (选填) | String | 转推地址 |
出参
200
参数 | 类型 | 描述 |
---|---|---|
id | String | |
name | String | |
recordReserve | Number | 录像保存(天) |
actived | String | 推流开关 |
authed | Boolean | 推流鉴权 |
shared | Boolean | 分享开关 |
url | String | 推流地址 |
sharedLink | String | 分享链接 |
storePath | String | 存储路径 |
createAt | String | 创建时间, YYYY-MM-DD HH:mm:ss |
updateAt | String | 更新时间, YYYY-MM-DD HH:mm:ss |
{
"id": "Kh3NQfQn7",
"createAt": "2024-03-25 10:40:31",
"updateAt": "2024-03-25 16:38:13",
"name": "测试1",
"recordReserve": 30,
"shared": false,
"shareBeginTime": null,
"shareEndTime": null,
"ws": false,
"wsAudio": false,
"authed": false,
"actived": true,
"beginAt": null,
"endAt": null,
"sign": "9C1gY3oGij",
"storePath": null,
"userId": null,
"allowLivePlan": true,
"livePlan": "{\"Monday\":\"\",\"Tuesday\":\"\",\"Wednesday\":\"\",\"Thursday\":\"\",\"Friday\":\"\",\"Saturday\":\"\",\"Sunday\":\"\"}",
"allowRecordPlan": false,
"recordPlan": "{\"Monday\":\"\",\"Tuesday\":\"\",\"Wednesday\":\"\",\"Thursday\":\"\",\"Friday\":\"\",\"Saturday\":\"\",\"Sunday\":\"\"}",
"localIp": "127.0.0.1",
"turntopush": null,
"url": "rtmp://127.0.0.1/live/Kh3NQfQn7?sign=9C1gY3oGij",
"sharedLink": null,
"canPushLive": true,
"canRecord": true
}
直播接口 - 02 获取直播列表
- post
/live/list
入参
参数 | 类型 | 描述 |
---|---|---|
start | Number | 分页开始,从零开始 |
limit | Number | 分页大小 |
sort (选填) | String | 排序字段 |
order (选填) | String | 排序顺序 Allowed values: ascending , descending |
q (选填) | String | 查询参数 |
出参200
参数 | 类型 | 描述 |
---|---|---|
total | Number | 总数 |
rows | Object[] | 分页数据 |
id | String | |
actived | String | 推流开关 |
name | String | |
recordReserve | Number | 录像保存(天) |
authed | Boolean | 推流鉴权 |
shared | Boolean | 分享开关 |
url | String | 推流地址 |
sharedLink | String | 分享链接 |
storePath | String | 存储路径 |
session (选填) | Object | 直播信息, 有值时表示正在直播 |
Application | String | 应用名称 |
AudioBitrate | Number | 音频率 |
HLS | String | HLS地址 |
HTTP-FLV | String | HTTP-FLV地址 |
Id | String | 推流ID |
InBitrate | Number | 推送码率 |
NumOutputs | Number | 在线人数 |
OutBitrate | Number | 输出码率 |
OutBytes | Number | 输出流量 |
RTMP | String | RTMP直播地址 |
Time | String | 直播时长 |
VideoBitrate | String | 音频码率 |
createAt | String | 创建时间, YYYY-MM-DD HH:mm:ss |
updateAt | String | 更新时间, YYYY-MM-DD HH:mm:ss |
{
"rows": [
{
"id": "bwc0qt5SR",
"createAt": "2024-01-17 15:47:52",
"updateAt": "2024-03-25 11:13:40",
"name": "测试",
"recordReserve": 1,
"shared": false,
"shareBeginTime": null,
"shareEndTime": null,
"ws": false,
"wsAudio": false,
"authed": false,
"actived": true,
"beginAt": null,
"endAt": null,
"sign": "bw5AqtcIgz",
"storePath": "",
"userId": "admin",
"allowLivePlan": false,
"livePlan": "{\"Friday\":\"\",\"Monday\":\"\",\"Saturday\":\"\",\"Sunday\":\"\",\"Thursday\":\"\",\"Tuesday\":\"\",\"Wednesday\":\"\"}",
"allowRecordPlan": false,
"recordPlan": "{\"Friday\":\"\",\"Monday\":\"\",\"Saturday\":\"\",\"Sunday\":\"\",\"Thursday\":\"\",\"Tuesday\":\"\",\"Wednesday\":\"\"}",
"localIp": "",
"turntopush": "",
"url": "rtmp://192.168.29.157:10035/live/bwc0qt5SR?sign=bw5AqtcIgz",
"sharedLink": "/share.html?id=bwc0qt5SR&type=live&autoplay=yes&livetype=flv",
"canPushLive": true,
"canRecord": true,
"session": {
"Id": "bwc0qt5SR",
"Name": "测试",
"Type": "live",
"Application": "live",
"HLS": "/hls/bwc0qt5SR/playlist.m3u8",
"HTTP-FLV": "/flv/live/bwc0qt5SR.flv",
"WS-FLV": "/ws-flv/live/bwc0qt5SR.flv",
"RTMP": "rtmp://192.168.29.157:10035/live/bwc0qt5SR",
"RTSP": "rtsp://192.168.29.157:5545/live/bwc0qt5SR",
"WebRTC": "/rtc/bwc0qt5SR",
"Time": "1 m 8 s",
"NumOutputs": 0,
"InBytes": 270888283,
"OutBytes": 3499,
"PubSessionID": "RTMPPUBSUB3",
"PublisherIP": "192.168.40.215",
"InBitrate": 33004544,
"OutBitrate": 0,
"AudioBitrate": 0,
"VideoBitrate": 0,
"VideoHeight": 1080,
"VideoWidth": 1920,
"AudioChannel": 0,
"AudioCodec": "AAC",
"AudioSampleRate": 0,
"AudioSampleSize": 0,
"StartTime": "2024-03-25 11:14:50",
"VideoCodec": "H264"
}
}
],
"total": 8
}
直播接口 - 03 获取正在直播会话信息列表
POST
/live/sessions
參數
欄位 | 類型 | 描述 |
---|---|---|
id選填 | string | 传递时返回单路的session信息 |
application選填 | String | 应用名称,不传默认查询所有Allowed values: live , vlive , openLive , all |
200
欄位 | 類型 | 描述 |
---|---|---|
Application | String | 应用名称 |
AudioBitrate | Number | 音频率 |
Type | String | 类型 |
HLS | String | HLS地址 |
HTTP-FLV | String | HTTP-FLV地址 |
WS-FLV | String | WS-FLV地址 |
Id | String | 推流ID |
InBitrate | Number | 推送码率 |
InBytes | Number | 推送流量 |
NumOutputs | Number | 在线人数 |
OutBitrate | Number | 输出码率 |
OutBytes | Number | 输出流量 |
RTMP | String | RTMP直播地址 |
RTSP | String | RTSP直播地址 |
Time | String | 直播时长 |
VideoBitrate | String | 视频码率 |
Name | String | 直播流名称,匿名直播名称为空字符串 |
VideoCodec | String | 视频编码 |
AudioCodec | String | 音频编码 |
StartTime | String | 开始时间 |
AudioSampleRate | Number | 音频采样率 |
AudioChannel | Number | 音频通道 |
VideoHeight | Number | 视频高度 |
VideoWidth | Number | 视频宽度 |
PublisherIP | String | 推送者ip |
[
{
"Id": "nmted1",
"Name": "nmted1",
"Type": "openLive",
"Application": "hls",
"HLS": "/hls/nmted1/nmted1_live.m3u8",
"HTTP-FLV": "/flv/hls/nmted1.flv",
"WS-FLV": "",
"RTMP": "rtmp://demo.easydss.com:10085/hls/nmted1",
"RTSP": "rtsp://demo.easydss.com:10554/nmted1",
"Time": "0h 33m 1s",
"NumOutputs": 2,
"InBytes": 655953750,
"OutBytes": 1378478815,
"PublisherIP": "114.97.242.136",
"InBitrate": 361795,
"OutBitrate": 723591,
"AudioBitrate": 22215,
"VideoBitrate": 339580,
"VideoHeight": 720,
"VideoWidth": 1280,
"AudioChannel": 2,
"AudioCodec": "AAC",
"AudioSampleRate": 44100,
"AudioSampleSize": 16,
"StartTime": "2020-07-29 14:37:32",
"VideoCodec": "H264"
},
{
"Id": "nmted1",
"Name": "nmted1",
"Type": "openLive",
"Application": "record",
"HLS": "/EasyDSS-windows-3.0.0-2007211602/data/record/nmted1/nmted1_live.m3u8",
"HTTP-FLV": "/flv/record/nmted1.flv",
"WS-FLV": "",
"RTMP": "rtmp://demo.easydss.com:10085/record/nmted1",
"RTSP": "rtsp://demo.easydss.com:10554/nmted1",
"Time": "0h 33m 1s",
"NumOutputs": 0,
"InBytes": 655953750,
"OutBytes": 0,
"PublisherIP": "127.0.0.1",
"InBitrate": 361795,
"OutBitrate": 0,
"AudioBitrate": 22215,
"VideoBitrate": 339580,
"VideoHeight": 720,
"VideoWidth": 1280,
"AudioChannel": 2,
"AudioCodec": "AAC",
"AudioSampleRate": 44100,
"AudioSampleSize": 16,
"StartTime": "2020-07-29 14:37:32",
"VideoCodec": "H264"
}
]
直播接口 - 04 直播流开关
POST
/live/turn/actived
參數
欄位 | 類型 | 描述 |
---|---|---|
id | String | 直播流ID |
actived | Boolean | 开启:true,关闭:false |
HTTP/1.1 200 OK
{"code":200,"msg":"Success"}
直播接口 - 05 推流鉴权
0.0.0
POST
/live/turn/authed
參數
欄位 | 類型 | 描述 |
---|---|---|
id | String | |
authed | Boolean |
HTTP/1.1 200 OK
{"code":200,"msg":"Success"}
直播接口 - 06 删除直播
0.0.0
POST
/live/remove
參數
欄位 | 類型 | 描述 |
---|---|---|
id | String | |
record選填 | Boolean | 同时删除录像否, 该参数只对非正在直播的条目有效預設值: false |
HTTP/1.1 200 OK
{"code":200,"msg":"Success"}
直播接口 - 07 获取单条/多条直播流信息
0.0.0
GET|POST
/live/get
參數
欄位 | 類型 | 描述 |
---|---|---|
id | String | 传递单个id,返回单条直播流信息;若英文逗号拼接传递多个,返回的多个直播流信息数组; |
200
欄位 | 類型 | 描述 |
---|---|---|
id | String | |
name | String | |
recordReserve | Number | 录像保存(天) |
actived | String | 推流开关 |
authed | Boolean | 推流鉴权 |
shared | Boolean | 分享开关 |
url | String | 推流地址 |
sharedLink | String | 分享链接 |
storePath | String | 存储路径 |
createAt | String | 创建时间, YYYY-MM-DD HH:mm:ss |
updateAt | String | 更新时间, YYYY-MM-DD HH:mm:ss |
session選填 | Object | 直播信息, 有值时表示正在直播 |
Application | String | 应用名称 |
AudioBitrate | Number | 音频率 |
HLS | String | HLS地址 |
HTTP-FLV | String | HTTP-FLV地址 |
Id | String | 推流ID |
InBitrate | Number | 推送码率 |
InBytes | Number | 推送流量 |
NumOutputs | Number | 在线人数 |
OutBitrate | Number | 输出码率 |
OutBytes | Number | 输出流量 |
RTMP | String | RTMP直播地址 |
Time | String | 直播时长 |
VideoBitrate | String | 音频码率 |
录像接口
录像回看接口 - 01 查询有录像设备
- post
/record/query_devices
入参
参数 | 类型 | 描述 |
---|---|---|
start | Number | 分页开始,从零开始 |
limit | Number | 分页大小 |
sort (选填) | String | 排序字段 |
order (选填) | String | 排序顺序 Allowed values: ascending , descending |
q (选填) | String | 查询参数 |
出参
欄位 | 類型 | 描述 |
---|---|---|
total | Number | 总数 |
rows | Object[] | 分页数据 |
id | String | |
name | String | |
updateAt | String | 更新时间, YYYY-MM-DD HH:mm:ss |
{
"rows": [
{
"id": "rAl_qtcIg",
"createAt": null,
"updateAt": "2024-03-14 16:27:49",
"name": "测试直播间",
"recordReserve": 1,
"type": "live",
"storePath": "",
"localIp": "172.17.0.1"
}
],
"total": 12
}
录像回看接口 - 02 指定时间段录像播放及下载
- GET
/record/video/:operate/:id/:starttime/:endtime
參數
欄位 | 類型 | 描述 |
---|---|---|
operate | String | 调用操作 play:播放 download下载 synthesis 合成Allowed values: play , download |
id | String | 设备ID |
starttime | String | 开始时间, YYYYMMDDHHmmss |
endtime | String | 结束时间, YYYYMMDDHHmmss |
http://127.0.0.1:10080/record/video/play/teet/20180911101139/20180911101248
http://127.0.0.1:10080/record/video/download/teet/20180911101139/20180911101248
录像回看接口 - 03 查询设备所有录像记录
0.0.0
GET|POST
/record/query_flags
參數
欄位 | 類型 | 描述 |
---|---|---|
id | String |
200
欄位 | 類型 | 描述 |
---|---|---|
key | String | 月份, YYYYMM |
value | String | 标记当月每一天是否有录像, 0 - 没有录像, 1 - 有录像 |
{201803: "0000000011000000000000000000000"}