mirror of
https://git.magehand.net/Magehand/streamer.git
synced 2026-07-21 16:55:28 +00:00
No description
- Elixir 91.9%
- JavaScript 4.3%
- CSS 2.2%
- Dockerfile 0.8%
- HTML 0.8%
| .forgejo/workflows | ||
| assets | ||
| config | ||
| docs/superpowers/specs | ||
| lib | ||
| priv | ||
| test | ||
| .dockerignore | ||
| .env.example | ||
| .formatter.exs | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| AGENTS.md | ||
| DEPLOY.md | ||
| docker-compose.yml | ||
| Dockerfile | ||
| mix.exs | ||
| mix.lock | ||
| README.md | ||
Streamer
Features
- SRT Input
- Multimple audio streams that are correctly exposed in HLS
- Full Encryption support
- OBS compatible
- Multi resolution output support with auto switching
- Single stream at a time
- Bandwidth & View count monitoring
- Just visual, no history for now
- Live message to viewers
- Simple password protection per stream
- Stream title, description (markdown)
- Stream "placeholder" image
- Web based player
- Single admin
Wanted features
- Recording
- CDN Suppor with Signed URLs
- Bunny?
- AWS Cloudfront?
- Better statistics per stream (not just frontend)
- Multiple admins?
- This one is unclear if needed, discussion required
Explicitly not wanted features
- Multiple simultanious streams
- Ads
- Chat/Interactivity with watchers
- Could be convinced to implement some kind of support/feedback system
Known issues
- Graphs on dashboard are ... not pretty
- Seding wrong number of audio streams causes ffmpeg crash (expected) and after a while OBS crash (not as expected)
- This only happens at the start, once the stream works it's very stable over many days
Contributing
New features are explicitly not welcome without prior discussion with the maintainers and will be rejected out of hand.
Bug fixes are welcome. AI generated code contributions are ok but you should understand the fix and write the PR text without use of AI!
Architecture
Simple Phoenix + LiveView based server. It spawns FFMPEG listening on port 9000 and accepts SRT calls with correct encryption key.
FFMPEG does all the transcoding and packaging.
Development
To start your Phoenix server:
- Run
mix setupto install and setup dependencies - Start Phoenix endpoint with
mix phx.serveror inside IEx withiex -S mix phx.server
Now you can visit localhost:4000 from your browser.
Deployment
Docker file is provided, no images are currently provided.
AI Genererated "deploy guide" - not reviewed in any way: DEPLOY.md
TODO: More details