HikvisionCamera开发-萤石云RTMP协议获取视频流

RTMP/RTSP(实时流传输协议)是一种网络协议,旨在用于传输音频和视频数据。本文将介绍如何在HikvisionCamera二次开发中如何通过RTMP协议获得实时视频流,使用到的摄像头为POE供电的海康威视-臻全彩款,以及套餐内配套录像机。本文提供的推流方案是通过萤石云官方RTMP协议实现的,需要接入萤石云并关闭码流加密,在萤石云开放平台获取RTMP流地址。

(注意:加上另一篇文章,一共介绍两种推流方式:萤石云视频RTMP协议推流海康RTSP协议取流。两种推流的优缺点在于:1、海康的推流因为不需要走萤石云,流畅度相较起来高很多,但是需要去安装现场配置路由;2、萤石云的推流,虽然没有海康流畅度高,但是不需要去安装现场配置路由器,直接开箱可用,而且稳定性更好,可以使用萤石云的各种集成功能,配合萤石云的轻应用SDK,前端一键生成,无需开发。)

一、萤石云视频推流协议

-- HLS RTMP/RTSP EZOPEN协议 萤石私有协议
适用性 适用WEB/H5接入 只适用WEB接入 只适用UIKit接入,支持WEB 只适用萤石OpenSDK接入
出流速度 首次取流延时4-10秒 首次取流延时2-4秒 首次取流延时1秒 首次取流延时1秒
优势 跨平台性好,支持网页直接(包括微信)播放 比HLS延时低,且支持与第三方云进行转码、录播 取流速度快,高安全性,接入简单 取流速度快,高安全性,功能齐全

其中,HLS/RTMP协议URL是萤石专为开发者设计的视频资源定义的标准流协议,基于HLS、RTMP标准流协议做了扩展,保持通用性的同时方便集成,目前仅支持视频的预览功能(注意:不支持加密视频),比如:

"rtmp://rtmp.open.ys7.com/openlive/ff01018a141094b7fa138b9d0b856507b.hd",可以播放ID为"ff01018a141094b7fa138b9d0b856507b"设备"高清"的"RTMP协议实时视频"

详细格式如下(中括号为可选字段):

HLS协议:http://hls.open.ys7.com/openlive/设备ID[.清晰度].m3u8

RTMP协议:rtmp://rtmp.open.ys7.com/openlive/设备ID[.清晰度]

关键字 必填 说明
http:// 协议头,HLS协议固定为http://格式
rtmp:// 协议头,RTMP协议固定为rtmp://格式
hls.open.ys7.com 协议头,HLS服务地址,固定为hls.open.ys7.com
rtmp.open.ys7.com 协议头,RTMP服务地址,固定为rtmp.open.ys7.com
openlive 轻应用(标准流)URL路径,固定为openlive
设备ID 设备的编号,为随机分配,32位UUID
清晰度 可选 支持:标准清晰度(缺省值)、高清(hd)
m3u8 HLS协议固定为m3u8后缀

二、实现RTMP推流需要做的配置

****a)接入萤石云,关闭码流加密

下载萤石云视频APP扫码绑定设备,并在局域网配置内开启平台接入,选择萤石云接入。

注意:一定不要开启码流加密,如果激活录像机时已经开启,一定要把码流加密关闭。

b) 调整视频编码为H264

需要通过给录像机连接显示器设置,既要改主码流,也要改子码流。

c) 登录萤石开放平台,获得RTMP协议地址

设备管理里选择对应通道的摄像头,点击直播地址。

滚动条往下拉,可以看到RTMP协议的播放地址。


三、测试RTSP协议推流是否成功

下载 VLC Media Player,点击安装,安装好之后打开。

媒体\]\>\[打开网络串流\]:输入RTSP协议的视频流地址URL [![image 7 - HikvisionCamera开发-萤石云RTMP协议获取视频流](https://file.jishuzhan.net/article/1741485211981451265/b8940241ef5ff429fe9e1be211e9584a.webp)](https://www.damon-liu.cn/wp-content/uploads/2023/08/image-7.png) 成功加载视频,测试成功,RTMP 流地址可用。 [![hkws009 1024x525 - HikvisionCamera开发-萤石云RTMP协议获取视频流](https://file.jishuzhan.net/article/1741485211981451265/01d739888e870b514037d508461e941e.webp)](https://www.damon-liu.cn/wp-content/uploads/2023/08/hkws009.png) *** ** * ** *** ### **四、接口实现RTMP协议推流** * 接口功能:该接口用于通过设备序列号、通道号获取单台设备的播放地址信息,无法获取永久有效期播放地址。 * 请求地址`https://open.ys7.com/api/lapp/v2/live/address/get` * 请求方式`POST` * 请求参数 | 参数名 | 类型 | 描述 | 是否必选 | |--------------|---------|----------------------------------------------------|------| | accessToken | String | 授权过程获取的access_token | Y | | deviceSerial | String | 直播源,例如427734222,均采用英文符号,限制50个 | Y | | channelNo | Integer | 通道号,非必选,默认为1 | N | | code | String | ezopen协议地址的设备的视频加密密码 | N | | expireTime | Integer | 过期时长,单位秒;针对hls/rtmp设置有效期,相对时间;30秒-7天 | N | | protocol | Integer | 流播放协议,1-ezopen、2-hls、3-rtmp、4-flv,默认为1 | N | | quality | Integer | 视频清晰度,1-高清(主码流)、2-流畅(子码流) | N | | startTime | String | ezopen协议地址的本地录像/云存储录像回放开始时间,示例:2019-12-01 00:00:00 | N | | stopTime | String | ezopen协议地址的本地录像/云存储录像回放开始时间,示例:2019-12-01 00:00:00 | N | | type | String | ezopen协议地址的类型,1-预览,2-本地录像回放,3-云存储录像回放,非必选,默认为1 | N | | supportH265 | Integer | 是否要求视频为H265编码格式 | N | | gbchannel | String | 国标设备的通道编号 | N | * HTTP请求报文 POST /api/lapp/live/address/get HTTP/1.1 Host: open.ys7.com Content-Type: application/x-www-form-urlencoded accessToken=at.dunwhxt2azk02hcn7phqygsybbw0wv6p&deviceSerial=C78957921&channelNo=1 * 返回数据 { "msg": "Operation succeeded", "code": "200", "data": { "id": "254708522214232064", "url": "https://open.ys7.com/v3/openlive/C78957921_1_1.m3u8?expire=1606999273&id=254708522214232064&t=093e5c6668d981e0f0b8d2593d69bdc98060407d1b2f42eaaa17a62b15ee4f99&ev=100", "expireTime": "2020-12-03 20:41:13" } } * 返回字段: | 字段名 | 类型 | 描述 | |------------|--------|--------------------------------------| | code | String | 状态码,参考下方返回码。**优先判断该错误码,返回200即表示成功**。 | | msg | String | 状态描述 | | id | String | 状态描述 | | url | String | 直播地址 | | expireTime | long | 直播地址有效期。**expireTime参数为空时该字段无效** | > *注意:该接口请求时先解析code属性,如果返回200即表示成功,可继续解析data属性的内容,每一个地址对象中先解析ret属性,如果返回200表示成功,再根据status属性和exception属性判断是否存在异常。* * 返回码 | 返回码 | 返回消息 | 备注 | |-----|-------------------|------| | 200 | 操作成功,获取指定有效期的直播地址 | 请求成功 | | 201 | Created | | | 401 | Unauthorized | | | 403 | Forbidden | | | 404 | Not Found | | | 403 | 用户不存在 |

相关推荐
柒月玖.1 小时前
基于AT89C52单片机的轮胎压力监测系统
单片机·嵌入式硬件·mongodb
多多*2 小时前
Java设计模式 简单工厂模式 工厂方法模式 抽象工厂模式 模版工厂模式 模式对比
java·linux·运维·服务器·stm32·单片机·嵌入式硬件
小麦嵌入式9 小时前
Linux驱动开发实战(九):Linux内核pinctrl_map详解与优势分析
linux·c语言·汇编·驱动开发·stm32·嵌入式硬件·硬件工程
傍晚冰川13 小时前
【STM32】最后一刷-江科大Flash闪存-学习笔记
笔记·科技·stm32·单片机·嵌入式硬件·学习·实时音视频
程序员JerrySUN15 小时前
嵌入式图像采集与显示系统实战详解:基于V4L2与Framebuffer的实现
linux·嵌入式硬件
电子艾号哲15 小时前
51单片机总结
单片机·嵌入式硬件·51单片机
szpc162116 小时前
60V单通道高精度线性恒流LED驱动器防60V反接SOD123封装
c语言·开发语言·单片机·嵌入式硬件·计算机外设
2035去旅行16 小时前
嵌入式系统简介
嵌入式硬件
Ronin-Lotus16 小时前
嵌入式硬件篇---USB&UART串口
嵌入式硬件·c·uart·usb
云山工作室17 小时前
基于单片机的智能奶茶机(论文 +源码)
单片机·嵌入式硬件