{"id":15034886,"url":"https://github.com/easydarwin/easydarwin","last_synced_at":"2025-05-11T11:14:45.617Z","repository":{"id":37405403,"uuid":"24703284","full_name":"EasyDarwin/EasyDarwin","owner":"EasyDarwin","description":"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.","archived":false,"fork":false,"pushed_at":"2025-05-07T09:47:48.000Z","size":357226,"stargazers_count":6672,"open_issues_count":112,"forks_count":2189,"subscribers_count":423,"default_branch":"master","last_synced_at":"2025-05-11T11:14:23.239Z","etag":null,"topics":["easydarwin","flv","rtsp","rtsp-server","webrtc"],"latest_commit_sha":null,"homepage":"http://www.easydarwin.org","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EasyDarwin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2014-10-02T02:25:52.000Z","updated_at":"2025-05-10T15:27:20.000Z","dependencies_parsed_at":"2022-07-13T15:59:42.167Z","dependency_job_id":"9bced2ba-f6e7-47bc-994c-37642433896b","html_url":"https://github.com/EasyDarwin/EasyDarwin","commit_stats":{"total_commits":95,"total_committers":12,"mean_commits":7.916666666666667,"dds":"0.49473684210526314","last_synced_commit":"f9545f46d98a51f82c1c8427b762dc38fafb8342"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EasyDarwin%2FEasyDarwin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EasyDarwin%2FEasyDarwin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EasyDarwin%2FEasyDarwin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EasyDarwin%2FEasyDarwin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EasyDarwin","download_url":"https://codeload.github.com/EasyDarwin/EasyDarwin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253554120,"owners_count":21926615,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["easydarwin","flv","rtsp","rtsp-server","webrtc"],"created_at":"2024-09-24T20:26:40.750Z","updated_at":"2025-05-11T11:14:40.588Z","avatar_url":"https://github.com/EasyDarwin.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EasyDarwin\n\n[EasyDarwin](http://www.easydarwin.com/) 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.\n\nEasyDarwin 8.x is a secondary development based on the original [EasyDarwin](https://www.easydarwin.org/) software combined with the [lalmax](https://github.com/q191201771/lalmax) project.\n\nEasyDarwin is licensed under the MIT License.\n\n![example](https://www.easydarwin.com/images/EasyDarwin/preview.png)\n\n## Features\n\n+ Integrated web interface\n+ Video preview\n+ Supports on-demand playback; automatically disconnects when no viewers are present to save bandwidth\n+ Supports outputting multiple protocols (RTMP/RTSP/HLS/HTTP-FLV/WebSocket-FLV/WebRTC)\n+ Allows direct viewing of camera feeds through a single stream URL without requiring login or API calls\n+ Protocol supports playing H264 and H265\n+ Supports pulling RTSP streams and redistributing them via various protocols\n+ Supports push stream authentication\n+ Offline and online monitoring\n+ RESTful API with apidoc documentation tool (located in the web directory)\n\n### Features to be Added\n+ Video on demand functionality\n\n## Usage\nCurrently, 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.\n\n## Directory Structure\n\n```text\n├── cmd\t                    Executable programs\n│   └── server\n├── configs                 Configuration files\n├── internal                Private business logic\n│   ├── conf                Configuration models\n│   ├── core                Business domain\n│   ├── data                Database and main configuration files\n│   └── web\n│       └── api             RESTful API\n├── pkg                     Dependency libraries\n├── utils                   Utilities\n└── web                     Frontend\n```\n\n## Deployment\n### Building from Source Code\nPrerequisites:\n+ Go 1.23.0 installed\n+ The Go bin directory must be added to the system environment variables\n\nThen download:\n```shell\ngit clone https://github.com/EasyDarwin/EasyDarwin.git\ncd EasyDarwin\ngo mod tidy\n```\n### Building on Windows\n\nWhen using Makefile on Windows, please use the `git bash` terminal and ensure Mingw is installed.\n```shell\nmingw32-make.exe build/windows\ncd build\ncd EasyDarwin-win-\"version\"-\"build-time\"\nEasyDarwin.exe\n```\n### Building on Linux\n```shell\nmake build/linux\ncd build\ncd EasyDarwin-lin-\"version\"-\"build-time\"\neasydarwin\n```\n\n## Getting Started Guide\n\nOpen [http://localhost:10086](http://localhost:10086) and add the streaming protocol.\n\n1. **RTMP Push Stream**\n\n   _When adding a push stream protocol, you need to check the actual push stream address, the following address is just an example._\n\n   Then use the following [ffmpeg](https://ffmpeg.org/download.html) command to stream:\n    ```shell\n    ffmpeg -re -i ./video.flv -c copy -f flv -y rtmp://localhost:21935/live/stream_1?sign=5F9ZgWP6fN\n    ```\n\n   Or, use the following configuration to stream through [OBS Studio](https://obsproject.com/download):\n    + Service: `Custom`\n    + Server: `rtmp://localhost:21935/live/`\n    + Stream Key: `stream_1?sign=5F9ZgWP6fN`\n\n2. **RTSP Pull Stream**\n\n   _When adding a pull stream protocol, you need to input the specific RTSP address of your camera._\n\n   For example, using Hikvision RTSP address format:\n    ```text\n    rtsp://username:password@host:port/Streaming/Channels/101\n   ```\n\n   Or Dahua RTSP address format:\n    ```text\n    rtsp://username:password@ip:port/cam/realmonitor?channel=1\u0026subtype=0\n   ```\n\n## Custom Configuration\n\nThe default configuration directory is `config.toml` located in the same directory as the executable file.\n\n### Ports\n// TODO\n\n## Project Dependencies\n\n+ lalmax\n+ gin\n+ gorm\n+ slog / zap\n+ lal\n+ sqlite\n+ pion\n\n## Support\n\nMail: [support@easydarwin.org](mailto:support@easydarwin.org) \n\nWebsite: [www.EasyDarwin.org](https://www.easydarwin.org)\n\nWeChat: EasyDarwin\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasydarwin%2Feasydarwin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feasydarwin%2Feasydarwin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feasydarwin%2Feasydarwin/lists"}