Unity3d C#获取海康/大华摄像头在萤石平台直播视频流功能(含源码)

前言

实现该功能主要是因为之前硬件实施工程是给我的视频流地址总是失效,原因就是视频流地址其实都有一个过期时间(类似于:rtmp://rtmp01open.ys7.com:/v3/openlive/_1_1?expire=1669341172&id=***&t=8cb15956b1ca09770d1496bff3b8ccb78a493cd43f42dba7f4ddb633cc0f4f4b&ev=100 这里的expire就是视频流的过期时间),每次更改也比较麻烦,这种弄的话肯定玩死程序员,还会造成相互甩锅的误会,不利于内部的团结。

该功能的实现和之前截取监控预览图的流程很类似(Unity3d C#获取海康摄像头直播视频流预览萤石截图实现),都需要通过appKey和appSecret 获取AccessToken,之后就是获取视频流的地址。如果对此流程有问题的可以参考上文。

获取视频地址

具体的说明文档:https://open.ys7.com/help/82?h=address/get

接口功能:

该接口用于通过设备序列号、通道号获取单台设备的播放地址信息,无法获取永久有效期播放地址。

请求地址:

https://open.ys7.com/api/lapp/v2/live/address/get?

请求方式:

POST

我的Unity请求报文:

 List<IMultipartFormSection> formData = new List<IMultipartFormSection>();
 formData.Add(new MultipartFormDataSection("accessToken", "你的accessToken"));
 formData.Add(new MultipartFormDataSection("deviceSerial", deviceSerial));
 formData.Add(new MultipartFormDataSection("channelNo", channelNo));
 formData.Add(new MultipartFormDataSection("expireTime", "2592000"));
 formData.Add(new MultipartFormDataSection("protocol", "3"));
 formData.Add(new MultipartFormDataSection("quality", "1"));

这里重点注意的是accessToken是授权令牌,要小心过期问题;
deviceSerial是设备编码,需要一一对应一下;
protocol是流地址的协议,一般是rtmp; type是类型1才是实时画面;
quality是视频清晰度,1-高清(主码流,打开速度可能慢)、2-流畅(子码流,打开速度会快,画质渣)。
expireTime为过期时间,尽量设置大一点(除非你需要高频率的刷新地址)。

全部请求参数的说明:
在这里插入图片描述

请求函数

string url = "https://open.ys7.com/api/lapp/v2/live/address/get"; 
UnityWebRequest request = UnityWebRequest.Post(url, iFormData); 

返回数据:

{
  "msg": "操作成功",
  "code": "200",
  "data": {
    "id": "***",
    "url": "rtmp://rtmp01open.ys7.com:1935/v3/openlive/**_1_1?expire=1672995959&id=**&t=***&ev=100",
    "expireTime": "2023-01-06 17:05:59"
  }
}

这里的"url"就是我们的视频地址了,expireTime是过期时间,也就是说这个url的视频地址将在2023-01-06 17:05:59过期,到时候就无法播放了。

返回内容的说明:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十幺卜入

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值