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.
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``.
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``.