3分钟上手EasyDarwin:跨平台编译与部署全指南
你是否还在为流媒体服务器搭建时的环境配置烦恼?是否因不同操作系统的编译差异而束手无策?本文将以EasyDarwin为例,带你一站式解决Linux、Windows和macOS三大平台的源码编译问题,让你3分钟内从零开始搭建高性能RTSP流媒体服务。
项目简介
EasyDarwin是一款高性能开源RTSP流媒体服务器,基于Go语言研发,支持RTSP推模式转发、拉模式转发、录像、检索、回放等功能。项目采用模块化设计,核心代码位于internal/core/目录,包含流媒体转发、关键帧缓存等核心功能。
项目目录结构如下:
├── cmd 可执行程序入口
├── configs 配置文件
├── internal 业务逻辑核心代码
├── pkg 依赖库
├── utils 工具函数
└── web 前端管理界面
环境准备
前置依赖
编译EasyDarwin需要以下环境:
- Go 1.23.0或更高版本
- Git
- 对应平台的编译工具链
源码获取
git clone https://gitcode.com/gh_mirrors/ea/EasyDarwin.git
cd EasyDarwin
go mod tidy
Linux平台编译
编译步骤
Linux平台使用Makefile进行编译,执行以下命令:
make build/linux
cd build
cd EasyDarwin-lin-"version"-"build-time"
easydarwin
服务安装
编译完成后可将EasyDarwin安装为系统服务:
# 安装服务
easydarwin -service install
# 启动服务
easydarwin -service start
相关脚本位于deploy/start.sh和deploy/stop.sh。
Windows平台编译
编译环境准备
Windows平台需要使用Git Bash终端并安装Mingw:
mingw32-make.exe build/windows
cd build
cd EasyDarwin-win-"version"-"build-time"
EasyDarwin.exe
配置文件说明
Windows平台配置文件位于configs/config.toml,可根据需求修改端口和路径设置:
[rtspconfig]
addr = ':15544'
enable = true
[rtmpconfig]
addr = ':21935'
enable = true
macOS平台编译
macOS平台编译流程与Linux类似,使用Makefile进行编译:
make build/local
cd build/EasyDarwin-lin-$(VERSION)-$(DAY_TIME)
./easydarwin
验证部署
编译完成后,访问http://localhost:10086即可打开Web管理界面。登录后可在"直播管理"页面添加流地址进行测试。
推流测试
使用FFmpeg进行RTMP推流测试:
ffmpeg -re -i ./video.flv -c copy -f flv -y rtmp://localhost:21935/live/stream_1?sign=5F9ZgWP6fN
拉流测试
在Web界面添加RTSP拉流地址,例如海康威视摄像头:
rtsp://username:password@host:port/Streaming/Channels/101
添加成功后,可在播放页面查看实时视频流。
常见问题解决
端口占用问题
若出现端口占用,可修改configs/config.toml中的端口配置:
[defaulthttpconfig]
httplistenaddr = ':10087' # 修改HTTP端口
编译错误处理
- Go版本过低:升级Go至1.23.0或更高版本
- 依赖缺失:执行
go mod tidy安装依赖 - Windows编译错误:确保Mingw已正确安装并添加到环境变量
结语
通过本文介绍的方法,你已掌握在不同操作系统上编译和部署EasyDarwin的完整流程。项目更多高级功能可参考doc/EasyDarwin.api.html和web-src/README.md。
如需深入学习,可查看以下资源:
- 官方文档:README.md
- API文档:doc/EasyDarwin.apifox.json
- 前端代码:web-src/
祝你的流媒体服务搭建顺利!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



