Skip to content

部署、运行和调试

chatop2020 edited this page Dec 3, 2020 · 18 revisions

系统要求

建议部署规划(强烈建议按以下方式规划,大家都统一规格容易别人帮你排错)

  • 采用Linux操作系统(非万不得以,不要使用Windows操作系统,Linux>MacOS>Windows)
  • 采用MySql 5.7以上的数据库
  • 使用Linux root用户作为平台启动用户
  • 在/root下创建两个目录MediaService和StreamCtrl
  • 将StreamMediaServerKeeper工程中的所有文件复制到/root/MediaService/
  • 将编译好的ZLMediaKit的流媒体服务器MediaServer复制到/root/MediaService/
  • 将StreamNodeWebApi工程中所有文件复制到/root/StreamCtrl/
  • 在/root/MediaService/创建Config目录,用于存放配置文件
  • 在/root/StreamCtrl/创建Config目录,用于存放配置文件
  • 在/root/StreamCtrl和/root/MediaService/下都创建log目录
  • 仔细阅读配置文件详解的说明,将配置文件配置完成放置于上面的两个Config目录中
  • 安装ffmpeg,版本4.2.2以上
  • ffmpeg可执行文件需要放在/root/MediaService/和/root/StreamCtrl/的部署目录中,Linux操作系统可以使用软连接来做。
  • mysql中创建一个名为“streamnode”的数据库,要和/root/StreamCtrl/Config/system.conf中db行指定的一致,字符集请使用utf-8,表结构程序会自动生成。
  • 正式启动前先手工运行一下/root/MediaService/MediaServer程序,让他自动生成config.ini文件,随后根据自己的需要调整config.ini文件的内容
  • 需要root权限运行程序 需要root权限运行程序 需要root权限运行程序

Windows下运行说明

  • 2020-12-03已将WinNetworkStaCli工程移到"https://github.com/chatop2020/WindowsNetworkStat" 这个仓库里,需要的话单独下载,StreamNode-GB28181仓库不再提供这个工程的下载
  • 使用VS2017或以上,编译WinNetworkStaCli工程,编译完成后,得到WinNetworkStaCli.exe文件
  • 将WinNetworkStaCli.exe文件复制到StreamCtrl目录
  • 将WinNetworkStaCli.exe文件复制到MediaService目录

运行(Linux/MacOS)

运行集成控制接口程序StreamNodeWebApi

nohup dotnet /root/StreamCtrl/StreamNodeWebApi.dll >/dev/null &

运行流媒体治理程序

  • StreamMediaServerKeeper 一个流媒体启动一份,可以与StreamNodeWebApi不在同一台服务器
nohup dotnet /root/MediaService/StreamMediaServerKeeper.dll >/dev/null &

运行(Windows)

  • 用cmd命令行下运行
  • dotnet StreamMediaServerKeeper.dll 来启动流媒体治理程序
  • dotnet StreamNodeWebApi.dll 来启动集成控制接口程序

调试

  • StreamNodeWebApi与StreamMediaServerKeeper都集成了Swagger调试文档,所有功能都提供Swagger调试接口,可以通过下面所示地址打开Swagger地址,如果访问不通,则说明运行有问题

StreamNodeWebApi

StreamMediaServerKeeper

需要开放的端口

  • StreamMediaServerKeeper 默认需要开放端口 6880
  • StreamNodeWebApi 默认需要开放端口 5800
  • ZLMediaKit 需要开放所有端口(TCP、UDP)(因为会动态生成rtp端口)

集群ZLMediaKit运行建议

  • 系统可以支持集群ZLMediaKit进行运行,StreamMediaServerKeeper是ZLMediaKit的治理程序,需要和ZLMediaKit放在一起,ZLMediaKit的运行,结束等工作全权托管给StreamMediaServerKeeper负责
  • StreamNodeWebApi一个集群里只能有一份,它管理着他下属的所有StreamMediaServerKeeper,而各StreamMediaServerKeeper又管理着自己下属的ZLMediaKit流媒体服务器
  • 现在有个问题尚未解决,当在Windows操作系统上同时部署StreamMediaServerKeeper和StreamNodeWebApi时,性能收集类LibSystemInfo会出现问题,这个问题单纯只出现在Windows系统上,原因比较复杂,我会想想办法解决掉它;所以如果不是万不得以,不要使用Windows操作系统来同时部署StreamMediaServerKeeper和StreamNodeWebApi。