open source、high performance、industrial rtsp streaming server,a lot of optimization on streaming relay,KeyFrame cache,RESTful,and web management,also EasyDarwin support distributed load balancing,a simple streaming media cloud platform architecture.
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.
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:
Then download:
git clone https://github.com/EasyDarwin/EasyDarwin.git
cd EasyDarwin
go mod tidy
When 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.exe
make build/linux
cd build
cd EasyDarwin-lin-"version"-"build-time"
easydarwin
EasyDarwin 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 uninstall
Open 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=5F9ZgWP6fN
Or, use the following configuration to stream through OBS Studio:
Custom
rtmp://localhost:21935/live/
stream_1?sign=5F9ZgWP6fN
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/101
Or 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
Mail: [email protected]
Website: www.EasyDarwin.org
WeChat: EasyDarwin