手机改ip地址软件免费,seo怎么做最佳,做海报推荐网站,诸暨做网站说明
部署gb28181和zlm主要需要构建两个镜像#xff0c;第一个为基础镜像#xff0c;以centos7为基础构建新的基础镜像base.Dockerfile,第二个镜像为服务部署镜像server.Dockerfile#xff0c;以第一个镜像base.Dockerfile构建出的镜像为基础镜像进行构建
整个基础镜像的构…说明
部署gb28181和zlm主要需要构建两个镜像第一个为基础镜像以centos7为基础构建新的基础镜像base.Dockerfile,第二个镜像为服务部署镜像server.Dockerfile以第一个镜像base.Dockerfile构建出的镜像为基础镜像进行构建
整个基础镜像的构建全部手动编译安装需要的依赖工具
基础镜像版本centos:centos7.9.2009 JDK版本17 MAVEN版本3.8.8 NodeJS版本12.16.3 GIT版本2.39.2
构建基础镜像 gb28181/basic:1.0
基础镜像主要安装一些部署ZLMediaKit和GB28181服务需要的依赖工具主要安装了以下工具 GB28181依赖git、jdk17、maven 主要用于代码的拉取、编译以及运行 ZLMediaKityasm、cmake、ffmpeg 主要用于编译安装ZLMediaKit以及后期的视频播放使用
dockerfile内容文件名称base.Dockerfile
FROM centos:centos7.9.2009 as buildWORKDIR /srv/software# 安装必要的依赖和工具
RUN yum update -y yum install -y perl-devel libcurl-devel curl-devel gcc gcc-c \yum install -y openssl zlib-devel tcl build-essential tk gettext \yum install -y wget vim# 安装git
RUN wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.39.2.tar.gz --no-check-certificate \tar -zxvf git-2.39.2.tar.gz cd git-2.39.2 ./configure --prefix/srv/server/git make make install \touch /etc/profile.d/my_env.sh \echo export PATH/srv/server/git/bin:$PATH /etc/profile.d/my_env.sh# 安装jdk17
RUN wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz --no-check-certificate \tar -zxvf jdk-17_linux-x64_bin.tar.gz -C /srv/server \echo /etc/profile.d/my_env.sh \echo export JAVA_HOME/srv/server/jdk-17.0.9 /etc/profile.d/my_env.sh \echo export PATH$JAVA_HOME/bin:$PATH /etc/profile.d/my_env.sh# 安装maven
RUN wget https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz --no-check-certificate \tar -zxvf apache-maven-3.8.8-bin.tar.gz -C /srv/server \echo /etc/profile.d/my_env.sh \echo export MAVEN_HOME/srv/server/apache-maven-3.8.8 /etc/profile.d/my_env.sh \echo export PATH$MAVEN_HOME/bin:$PATH /etc/profile.d/my_env.sh# 安装yasm
RUN wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz --no-check-certificate \tar -zxvf yasm-1.3.0.tar.gz cd yasm-1.3.0 ./configure --prefix/srv/server/yasm make make install \echo /etc/profile.d/my_env.sh \echo export PATH/srv/server/yasm/bin:$PATH /etc/profile.d/my_env.sh# 安装cmake
RUN source /etc/profile wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz --no-check-certificate \tar -zxvf cmake-3.9.2.tar.gz cd cmake-3.9.2 ./configure --prefix/srv/server/cmake make make install \echo /etc/profile.d/my_env.sh \echo export PATH/srv/server/cmake/bin:$PATH /etc/profile.d/my_env.sh# 安装 ffmpeg
RUN source /etc/profile wget http://www.ffmpeg.org/releases/ffmpeg-3.1.tar.gz --no-check-certificate \tar -zxvf ffmpeg-3.1.tar.gz cd ffmpeg-3.1 ./configure --prefix/srv/server/ffmpeg make make install \echo /etc/profile.d/my_env.sh \echo export PATH/srv/server/ffmpeg/bin:$PATH /etc/profile.d/my_env.sh# 安装nodejs
RUN wget https://nodejs.org/dist/v12.16.3/node-v12.16.3-linux-x64.tar.gz --no-check-certificate \tar -zxvf node-v12.16.3-linux-x64.tar.gz -C /srv/server mv /srv/server/node-v12.16.3-linux-x64 /srv/server/node-v12.16.3 \echo /etc/profile.d/my_env.sh \echo export PATH/srv/server/node-v12.16.3/bin:$PATH /etc/profile.d/my_env.shFROM centos:centos7.9.2009WORKDIR /srv/server# 安装必要的依赖和工具
RUN yum update -y yum install -y gcc gcc-c opensslCOPY --frombuild /srv/server /srv/server
COPY --frombuild /etc/profile.d/my_env.sh /etc/profile.d/my_env.sh# 刷新环境变量
RUN echo source /etc/profile /etc/bashrc
构建镜像命令
以下命令需要和base.Dockerfile在同一路径下执行构建过程比较慢耐心等待~~
docker build -t gb28181/basic:1.0 -f base.Dockerfile .构建成功 构建服务部署镜像 gb28181/server:1.0
该镜像主要负责部署以下几个服务 1.下载编译安装zlm 2.下载wvp-gb28181-pro 3.编译前端代码 4.编译wvp-gb28181-pro后端代码 5.下载编译wvp-pro-assist代码 6.制作启动脚本run.sh该脚本主要用于启动zlm服务、wvp-gb28181-pro以及wvp-pro-assist 7.对外暴露需要的端口
dockerfile内容文件名称server.Dockerfile
FROM gb28181/basic:1.0 as buildWORKDIR /srv/app# 创建文件夹
RUN mkdir -p /srv/app/gb28181/media \mkdir -p /srv/app/gb28181/wvp/heapdump \mkdir -p /srv/app/gb28181/assist/heapdump# 编译安装zlm
RUN source /etc/profile git clone https://gitee.com/xia-chu/ZLMediaKit.git \cd ZLMediaKit \git submodule update --init \mkdir build cd build cmake .. make -j4 \rm -f /srv/app/ZLMediaKit/release/linux/Debug/config.ini \cp -r /srv/app/ZLMediaKit/release/linux/Debug/* /srv/app/gb28181/media# 下载wvp-gb28181-pro
RUN source /etc/profile git clone https://gitee.com/pan648540858/wvp-GB28181-pro.git# 编译前端代码,如果前后端分开部署这一步可以跳过
RUN source /etc/profile cd wvp-GB28181-pro/web_src npm --registryhttps://registry.npmmirror.com install \npm run build# 编译打包wvp-gb28181-pro
RUN source /etc/profile cd wvp-GB28181-pro \mvn clean package -Dmaven.test.skiptrue \cp /srv/app/wvp-GB28181-pro/target/*.jar /srv/app/gb28181/wvp \cp /srv/app/wvp-GB28181-pro/src/main/resources/application-dev.yml /srv/app/gb28181/wvp/application.yml# 下载wvp-pro-assist以及编译打包
RUN source /etc/profile git clone https://gitee.com/pan648540858/wvp-pro-assist.git \cd wvp-pro-assist \mvn clean package -Dmaven.test.skiptrue \cp /srv/app/wvp-pro-assist/target/*.jar /srv/app/gb28181/assist/ \cp /srv/app/wvp-pro-assist/src/main/resources/application-dev.yml /srv/app/gb28181/assist/application.ymlFROM gb28181/basic:1.0WORKDIR /srv/appCOPY --frombuild /srv/app/gb28181/ /srv/app/# 启动脚本
RUN echo #!/bin/bash run.sh \echo source /etc/profile run.sh \echo cd /srv/app/assist run.sh \echo nohup java -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/srv/app/assist/heapdump/ -jar *.jar --spring.config.location/srv/app/assist/application.yml run.sh \echo nohup /srv/app/media/MediaServer -d run.sh \echo cd /srv/app/wvp run.sh \echo java -XX:HeapDumpOnOutOfMemoryError -XX:HeapDumpPath/srv/app/wvp/heapdump/ -jar *.jar --spring.config.location/srv/app/wvp/application.yml run.sh \chmod x run.shEXPOSE 18080/tcp
EXPOSE 5060/tcp
EXPOSE 5060/udp
EXPOSE 18081/tcp
EXPOSE 80/tcp
EXPOSE 443/tcp
EXPOSE 1935/tcp
EXPOSE 8000/tcp
EXPOSE 9000/tcp
EXPOSE 10000/tcp
EXPOSE 554/tcp
EXPOSE 554/udp
EXPOSE 30000-30500/tcp
EXPOSE 30000-30500/udpCMD [sh, /srv/app/run.sh]构建镜像命令
以下命令需要和server.Dockerfile在同一路径下执行
docker build -t gb28181/server:1.0 -f server.Dockerfile .构建成功 服务部署
WVP-GB28181-PRO配置文件
文件名称application-wvp.yml位置/root/data/gb28181/config 注意以下几点 1. media.id的值要和下面config.ini配置文件中[general]下的mediaServerId的值一致 2. media.secret的值和config.ini中[api]下的secret的值以及[hook]下的admin_params的值三者保持一致 3. media如果开启了多端口模式即media.rtp.enable的值设置为true的话media.rtp.port-range的值要和config.ini中[rtp_proxy]下的port_range的值保持一致 4. 配置中关于数据库和redis的配置请自行根据实际值修改 5. 配置文件中media.ip的值根据实际情况修改
spring:# 设置接口超时时间mvc:async:request-timeout: 60000thymeleaf:cache: false# [可选]上传文件大小限制servlet:multipart:max-file-size: 10MBmax-request-size: 100MB# REDIS数据库配置redis:# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1host: 192.168.50.155# [必须修改] 端口号port: 6379# [可选] 数据库 DBdatabase: 4# [可选] 访问密码,若你的redis服务器没有设置密码就不需要用密码去连接password: 123123# [可选] 超时时间timeout: 10000# mysql数据源datasource:type: com.zaxxer.hikari.HikariDataSourcedriver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://192.168.50.155:3306/wvp?useUnicodetruecharacterEncodingUTF8rewriteBatchedStatementstrueserverTimezonePRCuseSSLfalseallowMultiQueriestrueallowPublicKeyRetrievaltrueusername: rootpassword: 123123hikari:connection-timeout: 20000 # 是客户端等待连接池连接的最大毫秒数initialSize: 10 # 连接池初始化连接数maximum-pool-size: 200 # 连接池最大连接数minimum-idle: 5 # 连接池最小空闲连接数idle-timeout: 300000 # 允许连接在连接池中空闲的最长时间以毫秒为单位max-lifetime: 1200000 # 是池中连接关闭后的最长生命周期以毫秒为单位)
#[可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:port: 18080# [可选] HTTPS配置 默认不开启ssl:# [可选] 是否开启HTTPS访问enabled: false# [可选] 证书文件路径放置在resource/目录下即可修改xxx为文件名key-store: classpath:test.monitor.89iot.cn.jks# [可选] 证书密码key-store-password: gpf64qmw# [可选] 证书类型 默认为jks根据实际修改key-store-type: JKS# 作为28181服务器的配置
sip:# [必须修改] 本机的IP对应你的网卡监听什么ip就是使用什么网卡# 如果要监听多张网卡可以使用逗号分隔多个IP 例如 192.168.1.4,10.0.0.4# 如果不明白就使用0.0.0.0大部分情况都是可以的# 请不要使用127.0.0.1任何包括localhost在内的域名都是不可以的。ip: 0.0.0.0# [可选] 28181服务监听的端口port: 5060# 根据国标6.1.2中规定domain宜采用ID统一编码的前十位编码。国标附录D中定义前8位为中心编码由省级、市级、区级、基层编号组成参照GB/T 2260-2007# 后两位为行业编码定义参照附录D.3# 3701020049标识山东济南历下区 信息行业接入# [可选]domain: 4401020049# [可选]id: 44010200492000000001# [可选] 默认设备认证密码后续扩展使用设备单独密码, 移除密码将不进行校验password: admin123# 是否存储alarm信息alarm: true#zlm 默认服务器配置
media:id: 512dbsFIDsgKv1c2eE7T# [必须修改] zlm服务器的内网IPip: 192.168.50.155# [必须修改] zlm服务器的http.porthttp-port: 8080# [可选] 返回流地址时的ip置空使用 media.ipstream-ip:# [可选] wvp在国标信令中使用的ip此ip为摄像机可以访问到的ip 置空使用 media.ipsdp-ip:# [可选] zlm服务器的hook所使用的IP, 默认使用sip.iphook-ip:# [可选] zlm服务器的http.sslport, 置空使用zlm配置文件配置http-ssl-port: 8443# [可选] zlm服务器的hook.admin_paramssecretsecret: BWInk2pjKY8EkuZ6Kc019zajV7RU03N1# 启用多端口模式, 多端口模式使用端口区分每路流兼容性更好。 单端口使用流的ssrc区分 点播超时建议使用多端口测试rtp:# [可选] 是否启用多端口模式, 开启后会在portRange范围内选择端口用于媒体流传输enable: true# [可选] 在此范围内选择端口用于媒体流传输, 必须提前在zlm上配置该属性不然自动配置此属性可能不成功port-range: 30000,30500 # 端口范围# [可选] 国标级联在此范围内选择端口发送媒体流,send-port-range: 30000,30500 # 端口范围# 录像辅助服务 部署此服务可以实现zlm录像的管理与下载 0 表示不使用record-assist-port: 18081auto-config: true
# [根据业务需求配置]
user-settings:# 点播/录像回放 等待超时时间,单位毫秒play-timeout: 180000# [可选] 自动点播 使用固定流地址进行播放时如果未点播则自动进行点播, 需要rtp.enabletrueauto-apply-play: true# 设备/通道状态变化时发送消息device-status-notify: truesip-log: false# 跨域配置配置你访问前端页面的地址即可 可以配置多个allowed-origins:- http://localhost:18080- http://127.0.0.1:18080interface-authentication: falselogging:level:root: infoWVP-PRO-ASSIST配置文件
文件名称application-assist.yml 位置/root/data/gb28181/config 注意以下几点 1. userSettings.record的值要填写实际镜像内部视频文件所在的位置 2. userSettings.ffmpeg和ffprobe的值也是镜像内部对应命令所在的路径 3. 配置中关于redis的配置自行修改其他值如果没有修改按照默认的即可
spring:# REDIS数据库配置redis:# [必须修改] Redis服务器IP, REDIS安装在本机的,使用127.0.0.1host: 192.168.50.155# [必须修改] 端口号port: 6379# [可选] 数据库 DBdatabase: 4# [可选] 访问密码,若你的redis服务器没有设置密码就不需要用密码去连接password: 123123# [可选] 超时时间timeout: 10000# [可选] WVP监听的HTTP端口, 网页和接口调用都是这个端口
server:port: 18081# [可选] HTTPS配置 默认不开启ssl:# [可选] 是否开启HTTPS访问enabled: false# [可选] 证书文件路径放置在resource/目录下即可修改xxx为文件名key-store: classpath:xxx.jks# [可选] 证书密码key-password: password# [可选] 证书类型 默认为jks根据实际修改key-store-type: JKS# [根据业务需求配置]
userSettings:id: 自行定义# [可选 ] zlm配置的录像路径record: /srv/app/media/www/record# [可选 ] 录像保存时长单位 天每天晚12点自动对过期文件执行清理recordDay: 7# [可选 ] 录像下载合成临时文件保存时长 不配置默认取值recordDay单位 天每天晚12点自动对过期文件执行清理# recordTempDay: 7# [必选 ] ffmpeg路径ffmpeg: /srv/server/ffmpeg/bin/ffmpeg# [必选 ] ffprobe路径 一般安装ffmpeg就会自带 一般跟ffmpeg在同一目录,用于查询文件的信息ffprobe: /srv/server/ffmpeg/bin/ffprobe# [可选 ] 限制 ffmpeg 合并文件使用的线程数间接限制cpu使用率 默认2 限制到50%threads: 2swagger-ui:# [可选] 日志配置, 一般不需要改
logging:file:name: logs/wvp.logmax-history: 30max-size: 10MBtotal-size-cap: 300MBlevel:root: infotop:panll:assist: infoZLMedia的配置
文件名称config.ini 位置/root/data/gb28181/config 注意以下几点 1. [api]下的secret和上文说的保持一致 2. [ffmpeg]下的bin的值为容器内部对应命令所在的路径如果没修改就是用下面配置中的默认值 3. [general]下的mediaServerId的值和上文说的保持一致 4. [hook]下的几个涉及到ip的配置如果开起了自动配置可以不用管服务开启后会自行设置
; auto-generated by mINI class {[api]
apiDebug1
defaultSnap./www/logo.png
downloadRoot./www
secretBWInk2pjKY8EkuZ6Kc019zajV7RU03N1
snapRoot./www/snap/[cluster]
origin_url
retry_count3
timeout_sec15[ffmpeg]
bin/srv/server/ffmpeg/bin/ffmpeg
cmd%s -re -i %s -c:a aac -strict -2 -ar 44100 -ab 48k -c:v libx264 -f flv %s
log./ffmpeg/ffmpeg.log
restart_sec0
snap%s -rtsp_transport tcp -i %s -y -f mjpeg -frames:v 1 %s[general]
check_nvidia_dev1
enableVhost0
enable_ffmpeg_log0
flowThreshold1024
maxStreamWaitMS15000
mediaServerId512dbsFIDsgKv1c2eE7T
mergeWriteMS0
resetWhenRePlay1
streamNoneReaderDelayMS20000
unready_frame_cache100
wait_add_track_ms3000
wait_track_ready_ms10000[hls]
broadcastRecordTs0
deleteDelaySec10
fastRegister0
fileBufSize65536
segDur2
segKeep0
segNum3
segRetain5[hook]
admin_paramsBWInk2pjKY8EkuZ6Kc019zajV7RU03N1
alive_interval10.0
enable1
on_flow_report
on_http_access
on_playhttp://0.0.0.0:18080/index/hook/on_play
on_publishhttp://0.0.0.0:18080/index/hook/on_publish
on_record_mp4http://127.0.0.1:18081/api/record/on_record_mp4
on_record_ts
on_rtp_server_timeouthttp://0.0.0.0:18080/index/hook/on_rtp_server_timeout
on_rtsp_auth
on_rtsp_realm
on_send_rtp_stoppedhttp://0.0.0.0:18080/index/hook/on_send_rtp_stopped
on_server_exitedhttps://0.0.0.0:18080/index/hook/on_server_exited
on_server_keepalivehttp://0.0.0.0:18080/index/hook/on_server_keepalive
on_server_startedhttp://0.0.0.0:18080/index/hook/on_server_started
on_shell_login
on_stream_changedhttp://0.0.0.0:18080/index/hook/on_stream_changed
on_stream_none_readerhttp://0.0.0.0:18080/index/hook/on_stream_none_reader
on_stream_not_foundhttp://0.0.0.0:18080/index/hook/on_stream_not_found
retry1
retry_delay3.0
stream_changed_schemasrtsp/rtmp/fmp4/ts/hls/hls.fmp4
timeoutSec20[http]
allow_cross_domains1
allow_ip_range::1,127.0.0.1,172.16.0.0-172.31.255.255,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255
charSetutf-8
dirMenu1
forbidCacheSuffix
forwarded_ip_header
keepAliveSecond30
maxReqSize40960
notFoundhtmlheadtitle404 Not Found/title/headbody bgcolorwhitecenterh1您访问的资源不存在/h1/centerhrcenterZLMediaKit(git hash:e81ff30/2023-11-25T21:43:1608:00,branch:master,build time:2023-11-26T01:11:59)/center/body/html
port80
rootPath./www
sendBufSize65536
sslport443
virtualPath[multicast]
addrMax239.255.255.255
addrMin239.0.0.0
udpTTL64[protocol]
add_mute_audio1
auto_close0
continue_push_ms3000
enable_audio1
enable_fmp41
enable_hls1
enable_hls_fmp40
enable_mp40
enable_rtmp1
enable_rtsp1
enable_ts1
fmp4_demand0
hls_demand0
hls_save_path./www
modify_stamp2
mp4_as_player0
mp4_max_second3600
mp4_save_path/srv/app/media/www
paced_sender_ms0
rtmp_demand0
rtsp_demand0
ts_demand0[record]
appNamerecord
fastStart0
fileBufSize65536
fileRepeat0
sampleMS500[rtc]
externIP
port8000
preferredCodecAPCMU,PCMA,opus,mpeg4-generic
preferredCodecVH264,H265,AV1,VP9,VP8
rembBitRate0
tcpPort8000
timeoutSec15[rtmp]
directProxy1
enhanced1
handshakeSecond15
keepAliveSecond15
port1935
sslport0[rtp]
audioMtuSize600
h264_stap_a1
lowLatency0
rtpMaxSize10
videoMtuSize1400[rtp_proxy]
dumpDir
gop_cache1
h264_pt98
h265_pt99
opus_pt100
port10000
port_range30000-30500
ps_pt96
timeoutSec15[rtsp]
authBasic0
directProxy1
handshakeSecond15
keepAliveSecond15
lowLatency0
port554
rtpTransportType-1
sslport0[shell]
maxReqSize1024
port0[srt]
latencyMul4
pktBufSize8192
port9000
timeoutSec5; } ---创建挂载目录
# 配置文件
mkdir -p /root/data/gb28181/config
# 视频文件
mkdir -p /root/data/gb28181/data
# 日志文件
mkdir -p /root/data/gb28181/logs启动镜像
端口说明
8080媒体服务zlm对外暴露的http端口 8443媒体服务zlm对外暴露的ssl端口 8554rtsp暴露的端口 18080wvp–gb8181-pro服务对外暴露的端口 5060sip服务对外暴露的端口 18081录像服务wvp-pro-assist对外暴露的端口 10000如果未开启多端口模式(media.rtp.enablefalse)则使用该端口进行媒体流传输 30000-30500如果开启多端口模式(media.rtp.enabletrue)则在该范围内随机产生端口进行媒体流传输 1935rtmp暴露的端口 8000rtc暴露的端口 9000srt暴露的端口 如果未开启多端口模式即media.rtp.enablefalse那么30000-30500的端口可以不用做映射
挂载卷说明
-v /root/data/gb28181/config/config.ini:/srv/app/media/config.ini zlm服务对应的配置文件-v /root/data/gb28181/config/application-assist.yml:/srv/app/assist/application.yml 媒体录像服务对应的配置文件-v /root/data/gb28181/config/application-wvp.yml:/srv/app/wvp/application.ym GB28181服务对应的配置文件-v /root/data/gb28181/data:/srv/app/media/www zlm媒体录像存储文件-v /root/data/gb28181/logs/media:/srv/app/media/log zlm媒体服务的日志文件-v /root/data/gb28181/logs/assit:/srv/app/assist/logs 媒体录像服务的日志文件-v /root/data/gb28181/logs/wvp:/srv/app/wvp/logs GB28181服务的日志文件
docker run -id -p 1935:1935 -p 8080:80 -p 5060:5060 -p 5060:5060/udp -p 8443:443 -p 8554:554 -p 18080:18080 -p 18081:18081 -p 10000:10000 -p 8000:8000 -p 9000:9000 -p 30000-30500:30000-30500 -p 30000-30500:30000-30500/udp \
-v /root/data/gb28181/config/config.ini:/srv/app/media/config.ini \
-v /root/data/gb28181/config/application-assist.yml:/srv/app/assist/application.yml \
-v /root/data/gb28181/config/application-wvp.yml:/srv/app/wvp/application.yml \
-v /root/data/gb28181/data:/srv/app/media/www \
-v /root/data/gb28181/logs/media:/srv/app/media/log \
-v /root/data/gb28181/logs/assit:/srv/app/assist/logs \
-v /root/data/gb28181/logs/wvp:/srv/app/wvp/logs \
--restartalways \
--name gb28181 gb28181/server:1.0执行以上命令启动镜像后查看对应服务的日志
gb28181服务的日志 录像服务日志 zlm媒体服务 zlm日志要关注下红线中的日志刚开始的时候18080对应的服务还没开启所以这时候请求接口是失败的 等待18080服务启动成功后zlm请求18080就会成功下面的日志代表请求18080服务成功 如果查看zlm的日志发现请求18080服务一直失败就要看下对应的服务是不是没启动成功具体原因查看对应服务进行分析一定要确保zlm请求18080 服务成功
验证部署结果
访问GB28181服务IP端口 例如http://192.168.50.18080/#/login首次访问需要登录默认的用户名和密码admin/admin 输入用户名和密码进行登录 点击右上角的平台信息查看国标服务的相关配置 根据以上信息配置对应的摄像头这里以海康摄像头为例,访问摄像头的ip进行登录后切换到配置界面网络高级配置平台接入 平台接入方式gb28181 传输协议udp sip信息填写对应平台信息里面的即可 填写完成记得保存一定要保存保存保存访问gb28181服务切换到国标设备可以看到摄像头已经自动显示了 点击操作下的通道 点击播放 其他功能请自行探索~~如果视频无法播放看下自己的配置文件是否正确另外确保网络是互通的即摄像头、sip和zlm三者之间要保证网络可以互相访问博主就是因为网络问题困在了无法播放视频这里好久。
结束语
关于gb28181的部署和视频播放问题博主也是研究了好久最后才将遇到的所有问题一一解决为了少遇到类似问题博主将所有的服务部署整理成了Dockerfile一来是为了方便部署二来也是为了减少单独部署中遇到诸多问题。如果这篇文章帮你解决了问题希望能点赞收藏~~