ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

ZLMediaKit Windows 服务部署完整指南:6 步让 MediaServer 开机自启

ZLMediaKit Windows 服务部署完整指南:6 步让 MediaServer 开机自启 ZLMediaKit Windows 服务部署完整指南6 步让 MediaServer 开机自启【免费下载链接】ZLMediaKitWebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT/STUN/TURN server and client framework based on C11项目地址: https://gitcode.com/GitHub_Trending/zl/ZLMediaKitZLMediaKit 是一个 C11 媒体服务器框架支持 WebRTC/RTSP/RTMP/HLS/SRT 等协议。本文解决一个具体问题把 MediaServer 变成 Windows 服务实现开机自启、后台静默运行从此不用守着控制台窗口。一、先说结果重启电脑和关窗口之后会发生什么服务注册完成、MediaServer 不再挂在任何窗口之下三件事随之改变重启电脑系统启动后服务开机自启各协议端口就绪无需人工干预。关掉窗口进程由服务控制管理器托管关闭或最小化任何窗口都不影响它媒体服务器继续后台静默运行。进程崩溃故障自动恢复接管约 60 秒后自行拉起不需要人到场。二、动手前自检构建环境三件套 动手前先核对三项缺哪项补哪项源码从仓库获取完整代码构建命令见下。构建工具Visual Studio需装 CMake 组件项目整体由 CMake 驱动。关键兼容库Windows 下必须链接 wepoll它是 epoll 的兼容实现框架的网络事件循环依赖它构建流程会自动引入该依赖。git clone https://gitcode.com/GitHub_Trending/zl/ZLMediaKit若要用拉流代理或截图功能另需准备 FFmpeg 可执行程序并在配置中登记其路径。三、三步构建与首跑编译 → 改配置 → 手动跑通 ⚙️第一步 编译。用 Visual Studio 打开项目或直接调用 cmake选定构建类型完成构建产物MediaServer.exe与一份可用的 config.ini 会落在release/Windows/构建类型目录。第二步 改 config.ini 的三个关键项。注意程序默认加载的是可执行文件同目录下的 config.ini而不是仓库里的范例 conf/所以请改输出目录里那份logLevel设为 info 档方便日后追溯问题logDir/logFile写成可写的绝对路径服务模式没有控制台兜底日志不落盘就彻底丢失各协议端口RTMP 1935、RTSP 554、HTTP 80 等逐一和环境核对确认无冲突。第三步 手动首跑。直接运行 MediaServer.exe浏览器打开 HTTP 端口或 www/swagger/ 的 API 页面能访问、日志无报错即成功然后停掉。手动路径走通才有资格进入服务化。四、服务注册一条命令sc create 与账户权限普通 exe 不能直接当服务用中间需要一个包装程序它通过服务 API 注册服务主函数与控制处理器响应启动、停止、暂停、继续再在内部拉起并看护 MediaServer.exe 这个子进程。接着用系统自带的 sc 命令完成注册sc create ZLMediaKitService binPathD:\zlm\zlmediakit_service.exe startautostartauto让服务随系统开机自启。权限上不建议沿用默认的 LocalSystem最高权限生产环境更稳妥的做法是建一个专用服务账户只授予部署目录的读取与执行权遵循最小权限原则并在本地策略中给它加上作为服务登录的权利。五、长期运行保障日志分级与故障自动恢复 ⏰日志不丢的三招logDir 用绝对路径logDays 控制只保留最近 N 天旧的自动清理日常把 logLevel 维持在 info 档——排查够用性能不受拖累。故障自动恢复服务异常退出时让系统按节奏自动拉起连续三次重启、每 24 小时清零计数sc failure ZLMediaKitService reset86400 actionsrestart/60000/restart/60000/restart/60000资源上限常驻服务建议在任务计划或系统资源策略里给 CPU 优先级、内存占用、带宽划出红线防止长期运行中资源越吃越多。六、验收清单上线前对照 4 项 ✅服务状态services.msc 中显示正在运行任务管理器里没有控制台窗口端口连通换一台同网段机器访问 80 / 1935 / 554 等端口均可达推流验证向rtmp://服务器IP:1935/live/test推送测试流拉流验证用 HTTP-FLV 或 HLS 拉取同一路流画面正常出图。七、踩坑速答4 个高频故障 ❗服务起不来、报 1053超时多半是包装程序没及时向系统回报已就绪——启动处理函数要立刻返回、把实际工作挪到线程里做同时核对 binPath 有无拼写错误或多余空格。端口被占用用netstat -ano | findstr 1935把占用者揪出来停掉或者在 config.ini 里换端口后重启服务。日志看不出问题打开事件查看器 → Windows 日志 → 系统按服务控制管理器来源过滤多数启动失败的细节在那里同时确认服务账户对日志目录有写权限。一启动就闪退、提示缺 DLL通常是 VC 运行库或 wepoll 等依赖没跟上用依赖检查工具过一遍缺什么就把库放到 exe 同目录或系统 PATH 里。交付完成后媒体服务器就进入无人值守状态。后续要扩容时可以顺着容器化项目自带 dockerfile 与镜像构建脚本或内置集群溯源模式继续演进把单机方案摊到多台机器上。【免费下载链接】ZLMediaKitWebRTC/RTSP/RTMP/HTTP/HLS/HTTP-FLV/WebSocket-FLV/HTTP-TS/HTTP-fMP4/WebSocket-TS/WebSocket-fMP4/GB28181/SRT/STUN/TURN server and client framework based on C11项目地址: https://gitcode.com/GitHub_Trending/zl/ZLMediaKit创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表