Torma Kristof
9e8b872200
All checks were successful
continuous-integration/drone/push Build is passing
|
||
---|---|---|
config | ||
.drone.yml | ||
Dockerfile | ||
README.md | ||
startscript.sh |
NGINX Streamer
NGINX Streamer is a simple to use and lightweight RTMP ingest or restream tool. It can distribute streams to multiple proviers or copy a stream to another local endpoint you can then view live.
Requirements
NGINX Streamer only requires an OCI compatible container runtime to run.
For example typing docker run registry.kmlabz.com/videon/nginx-streamer
into your terminal should do the trick.
Environment Variables
If there are no environment variables present, NGINX Streamer stars in ingest mode and generates a stream key for you.
- TYPE - May be
ingest
,restream
orencode
- STREAM_KEY - May be an alphanumeric string
- PUSH_URLS - May be a list of rtmp endpoints to restream to. For example:
rtmp://live-fra02.twitch.tv/app/{stream_key}, rtmp://a.rtmp.youtube.com/live2
. This environment variable is only relevant in restream mode. - FFMPEG_ARGS - Arguments passed to the internal FFMPEG encoder.
- ENCODE_PUSH_URL - RTMP endpoint to push the stream to.
Operating Modes
Ingest Mode
Takes an RTMP stream at rtmp://<yourIP>/origin/<streamKey>
and exposes the exact same stream at rtmp://<yourIP>/live
. It is active if TYPE is set to ingest
.
Restream Mode
The input RTMP stream at rtmp://<yourIP>/origin/<streamKey>
will be pushed to the RTMP endpoints specified in PUSH_URLS. It is active if TYPE is set to restream
.
Encode Mode
The input RTMP stream at rtmp://<yourIP>/origin/<streamKey>
gets encoded according to the environment variable FFMPEG_ARGS
and then gets pushed to pushed to the RTMP endpoints specified in ENCODE_PUSH_URL. It is active if TYPE is set to encode
.
Ports
NGINX Streamer exposes the default RTMP port, 1935. You may forward this to any port on your machine.
TODO
Currently, NGINX Streamer does not validate stream keys. This may be implemented in Django, for example.
An API to get the current stream key would be nice as well.