需要以下两个开源项目共同部署:
wvp开源项目地址(如果打不开就多刷新几十遍)
流媒体开源项目地址
- 采用docker容器的方式部署流媒体服务
- 如果没有安装docker,就安装一下docker,如果安装过了,跳过这一步,我是在centos7环境下安装docker:
(1):使用 root 权限登录 Centos,确保 yum 包更新到最新:yum update
(2):安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的:yum install -y yum-utils device-mapper-persistent-data lvm2
(3):设置yum源:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(4):安装docker:yum install docker-ce
(5):启动docker :systemctl start docker
(6):如果有需要开机启动:systemctl enable docker
- 在docker中下载并启动流媒体服务容器:
docker run -it -p 6080:80 -p 10443:443 -p 10935:1935 -p 19351:19350 -p 10554:554 -p 10554:554/udp -p 10332:332 -p 10332:332/udp -p 10010:10000 -p 10010:10000/udp -p 30000-30500:30000-30500/udp -p 30000-30500:30000-30500/tcp panjjo/zlmediakit
- 接下来部署wvp服务:
- 在该服务器创建文件夹:/root/wvp
- 自行打包wvp项目,并将jar文件上传到wvp文件夹下,改名为,wvp.jar
- 编写启动脚本,shell脚本:
#!/bin/bash
echo "Strating Application"
kill -9 `ps aux |grep wvp.jar |grep -v grep |grep -v retomcat | awk '{print $2}'`
nohup java -Xms256m -Xmx1024m -Xss1024K -jar wvp.jar > log.log &
8.配置文件
spring:
# REDIS数据库配置
redis:
# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1
host: 127.0.0.1
# [必须修改] 端口号
port: 6380
database: 8
# [可选] 访问密码,若你的redis服务器没有设置密码,就不需要用密码去连接
password: dsrj@116.com
# [可选] 超时时间
timeout: 10000
# [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置
datasource:
name: eiot
url: jdbc:sqlite::resource:wvp.sqlite
username:
password:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: org.sqlite.JDBC
max-active: 1
min-idle: 1
# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:
port: 18080
# 作为28181服务器的配置
sip:
# [必须修改] 本机的IP, 必须是网卡上的IP
ip: 10.206.0.6
# [可选] 28181服务监听的端口
port: 5060
# 根据国标6.1.2中规定,domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码(由省级、市级、区级、基层编号组成,参照GB/T 2260-2007)
# 后两位为行业编码,定义参照附录D.3
# 3701020049标识山东济南历下区 信息行业接入
# [可选]
domain: 3402000000
# [可选]
id: 34020000002000000001
# [可选] 默认设备认证密码,后续扩展使用设备单独密码, 移除密码将不进行校验
password: admin123
#zlm 默认服务器配置
media:
# [必须修改] zlm服务器的内网IP
ip: 127.0.0.1
# [可选] zlm服务器的公网IP, 内网部署置空即可
wanIp:
# [可选] zlm服务器的hook所使用的IP, 默认使用sip.ip
hookIp:
# [必须修改] zlm服务器的http.port
httpPort: 6080
# [可选] zlm服务器的http.sslport, 置空使用zlm配置文件配置
httpSSlPort: 10443
# [可选] zlm服务器的rtmp.port, 置空使用zlm配置文件配置
rtmpPort: 10935
# [可选] zlm服务器的rtmp.sslport, 置空使用zlm配置文件配置
rtmpSSlPort: 19351
# [可选] zlm服务器的 rtp_proxy.port, 置空使用zlm配置文件配置
rtpProxyPort: 10010
# [可选] zlm服务器的 rtsp.port, 置空使用zlm配置文件配置
rtspPort: 10554
# [可选] zlm服务器的 rtsp.sslport, 置空使用zlm配置文件配置
rtspSSLPort: 10332
# [可选] 是否自动配置ZLM, 如果希望手动配置ZLM, 可以设为false, 不建议新接触的用户修改
autoConfig: true
# [可选] zlm服务器的hook.admin_params=secret
secret: 035c73f7-bb6b-4889-a715-d9eb2d1925cc
# 启用多端口模式, 多端口模式使用端口区分每路流,兼容性更好。 单端口使用流的ssrc区分, 点播超时建议使用多端口测试
rtp:
# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输
enable: true
# [可选] 在此范围内选择端口用于媒体流传输,
portRange: 30000,30500 # 端口范围
# 录像辅助服务, 部署此服务可以实现zlm录像的管理与下载, 0 表示不使用
recordAssistPort: 0
# [根据业务需求配置]
userSettings:
# [可选] 自动点播, 使用固定流地址进行播放时,如果未点播则自动进行点播, 需要rtp.enable=true
autoApplyPlay: false
# 是否开启接口鉴权
interfaceAuthentication: true
# 推流直播是否录制
recordPushLive: true
# 点播等待超时时间,单位:毫秒
playTimeout: 30000
# 等待音视频编码信息再返回, true: 可以根据编码选择合适的播放器,false: 可以更快点播
waitTrack: false
# 在线文档: swagger-ui(生产环境建议关闭)
springfox:
documentation:
swagger-ui:
enabled: true
# [可选] 日志配置, 一般不需要改
logging:
file:
name: logs/wvp.log
max-history: 30
max-size: 10MB
total-size-cap: 300MB
level:
com:
genersoft:
iot: info