• 搭建zlmediakit和wvp_pro


    zlmediakit使用zlmediakit/zlmediakit:master镜像
    wvp_pro使用648540858/wvp_pro,可参照https://github.com/648540858/wvp-GB28181-pro
    wvp_pro官方https://doc.wvp-pro.cn/#/
    刚开始我找了个docker镜像运行,后来播放页面一直加载,最后就用了源码运行

    我们从wvp-pro的官网看到wvp-pro和zlmedialKit流程
    在这里插入图片描述
    wvp与zlm是api通信,zlm与wvp是hook通信

    zlmediakit启动命令
    docker run -d -p 1935:1935 -p 8080:80 -p 8554:554 -p 10000:10000 -p 10000:10000/udp -p 8000:8000/udp -p 30000-30500:30000-30500 -p 30000-30500:30000-30500/udp --name zlm zlmediakit/zlmediakit:master

    zlmediakit修改参数

    1. 进入容器 docker exec -it zlm /bin/bash
    2. vim …/conf/config.ini
    3. 记录一下 api.secret,general.mediaServerId,当然也可以自己随便写
    4. hook.enable改成1,因为zlm与wvp是hook方式通信
    alive_interval=10.0
    enable=1
    on_flow_report=
    on_http_access=
    on_play=http://192.168.1.85:8081/index/hook/on_play
    on_publish=http://192.168.1.85:8081/index/hook/on_publish
    on_record_mp4=http://192.168.1.78:18082/api/record/on_record_mp4
    on_record_ts=
    on_rtp_server_timeout=http://192.168.1.85:8081/index/hook/on_rtp_server_timeout
    on_rtsp_auth=
    on_rtsp_realm=
    on_send_rtp_stopped=http://192.168.1.85:8081/index/hook/on_send_rtp_stopped
    on_server_exited=http://192.168.1.85:8081/index/hook/on_server_exited
    on_server_keepalive=http://192.168.1.85:8081/index/hook/on_server_keepalive
    on_server_started=http://192.168.1.85:8081/index/hook/on_server_started
    on_shell_login=
    on_stream_changed=http://192.168.1.85:8081/index/hook/on_stream_changed
    on_stream_none_reader=http://192.168.1.85:8081/index/hook/on_stream_none_reader
    on_stream_not_found=http://192.168.1.85:8081/index/hook/on_stream_not_found
    retry=1
    retry_delay=3.0
    stream_changed_schemas=rtsp/rtmp/fmp4/ts/hls/hls.fmp4
    timeoutSec=20
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    对应修改相关的ip的端口,ip和端口对应的都是wvp的,
    on_record_mp4配置的是 wvp-pro-assist的端口,需要单独部署,如果需要云录像就要部署
    在这里插入图片描述
    5. wq保存退出,然后重启zlm

    wvp配置文件修改

    1. server.port视实际情况修改,和zlm统一
    2. redis和mysql按实际情况修改,源码中存在mysql文件,直接新建数据库即可
    3. sip.ip修改为本机ip,sip.port修改为国标监听的端口,注意和server.port区分
    4. 重点:media.id修改为zlm的general.mediaServerId,media.secret修改为api.secret 上面说记录一下的那个。其余media按官方文档修改即可,我这边端口范围改成了30000-30500,也按实际情况修改,因为我的zlm是docker部署,此时配置的端口范围也要在docker run zlm的时候相应暴露出来,因为设备是往这些端口上推流的
    5. user-settings.allowed-origins修改为前端地址,这些在wvp官方文档都有说明,就不细说了
    6. media.record-assist-port是配置的assist的端口,云端录像使用,用的话就配置

    抓包

    我刚开始是有个地址配置错误了,查看日志收不到设备的视频流,虽然官网也有说明,但是也在此也记录一下
    官网是说按网卡抓包,我是用的ip地址,不过也都一样,抓包方法就不说了
    抓包是在web页面点击实施预览无画面的过程,点击之前开始抓包,没画面过一会就关闭抓包就好了

    我们打开抓包的文件
    在这里插入图片描述
    我这个是按网卡抓包的,就比较多东西,我们搜索sip or rtp

    我们就再次结合这张图来说一下具体流程
    在这里插入图片描述
    192.168.1.197是设备的ip
    192.168.1.78是服务器,5060端口是wvp的端口(sip.port)
    抓包数据中No.401,是wvp-pro下发invite给设备,这里面就包含了设备需要往哪里推流
    在这里插入图片描述
    我的这个ip就配置错误了,应该是192.168.1.78,就导致一直没收到流,如果是外网的情况下,那这里应该就是外网的ip了
    抓包中的rtp数据,就是视频流了,是可以导出在vlc播放的,双击一个rtp数据弹出具体信息
    在这里插入图片描述
    在这里插入图片描述
    这样就可以导出了,就按照默认格式导出即可,拖到vlc里面是可以播放的,就证明设备的流是没问题的,因为wvp配置了一段时间无人播放就会关闭推流,所以当推流地址错误时,zlm收不到流,zlm也就没法通知到wvp流改变事件,所以就会收流超时

  • 相关阅读:
    2022年运动品牌推荐,双十一运动装备推荐
    【Verilog】布斯算法(Booth Algorithm)乘法器的 Verilog 实现
    Flutter高仿微信-视频演示
    【Spring高级】第3讲 Bean的生命周期
    Linux中部署J2EE项目与发布
    【MicroPython ESP32】1.8“tft ST7735驱动3Dcube图形显示示例
    安全配置错误规避指南
    word怎么公式求平均值
    同态加密原理解析
    蓝桥杯每日一题2023.9.27
  • 原文地址:https://blog.csdn.net/qq_40293993/article/details/133925242