去年的时候,做摄像头视频接入的草草而过, 文档没有好好记录,今年来填一下自己挖的坑
ZLMediaKit : https://gitee.com/xia-chu/ZLMediaKit.git
wvp-GB28181-pro: https://gitee.com/pan648540858/wvp-GB28181-pro.git
ZLMediaKit 简称zlm ,wvp-GB28181-pro 简称wvp
参考文档: zlm-wiki
可以服务器直接安装,也可以采用docker安装 ,在README 文档中有详细介绍
docker默认仓库找不到zlmediakit/zlmediakit:master 镜像,只有panjjo/zlmediakit ,可以使用docker search zlmediakit 查询具体镜像
但是可以通过配置docker 仓库 ,找到zlmediakit/zlmediakit:master ,配置方式:
vim /etc/docker/daemon.json
{
"log-driver":"json-file",
"log-opts":{
"max-size":"200m",
"max-file":"3"
},
"data-root":"/data/docker/dockerData",
"registry-mirrors": [
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
],
"dns": ["8.8.8.8","8.8.4.4"]
}
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
因为你可能需要挂载自定义的配置,日志 或者ffmpeg 等等需求, 使用docker-compose安装比较方便
version: "3"
services:
zlmservice:
image: zlmediakit/zlmediakit:master
container_name: zlm
privileged: true
# 指定加载配置
command: /opt/media/bin/MediaServer -c /opt/media/conf/config.ini
ports:
- "1935:1935"
- "8080:80"
- "554:554"
- "9000:9000/udp"
- "10000:10000/tcp"
- "10000:10000/udp"
- "30000-30500:30000-30500/tcp"
- "30000-30500:30000-30500/udp"
volumes:
# 自定义MediaServer
- ./zlm/media/bin:/opt/media/bin
# 自定义config.ini
- ./zlm/media/conf:/opt/media/conf
# 自定义ffmpeg
- ./bin:/home/bin
environment:
TZ: "Asia/Shanghai"
需要与wvp一致的配置, 其他配置项可以根据需求调整
docker logs -f zlm
在wvp未启动前 ,一直警告hook 服务未找到 ,与wvp建立连接后日志颜色变化显著
ps: 需要安装nodejs
npm run build 构建静态资源
观察资源文件,是否生成static文件夹
比如master 分支和ide 中resources 资源变化
这里是引用
application.yml 修改 profiles.active 指向application-dev.yml
profiles:
active: dev
配置application-dev.yml , media配置最主要得就是 id,secret 和ip
启动成功后,访问wvp 设置的servlet端口 ,即可看到wvp管理页面, 输入默认用户 admin /admin ,查看节点管理,是否可以看到zlm节点
ps: 需要安装ffmpeg
rtsp 默认端口为554 , 比如在docker中映射端口为8554 则在推送时需要补端口
rtmp 默认端口1935
推送rtsp
ffmpeg -re -stream_loop -1 -i test.mp4 -c copy -f rtsp -rtsp_transport tcp rtsp://127.0.0.1:8554/stream/test1
推送rtmp
ffmpeg -re -stream_loop -1 -i test.mp4 -c copy -f flv rtmp://127.0.0.1:1935/stream/test2
该错误可能只是你在使用和验证中某个错误特例, 可以根据客户端日志\ wvp 日志\zlm日志 结合排查即可
wvp日志提示:
解决方式:
从all-application.yml 查找配置参数设置, 修改application-dev配置即可
点击推流列表, 即可看到推流信息
点击播放 即可看到推流视频
rtp使用端口10000
ffmpeg -re -stream_loop -1 -i demo.flv -c copy -f rtp_mpegts rtp://127.0.0.1:10000
查看zlm 日志,找到编码号
http://服务器IP:10000/rtp/63F0229A.flv