Storm streaming server is equipped with a fully working server & client RTMP protocol implementation. It can both host a stream by receiving a signal from an external source or grab an external stream from any other RTMP compatible server (the latter is used with "rtmp" source protocol, that you can check in this section). Before publishing any stream to the server, a proper configuration must be applied.
In order to properly configure RTMP protocol on Storm server, please edit config/preferences.xml file and look for Hosts tag.
<RTMP host="*" authentication="none">
<NonSSLServer enabled="true" port="1935" />
<SSLServer enabled="false" port="1936" />
</RTMP>
All tags are explained below:
Tag name | Default value | Description |
---|---|---|
RTMP:host | * (all internal interfaces) | A default host (ip address) for RTMP protocol. |
RTMP:authentication | none | Decides whenever rtmp clients must use authentication or not. Possible values: none (no authorization is needed), credentials (authorisation via config/auth_publish.xml file) |
NonSSLServer:enabled | true | Decides whenever standard/non-ssl version of the protocol is enabled. |
NonSSLServer:port | true | A port for non-ssl rtmp port (by default: 1935). |
SSLServer:enabled | true | Decides whenever ssl version of the protocol (rtmps) is enabled. |
SSLServer:port | true | A port for ssl rtmp (rtmps) port (by default: 1936). |
For the stream to work properly please make sure that your stream meets the following specification:
Video codecs | H.265, H.264, (legacy codecs like VP8, VP6, Sorenson Spark®, Screen Video v1 & v2 are not supported) |
Audio codecs | AAC, AAC-LC, HE-AAC+ v1 & v2, (legacy codecs like MP3, Speex are not supported) |
Storm streaming server RTMP protocol implementation is compatible with a vast variety of third-party streaming applications and libraries (including both desktop and mobile). Below you'll find some examples:
Platform | Operating system | Software |
---|---|---|
Desktop | Windows, MacOS, Linux | OpenBroadcaster (OBS) |
Windows | XSplit Broadcaster | |
Windows, MacOS, Linux | FFMPEG | |
Mobile | Android, iOS | Larix Broadcaster |
Android, iOS | Streamaxia |
Below you'll find a series of short tutorials on how to setup a stream using the most popular streaming applications.
Service | Custom |
Server | rtmp://yourdomain.com/live - please add your own domain here |
Stream Key | your stream name (e.g. "test") |
RTMP URL | rtmp://yourdomain.com/live - please add your own domain here |
Stream Key | your stream name (e.g. "test") |
FFMPEG application can be also used to push static content (like mp4 files) into a live stream. It's also possible to use it as a real-time video transcoder. Window's version of FFMPEG can be obtained here. For Linux and Mac OS we suggest using inbuilt package managers
Linux (Debian-based distributions)
sudo apt-get install ffmpeg
MacOS(requires HomeBrew which can be downloaded from here)
brew install ffmpeg
Staring a new stream from a local file
ffmpeg -re -nostdin -i /home/john/samples/test01.mp4 -vcodec libx264 -preset:v ultrafast -acodec aac -vf scale=640:266 -f flv rtmp://yourdomain.com/live/test_640_266 &
The above example will rescale the original video to 640:266 resoltuion. For more information on how to use FFMPEG please check this page https://www.ffmpeg.org