Create a free ticket and our support team will provide you necessary assistance.
Storm Streaming Server is equipped with a fully functional server & client RTMP protocol implementation. It can either host a stream by receiving a signal from an external source (push method) or capture an external stream from any other RTMP-compatible source (pull method). Additionally, Storm Streaming Server supports restreaming to popular social media platforms such as Facebook, Twitter, YouTube, TikTok, etc.
Before we start broadcasting a live-type or origin-type application must be created first. You can check our Live Application and Origin Application guides to learn how to do this. Once an app is created, we can play with RTMP settings.
Sample RTMPController block from config/preferences.xml
<RTMPController>
<AllowStreamPublish>true</AllowStreamPublish>
<AllowStreamOverwrite>true</AllowStreamOverwrite>
<AllowClientPlayback>true</AllowClientPlayback>
<KeepClientStreamsAlive>true</KeepClientStreamsAlive>
<PlaybackAuthRequired>false</PlaybackAuthRequired>
<Authorization enabled="false" sourceType="local" sourceTarget="abc">
<Auth username="admin" password="qwerty"/>
<Auth token="abcdef" expire="2022-02-01 16:22:00"/>
</Authorization>
</RTMPController>
AllowStreamPublish and AllowClientPlayback control whenever publish and/or playback is allowed for this application. For Origin-type applications you might not want other clients to connect and view the stream, while Edge-type applications should not create new streams on their own.
AllowStreamOverwrite option defines whenever stream can be overwritten by another client. In some scenarios this might be/not be a desired situation.
If we wish to limit publishing capability to only selected users, please enable Authorization block.
Storm’s 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 |
OpenBroadcaster (OBS)
Server | URL to your server, e.g. rtmp://localhost/live (it must include rtmp:// part and name of your application after slash). |
Stream key | Stream key is equal to streamName in storm. |
<Auth token="62cjdj" expire="2022-02-01 16:22:00"/>
rtmp://localhost/live?token=62cjdj
<Auth username="admin" password="qwerty"/>
rtmp://admin:qwerty@localhost/live
XSplit Broadcaster
Server | URL to your server, e.g. rtmp://localhost/live (it must include rtmp:// part and name of your application after slash). |
Stream key | Stream key is equal to streamName in storm. |
FFMPEG
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.
A command line to stream into a 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 &
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). |
Create a free ticket and our support team will provide you necessary assistance.