NGINX RTMP Streamer https://videon.kmlabz.com/
Go to file
Torma Kristof 59b1ab9f82
Some checks failed
continuous-integration/drone/push Build is failing
do not be root
2020-09-20 03:12:53 +02:00
config add encode mode 2020-09-20 02:49:49 +02:00
.drone.yml add drone config 2020-09-19 21:51:43 +02:00
Dockerfile do not be root 2020-09-20 03:12:53 +02:00
README.md add encode mode 2020-09-20 02:49:49 +02:00
startscript.sh add encode mode 2020-09-20 02:49:49 +02:00

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.