-
Notifications
You must be signed in to change notification settings - Fork 62
部署、运行和调试
chatop2020 edited this page Dec 13, 2020
·
18 revisions
- 支持Linux,MacOS,Windows操作系统
- 需要安装.net core 3.1或以上运行环境
- 需要对工程源码进行编译
- 需要根据要求配置好各类配置文件
- 需要下载和编译ZLMediaKit流媒体服务器,具体详见 https://github.com/xia-chu/ZLMediaKit/wiki/%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B
- 需要使用MySql数据库
- 采用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权限运行程序
- 编译方法请看源码获取与编译章节,编译好的可执行文件一般在工程目录下的bin/Release/netcoreapp3.1里面,.dll,.xml为主的文件就是可执行文件,这些文件是要用来部署运行的,项目的源码文件在部署运行时不起作用。
- 2020-12-03已将WinNetworkStaCli工程移到"https://github.com/chatop2020/WindowsNetworkStat" 这个仓库里,需要的话单独下载,StreamNode-GB28181仓库不再提供这个工程的下载
- 使用VS2017或以上,编译WinNetworkStaCli工程,编译完成后,得到WinNetworkStaCli.exe文件
- 将WinNetworkStaCli.exe文件复制到StreamCtrl目录
- 将WinNetworkStaCli.exe文件复制到MediaService目录
nohup dotnet /root/StreamCtrl/StreamNodeWebApi.dll >/dev/null &
- StreamMediaServerKeeper 一个流媒体启动一份,可以与StreamNodeWebApi不在同一台服务器
nohup dotnet /root/MediaService/StreamMediaServerKeeper.dll >/dev/null &
- 用cmd命令行下运行
- dotnet StreamMediaServerKeeper.dll 来启动流媒体治理程序
- dotnet StreamNodeWebApi.dll 来启动集成控制接口程序
- StreamNodeWebApi与StreamMediaServerKeeper都集成了Swagger调试文档,所有功能都提供Swagger调试接口,可以通过下面所示地址打开Swagger地址,如果访问不通,则说明运行有问题
- StreamMediaServerKeeper 默认需要开放端口 6880
- StreamNodeWebApi 默认需要开放端口 5800
- ZLMediaKit 需要开放所有端口(TCP、UDP)(因为会动态生成rtp端口)
- 系统可以支持集群ZLMediaKit进行运行,StreamMediaServerKeeper是ZLMediaKit的治理程序,需要和ZLMediaKit放在一起,ZLMediaKit的运行,结束等工作全权托管给StreamMediaServerKeeper负责
- StreamNodeWebApi一个集群里只能有一份,它管理着他下属的所有StreamMediaServerKeeper,而各StreamMediaServerKeeper又管理着自己下属的ZLMediaKit流媒体服务器
- 现在有个问题尚未解决,当在Windows操作系统上同时部署StreamMediaServerKeeper和StreamNodeWebApi时,性能收集类LibSystemInfo会出现问题,这个问题单纯只出现在Windows系统上,原因比较复杂,我会想想办法解决掉它;所以如果不是万不得以,不要使用Windows操作系统来同时部署StreamMediaServerKeeper和StreamNodeWebApi。