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

成功加载视频,测试成功,RTMP 流地址可用。


四、接口实现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
字段名 类型 描述
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 用户不存在
相关推荐
SKYDROID云卓小助手11 小时前
无人设备遥控器之视频回传篇
网络·人工智能·嵌入式硬件·目标检测·计算机视觉·音视频
Tlog嵌入式16 小时前
单片机常见bug记录(长期更新)
单片机·嵌入式硬件·bug
深圳市青牛科技实业有限公司19 小时前
D4440音频功率放大电路
单片机·嵌入式硬件·音视频·车用信息娱乐·电话系统·hud投影仪调整
RA生态工作室21 小时前
瑞萨RA-T系列芯片ADC&GPT功能模块的配合使用
嵌入式硬件·mcu
西城微科方案开发21 小时前
数显轮胎气压表解决方案pcba开发
单片机·嵌入式硬件
忧虑的乌龟蛋1 天前
基于Qt 和微信小程序的用户管理系统:WebSocket + SQLite 实现注册与登录
数据库·嵌入式硬件·qt·物联网·websocket·微信小程序·sqlite
楼台的春风1 天前
【GPIO详解及实践示例】
c语言·stm32·单片机·嵌入式硬件·mcu·物联网·嵌入式
sinat_360704821 天前
STM32 低功耗模式
stm32·单片机·嵌入式硬件
jmlinux1 天前
STM32 HAL库USART串口中断编程:演示数据丢失
stm32·单片机·嵌入式硬件
勿忘初心912 天前
Android车机DIY开发之软件篇(十六)编译forlinx i.mx8mplus Android
android·arm开发·经验分享·嵌入式硬件