Torma Kristof
e0a298da5b
All checks were successful
continuous-integration/drone/push Build is passing
45 lines
2.0 KiB
Markdown
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.
|