简体中文

通过https的方式实作云存推流

星空无限传媒xk8027-高清全集免费看

一、概述

本文档将描述VSaaS设备端推流相关核心接口,包括获取上传地址、推流(视频上传)、更新事件标签三个关键操作。设备端需先通过VSaaS Token认证,再依次完成推流地址获取、视频分片上传、事件标签补充等流程,最终实现视频数据的云端存储与管理。
前置条件:设备端需从第三方APP获取有效的VSaaS Token(stoken),用于接口身份校验。

二、API接口

(一)获取上传地址
设备端通过此接口获取视频推流地址,用于将事件视频或实时视频流上传至VSaaS云端,推流前需优先调用此接口。
1. 请求说明
说明
HTTP请求方式GET
请求URLhttps://vsaas-domain/vsaas/api/v1/stream/stream_url/{UDID}?stoken={stoken}&starttime={timestamp}&protocol=upload&event_id={event_id}[&event_file={event_file}][&media_type={media_type}][&tags={tag}]
请求头(Header)无额外要求,参数通过URL拼接传递
2. 请求参数
参数名类型必选说明
UDIDString设备唯一标识(设备UID)
stokenString推流用Token,从APP端获取
event_idString事件类型ID
starttimeString事件触发时间戳(秒级)
protocolString固定值:upload
event_fileString关联的事件文件名称(可选)
media_typeInt媒体类型:0=hls,1=krf,4=mp4(默认按系统配置)
tagsString事件标签,多个标签用逗号分隔(如"门口,花园")
3. 响应说明
3.1 响应参数
参数名类型说明
contract_typeString存储类型:"event"(事件存储)或 "fulltime"(全时存储)
urlString推流地址(含OTP临时授权码)
recording_max_kbpsInt最大推流码率(kbps)
video_max_fpsInt最大帧率(fps)
video_max_heightInt视频最大高度(像素)
video_max_widthInt视频最大宽度(像素)
messageString错误信息(成功时为空)
codeInt错误码:1=成功;-1001=参数无效;-1002=设备无效;-1003=绑定记录无效;-1004=合约无效;-1005=开始时间无效;-1006=开始时间格式错误;-3001=合约未找到
3.2 响应状态码
状态码徽章说明
200成功请求成功,返回推流地址及配置信息
400参数错误必填参数缺失或格式错误
4. 接口示例
请求示例(curl)
curl -vvv "https://idc-stg-be-docker.kalay.us:8864/vsaas/api/v1/stream/stream_url/TC021LBP010000000001AAAAAAAAAAAAAAAAAAAA?stoken=dEmhotTRI7FG4ceJfZ1R7b6NwuJXhpclrGlm2LvkOguM4nPCjnZRN5zrltts-sPp0E5kdK_T6D9pJN5axFgnkX0QmiWfOm3-ybLmQy5Guwk=&protocol=upload&event_id=999&starttime=1562048846"
响应示例(成功)
{ "result": {  "url": "https://idc-stg-stream01.kalay.us:8080/post_stream/v1/TC021LBP010000000001AAAAAAAAAAAAAAAAAAAA?OTP=202E457ED959CA934F3A&stoken=dEmhotTRI7FG4ceJfZ1R7b6NwuJXhpclrGlm2LvkOguM4nPCjnZRN5zrltts-sPp0E5kdK_T6D9pJN5axFgnkX0QmiWfOm3-ybLmQy5Guwk=&event_id=999&starttime=1562048846",  "contract_type": "event",  "recording_max_kbps": 10,  "video_max_fps": 15,  "event_recording_max_length": 10,  "video_max_height": 360,  "video_max_width": 480 }, "message": "", "code": 1 }
(二)推流(视频上传)
设备端使用「获取上传地址」接口返回的推流地址,以multipart/form-data格式将视频流(支持分片)上传至VSaaS云端,支持TS/MP4/JPG格式文件。
1. 请求说明
说明
HTTP请求方式POST
请求URL从「获取上传地址」接口返回的url(含OTP临时授权码)
请求头(Header)Content-Type: multipart/form-data; boundary={自定义边界值}(边界值需与请求体中一致)
2. 请求参数
参数类型参数名类型必选说明
URL参数OTPString临时授权码,来自推流地址(每次推流唯一)
stokenString推流用Token,与「获取上传地址」时一致
event_idString事件类型ID,与「获取上传地址」时一致
starttimeString事件触发时间戳(秒级),与「获取上传地址」时一致
UDIDString设备唯一标识,与「获取上传地址」时一致
tagsString事件标签,多个标签用逗号分隔(可选补充)
Form-Data参数(media_file)file_start_timeString文件开始时间戳(毫秒级),需等于starttime*1000
file_durationString文件时长(毫秒级);JPG格式填0
event_endString事件结束标识:1=最后一个文件,0=后续还有文件
filenameString格式:{13位毫秒时间戳}_D{毫秒时长}[E].(ts/mp4/jpg);E标识最后一个文件;优先级低于前三个参数
Content-TypeString文件类型:video/MP2T(TS)、video/mp4(MP4)、image/jpg(JPG)
请求体-Binary视频/图片二进制数据;多文件需重复media_file字段分片上传
2.1 多文件上传说明
  • 1. 分片视频(如TS文件)需为每个分片重复media_file字段,最后一个分片event_end设为1;
  • 2. 已填写file_start_time、file_duration、event_end时,可省略filename,系统自动生成;
  • 3. 分片时长建议一致(如5秒/片),便于后续回放和下载。
3. 响应状态码
状态码徽章说明
200成功文件上传成功
400参数错误Form-Data参数缺失或格式错误
403授权失败OTP过期、stoken无效或推流地址失效
4. 接口示例
请求示例(curl)
curl -X POST \ "http://localhost:55550/post_stream/v1/DRUUA974YFRC9MPGU1XJ?stoken=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9&starttime=1570237012&event_id=999&OTP=hahahaha" \ -H "Content-Type: multipart/form-data; boundary=cf58a91e1d88633dfb10e1c64ef494b9c69ecddc8ef903055835a73413ac" \ -F "media_file=@1570237012000_D5000.ts;type=video/mp2t;file_start_time=1570237012000;file_duration=5000;event_end=0" \ -F "media_file=@1570237017000_D5000E.ts;type=video/mp2t;file_start_time=1570237017000;file_duration=5000;event_end=1"
请求体示例(Form-Data)
--cf58a91e1d88633dfb10e1c64ef494b9c69ecddc8ef903055835a73413ac Content-Disposition: form-data; name="media_file";file_start_time="1570011960000";file_duration="5000";event_end="0" Content-Type: video/MP2T [TS文件二进制数据] --cf58a91e1d88633dfb10e1c64ef494b9c69ecddc8ef903055835a73413ac Content-Disposition: form-data; name="media_file";file_start_time="1570011965000";file_duration="5000";event_end="1" Content-Type: video/MP2T [TS文件二进制数据] --cf58a91e1d88633dfb10e1c64ef494b9c69ecddc8ef903055835a73413ac--
(三)更新事件标签
为已上传的事件视频添加标签,支持多个标签以逗号分隔,标签用于后续事件筛选和查询。
1. 请求说明
说明
HTTP请求方式GET
请求URLhttps://vsaas-domain/vsaas/api/v1/stream/stream_event/{UDID}?stoken={stoken}&tags=a,b,c,d&starttime={timestamp}
请求头(Header)无额外要求,参数通过URL拼接传递
2. 请求参数
参数名类型必选说明
UDIDString设备唯一标识(与上传视频时一致)
stokenString推流用Token,与上传视频时一致
starttimeString事件触发时间戳(秒级),与上传视频时一致(唯一标识事件)
tagsString事件标签,多个标签用逗号分隔(如"门口,花园,异常");为空则清空标签
3. 响应状态码
状态码徽章说明
200成功标签更新成功
400参数错误UDID、stoken、starttime缺失或格式错误
4. 接口示例
请求示例(curl)
curl -vvv "https://vsaas-stg.kalay.us/vsaas/api/v1/stream/stream_event/TC021LBP010000000001AAAAAAAAAAAAAAAAAAAA?stoken=dEmhotTRI7FG4ceJfZ1R7b6NwuJXhpclrGlm2LvkOguM4nPCjnZRN5zrltts-sPp0E5kdK_T6D9pJN5axFgnkX0QmiWfOm3-ybLmQy5Guwk=&tags=a,b,c,d&starttime=1562048846"

即刻开启您的物联网之旅

联系解决方案专家
Kalay App
资讯安全白皮书
全球专利布局
解决方案
新闻动态
公司动态
行业资讯
媒体报道
永续发展
经营者的话
社会参与
环境永续
公司治理

+86 755 27702549

7×24小时服务热线

法律声明 隐私权条款

关注“TUTK”

TUTK服务尽在掌握

© 2022 星空无限传媒xk8027版权所有粤ICP备14023641号
在线咨询
扫一扫

TUTK服务尽在掌握

全国免费服务热线
+86 755 27702549

返回顶部