/HIKVISIONServer

读取海康摄像头,推流至指定rtmp地址

Primary LanguageJava

HIKVISIONServer

  • 简介:读取海康摄像头,推流至指定rtmp地址
  • 系统环境:win64
  • jdk版本:jdk1.8以上

关键文件说明

  • hcsdk目录内存放了连接海康的sdk。注意!此版本sdk是win64版。同时此目录下还存放了win64版测试用海康客户端(ClientDemo.exe)
  • lib目录下存放的项目运行所必需的jar包

配置文件说明(/src/main/resoources/camera.json)

{
	"camera1":{
		"ip": "127.0.0.1",
		"port":8000,
		"user":"admin",
		"pwd":"12345",
		"channel":1,
		"linkmode":0,
		"rtmp":"rtmp://127.0.0.1:1935/hls/stream"
	}
}
  • camera1:摄像头别名(唯一)
  • ip:摄像头IP地址
  • port:海康摄像头登录端口号
  • user:登录摄像头的用户名
  • pwd:登录摄像头的密码
  • channel:摄像头播放通道
  • linkmode:摄像头连接模式最高位(31)为0表示主码流,为1表示子码流;0~30位表示连接方式:0-TCP方式,1-UDP方式,2-多播方式
  • rtmp:目的rtmp推流地址

流程(生成rtmp流)

st=>start: 开始(启动软件)
op=>operation: POST{"camera":"camera1"}
e=>end: 结束(推流成功)
st->op->e

流程(摄像头操作)

st=>start: 开始(成功推流)
op=>operation: POST{"camera":"camera1","command":{"code":23,"operation":1}}
e=>end: 结束(操作完成)
st->op->e

调用说明

  • 在启动正确启动项目后,项目会监听本地12346端口(Service.java文件内,可更改)
  • 发送POST请求到项目(http://127.0.0.1:12346/camera)
  • POST请求内容为:
{"camera":"camera1"}
  • camera:摄像头别名
  • 此时程序会去尝试请求摄像头,并开始向目的rtmp地址做推流
  • 推流成功后使用如vlc等工具即可查看推流的视频
  • 为了节约系统资源,推流默认时长为5分钟,在五分钟内重新请求即可刷新超时时间
  • 摄像头操作也是发送POST请求到(http://127.0.0.1:12346/camera)
  • POST的内容为:
{"camera":"camera1","command":{"code":23,"operation":1}}
  • camera:摄像头别名
  • command:命令
  • code:具体指令
  • operation:0-开始、1-停止

code说明

code 含义
2 接通灯光电源
3 接通雨刷开关
4 接通风扇开关
5 接通加热器开关
6 接通辅助设备开关
7 接通辅助设备开关
11 焦距变大(倍率变大)
12 焦距变小(倍率变小)
13 焦点前调
14 焦点后调
15 光圈扩大
16 光圈缩小
21 云台上仰
22 云台下俯
23 云台左转
24 云台右转
25 云台上仰和左转
26 云台上仰和右转
27 云台下俯和左转
28 云台下俯和右转
29 云台左右自动扫描
58 云台下俯和焦距变大(倍率变大)
59 云台下俯和焦距变小(倍率变小)
60 云台左转和焦距变大(倍率变大)
61 云台左转和焦距变小(倍率变小)
62 云台右转和焦距变大(倍率变大)
63 云台右转和焦距变小(倍率变小)
64 云台上仰和左转和焦距变大(倍率变大)
65 云台上仰和左转和焦距变小(倍率变小)
66 云台上仰和右转和焦距变大(倍率变大)
67 云台上仰和右转和焦距变小(倍率变小)
68 云台下俯和左转和焦距变大(倍率变大)
69 云台下俯和左转和焦距变小(倍率变小)
70 云台下俯和右转和焦距变大(倍率变大)
71 云台下俯和右转和焦距变小(倍率变小)
72 云台上仰和焦距变大(倍率变大)
73 云台上仰和焦距变小(倍率变小)