Live streaming video server for Flash, iOS and Android
You must set the LIVE_SECRET
.
LIVE_SECRET
: Secret token for publishing and statistics.
Other settings are optional and considered experimental. They are under active development and may change or be removed.
The variants option allows for customization beyond the default encoder settings:
LIVE_HLS_SUPPORT
: enable or disable HLS support in config
HLS is enabled if this variable exists.
LIVE_VARIANTS_{name}
: Represents video and audio transcoding rates and the associated HLS variant bandwidth. These settings will depend on your hardware capability and desired quality. The format is{resolution}:{video_kbps}:{audio_kbps}:{bandwidth_bps}
. For full details, seetemplates/nginx.conf.tmpl
and refer to the nginx-rtmp documentation.
The downstreams option allows for copying an incoming RTMP stream to another server, e.g. Facebook.
LIVE_DOWNSTREAMS_{name}
: Corresponds to an RTMP URL that will recieve a copy of the incoming stream. You should only accept a single stream if you use this setting.
The CORS setting allows for cross-origin requests from another frontend server.
LIVE_CORS
: HTTP origin regex to allow CORS on the /hls location.
This image exposes ports 80
for HTTP and 1935
for RTMP.
docker run -e LIVE_SECRET=VERY_SECRET_KEY
-e LIVE_VARIANTS_LOW=640x480:128:64:192000
-e LIVE_VARIANTS_MED=640x480:512:128:640000
-p 80:80 -p 1935:1935 awakening/awakening-nginx-rtmp
This feature is experimental. It may change or be removed.
If ETCD_URL
is provided, configuration is expected to come from the etcd service.
The configuration is the same as above, except they correspond to etcd keys like /live/cors
,
/live/secret
, /live/downstreams/example
, etc.
The container will poll for changes every 10 seconds. If changes are detected, nginx will be reloaded with new configuration.
Set your RTMP encoder to publish to rtmp://{your-server}/pub_{PUBLISH_SECRET}/{your-stream-name}
.
The stream can be viewed at rtmp://{your-server}/player/{your-stream-name}
.
HLS playlists are available at http://{{your-server}/hls/{your-stream-name}.m3u8
.
The following resources are available:
info
: General informationstats
: XML of general information
Statistic URLs contain references to the PUBLISH_SECRET
, so they are protected.
You can visit these protected resources by visiting /p/{token}/{resource-name}
, where
{token}
is set the the result of:
echo -n '{resource-name}{PUBLISH_SECRET}' | openssl md5 -hex
These environment variables are deprecated. They still work but may be removed in the future.
PUBLISH_SECRET
, useLIVE_SECRET
insteadHTTP_CORS_ORIGIN
, useLIVE_CORS
instead
MIT, see LICENSE file.