nginx-streamer/README.md

45 lines
2.0 KiB
Markdown

# 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`` or ``encode``
- *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.