EasyDarwin is an open-source, simple, and efficient streaming media server that supports RTMP/RTSP push and pull streams. It also supports distributing streams via RTMP/RTSP/HLS/HTTP-FLV/WebSocket-FLV/WebRTC protocols. EasyDarwin can be compiled to support Linux/Windows/macOS operating systems and various architectures including X86_64, ARMv7, AARCH64, M1, RISCV, LOONGARCH, MIPS.
EasyDarwin 8.x is a secondary development based on the original EasyDarwin software combined with the lalmax project.
EasyDarwin is licensed under the MIT License.
- Integrated web interface
- Video preview
- Supports on-demand playback; automatically disconnects when no viewers are present to save bandwidth
- Supports outputting multiple protocols (RTMP/RTSP/HLS/HTTP-FLV/WebSocket-FLV/WebRTC)
- Allows direct viewing of camera feeds through a single stream URL without requiring login or API calls
- Protocol supports playing H264 and H265
- Supports pulling RTSP streams and redistributing them via various protocols
- Supports push stream authentication
- Offline and online monitoring
- Video on demand functionality
- RESTful API with apidoc documentation tool (located in the web directory)
- User Authentication
Currently, only source code compilation is supported for generation; one-click installation packages will be supported later. Please refer to the deployment section for instructions on building from source code before use.
├── cmd Executable programs
│ └── server
├── configs Configuration files
├── internal Private business logic
│ ├── conf Configuration models
│ ├── core Business domain
│ ├── data Database and main configuration files
│ └── web
│ └── api RESTful API
├── pkg Dependency libraries
├── utils Utilities
└── web Frontend
Prerequisites:
- Go 1.23.0 installed
- The Go bin directory must be added to the system environment variables
Then download:
git clone https://github.com/EasyDarwin/EasyDarwin.git
cd EasyDarwin
go mod tidyWhen using Makefile on Windows, please use the git bash terminal and ensure Mingw is installed.
mingw32-make.exe build/windows
cd build
cd EasyDarwin-win-"version"-"build-time"
EasyDarwin.exemake build/linux
cd build
cd EasyDarwin-lin-"version"-"build-time"
easydarwinEasyDarwin can run as a system service, ensuring that the program can be restarted and used even in case of unexpected interruptions.
Install service: easydarwin -service install
Start service: easydarwin -service start
Restart service: easydarwin -service restart
Stop service: easydarwin -service stop
Uninstall service: easydarwin -service uninstallOpen http://localhost:10086 and add the streaming protocol.
-
RTMP Push Stream
When adding a push stream protocol, you need to check the actual push stream address, the following address is just an example.
Then use the following ffmpeg command to stream:
ffmpeg -re -i ./video.flv -c copy -f flv -y rtmp://localhost:21935/live/stream_1?sign=5F9ZgWP6fNOr, use the following configuration to stream through OBS Studio:
- Service:
Custom - Server:
rtmp://localhost:21935/live/ - Stream Key:
stream_1?sign=5F9ZgWP6fN
- Service:
-
RTSP Pull Stream
When adding a pull stream protocol, you need to input the specific RTSP address of your camera.
For example, using Hikvision RTSP address format:
rtsp://username:password@host:port/Streaming/Channels/101Or Dahua RTSP address format:
rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0
The default configuration directory is config.toml located in the same directory as the executable file.
// TODO
- lalmax
- gin
- gorm
- slog / zap
- lal
- sqlite
- pion
Mail: support@easydarwin.org
Website: www.EasyDarwin.org
WeChat: EasyDarwin