Files
mediamtx/docs/2-usage/26-rtmp-specific-features.md
T
Alessandro RosandGitHub a56408db19 add always available streams (#5335)
When the publisher or source of a stream is offline, the server can be
configured to fill gaps in the stream with a video that is played on
repeat until a publisher comes back online. This allows readers to stay
connected regardless of the state of the stream. The offline video and
any future online stream are concatenated without decoding or
re-encoding packets, using the original codec.
2026-01-31 14:44:58 +01:00

1.3 KiB

RTMP-specific features

RTMP is a protocol that can be used for publishing and reading streams. Regarding specific tasks, see Publish and Read. Features in these page are shared among both tasks.

Encryption

RTMP connections can be encrypted by using the secure protocol variant (RTMPS). A TLS certificate is needed and can be generated with OpenSSL:

openssl genrsa -out server.key 2048
openssl req -new -x509 -sha256 -key server.key -out server.crt -days 3650

Edit mediamtx.yml and set the rtmpEncryption, rtmpServerKey and rtmpServerCert parameters:

rtmpEncryption: optional
rtmpServerKey: server.key
rtmpServerCert: server.crt

Streams can be published and read with the rtmps scheme and the 1937 port:

rtmps://localhost:1937/...

Be aware that RTMPS is currently unsupported by all major players. However, you can use a local MediaMTX instance to decrypt streams before reading them, or alternatively a proxy like stunnel or nginx. For instance, you can launch a local MediaMTX instance with this configuration:

paths:
  decrypted:
    source: rtmps://original-stream

And then read rtmp://localhost/decrypted instead of rtmps://original-stream.