视频监控环境部署
大约 5 分钟
一、监控平台整体架构
二、视频部署步骤
2.1 服务器开放端口
- 5061:5061 //sip tcp端口号
- 5061:5061/udp //sip udp端口号
- 8082 //流媒体服务器api http接口
- 8443 //流媒体服务器api https接口
- 554:554 //rtsp推流接口
- 1935:1935 //rtmp推流接口
- 8000:8000 //rtc接口
- 30000-30500:30000-30500 //rtp tcp推流端口
- 30000-30500:30000-30500/udp //rtp udp推流端口
注意!!!务必到服务器安全组开放对应端口,否则设备上线,点播和直播等功能无法使用。
2.2 修改sip配置和record配置,并编译jar包
- 配置文件在fastbee-admin/src/main/resources/application-prod.yml
# sip 配置 默认情况下是关闭sip服务的,需要时开启该服务
sip:
enabled: true
## 注意!!!docker部署保持默认即可,window测试环境填本地网卡内网IP
ip: 177.7.0.13
port: 5061
domain: 3402000000
id: 34020000002000000001
password: 12345678
- record配置文件在fastbee-record/src/main/resources/application-prod.yml
# [可选] 监听的HTTP端口, 网页和接口调用都是这个端口
# 您需要使用实际的证书名称替换domain_name.jks
# 证书获取参考文档:https://help.aliyun.com/zh/ssl-certificate/user-guide/enable-https-on-spring-boot
server:
port: 18081
servlet:
context-path: / # 应用的访问路径
# HTTPS配置, 默认不开启
ssl:
# 是否开启HTTPS访问 默认关闭
enabled: false
# enabled: true
# 证书文件路径,您需要使用实际的证书名称替换domain_name.jks。
key-store: classpath:fastbee.online.jks
# 证书密码 修改为对应密码
key-store-password: fastbee
# 证书类型, 默认为jks,根据实际修改
key-store-type: JKS
2.3 将jar包,https证书复制到docker部署目录,然后启动
- zlmediakit镜像地址
- default.pem证书获取流程参考:开启https相关功能
- docker/data 下有docker-compose.yml文件,可以一键跑环境,免去修改配置的麻烦
- 参考文档:Docker部署
2.4 非Docker部署,服务拆分部署
- 保证服务器对应服务的端口开放
- java sip配置根据本地接口环境,添加对应网卡接口ip
- zlmediakit conf/config.ini的hook api 添加java api回调地址
- 设备管理-> 视频配置-> 修改 zlmediakit 服务器IP 服务器域名 流媒体密钥等信息
三、录像模块部署
3.1 Docker 部署
- 根据部署环境修改fastbee-record包的配置文件application-prod.yml,使用到redis缓存,根据需要修改对应host和password
- 编译fastbee-record.jar包,然后放在部署文件夹/data/zlmedia/record下面
- 项目路径下 /docker/data/zlmedia/record 有打包容器的dockerfile,会把record包和ZLMediaKit打包到一起
- 把docker-compose.yml的注释去掉,执行"docker-compose up -d" 即可。
zlmedia-record:
build:
context: /var/data/zlmedia/record
# image: zlmediakit/zlmediakit:master
container_name: zlmedia-record
privileged: true
restart: always
ports:
- 18081:18081
- 8082:80
- 8443:443
- 554:554
- 1935:1935
- 8000:8000
- 30000-30100:30000-30100/udp
expose:
- "80"
- "443"
- "554"
- "1935"
volumes:
- /var/data/zlmedia/record/fastbee-record.jar:/fastbee-record.jar
- /var/data/zlmedia/record/logs:/opt/assist/logs
- /var/data/zlmedia/logs:/opt/media/bin/log
- /var/data/zlmedia/data/www:/opt/media/bin/www
- /var/data/zlmedia/conf/config.ini:/opt/media/conf/config.ini
- /var/data/zlmedia/conf/default.pem:/opt/media/bin/default.pem
networks:
network:
ipv4_address: 177.7.0.15
3.2 Windows&Linux环境 部署
- 安装ffmpeg和ffprobe工具,并修改fastbee-record项目配置文件的工具路径和录像路径
- 单独运行fastbee-record.jar包和ZLMediaKit,
- 执行 "java -jar /fastbee-record.jar &"
# fastbee-record项目配置
userSettings:
# [必需修改 ] zlm配置的录像路径,
record: /opt/media/bin/www/record
# [必需修改 ] ffmpeg路径
ffmpeg: /usr/bin/ffmpeg
# [必需修改 ] ffprobe路径, 一般安装ffmpeg就会自带, 一般跟ffmpeg在同一目录,用于查询文件的信息
ffprobe: /usr/bin/ffprobe
注意!!! ffmpeg和ffprobe需要与ZLMediaKit配套使用,会管理流媒体服务器的录像文件。
3.3 录像相关接口切换为https
最新master版本的录像接口支持https/http切换,请更新代码
1. 下载JKS证书
参考文档:https://help.aliyun.com/zh/ssl-certificate/user-guide/enable-https-on-spring-boot
2. 修改配置文件,重新部署jar包
- enabled:使能开关
- key-store:证书路径
- key-store-password:证书密码
# [可选] 监听的HTTP端口, 网页和接口调用都是这个端口
# 您需要使用实际的证书名称替换domain_name.jks
# 参考文档:https://help.aliyun.com/zh/ssl-certificate/user-guide/enable-https-on-spring-boot
server:
port: 18081
# HTTPS配置, 默认不开启
ssl:
# 是否开启HTTPS访问 默认关闭
enabled: true
# enabled: true
# 证书文件路径,您需要使用实际的证书名称替换domain_name.jks。
key-store: classpath:fastbee.online.jks
# 证书密码 修改为对应密码
key-store-password: fastbee
# 证书类型, 默认为jks,根据实际修改
key-store-type: JKS
3. 修改流媒体服务器的播放协议为https
3.4 常见问题
1. 修改录像文件长度
# zlmedia/conf/config.ini 流媒体服务配置文件
[record]
appName=record
fileBufSize=65536
filePath=./www
fileSecond=3600
sampleMS=500
fastStart=0
fileRepeat=0
# Java 中 ZmlHookServiceImpl onPublish函数
...... playrecord
ret.put("mp4_max_second", 10);
...... download
ret.put("mp4_max_second", 10);
......
# 默认为10s 可以根据需要修改
2. 录像存放路径
- zlmedia/data/www/record/ 摄像头录像文件
四、window环境下搭建调试监控设备环境
4.1 使用docker脚本部署zlmediakit
使用docker目录下脚本启动zlmediakit
进入docker/data目录下,输入: docker-compose -f docker-compose-window.yml up -d
4.2 修改sip配置
查看网卡ip
修改java配置中的sip配置
启动后端和前端项目
后端 启动FastBeeApplication应用
前端 输入 npm run dev启动项目
4.3 在fastbee平台新增流媒体服务器
新增服务器
添加局域网ip为192.168.31.159的服务器
修改HookUrl为:host.docker.internal:8080