Nimble Streamer: Freeware HTTP Streaming Server
Nimble Streamer is a media server written in C ++ as an application for Linux. Its developers create lightweight server for content delivery protocols based on HTTP.
Nimble now supported to Windows and Mac OS X, and allows us to serve as a “live” streaming real-time and on-demand video distribution.
You can manage the server via configuration files or through WMSPanel, cloud control panel, which can be used not only to configure the server, but also get statistics.
Nimble support:
- RTMP (publish or pull),
- MPEG-TS (both UDP, and on HTTP),
- Icecast.
Output may be given:
- HLS (regular or audio-only),
- MPEG-DASH,
- Icecast,
- MPEG-TS on HTTP,
- RTMP.
All streams are formed through transmasking (transmuxing, transcode-multiplexing). This means that the media data is repackaged from one format to a different delivery protocol, wherein the audio and video do not re-encoded, and the format and quality remain unchanged.
We will look at the process of configuring a live broadcast via the Nimble in this article . At the entrance to it will be submitted RTMP-streams (publish or pull), the output will be converted to DASH or HLS.
Install and configure Nimble Streamer
Nimble is put under all popular Linux distributions, Ubuntu, Debian, RedHat and CentOS. Use packages that allows you to not only quickly put, but in the future without any problems to update the software for Windows and Mac OS X are separate installers.
More Nimble all supported installation process can be found here . Need to have an account in WMSPanel before installing, if you do not yet have.
You need to specify the available sources of media data, to apply the input streams for RTMP-streams. They will pick up already Nimble. Go to the Nimble Streamer > Live Streams Set Up for a list of available servers.
Then select the server to configure. Most settings can be applied to multiple servers at once.
Now click on RTMP settings button . Nimble supports two scenarios for processing the input streams:
- Publication stream protocol RTMP (RTMP-publish)
- Relay finished RTMP-stream (RTMP-pull)
You can combine both scenarios, passing Nimble both types of input streams and yielding DASH and HLS. To set up a live broadcast will use the first scenario – the publication of the stream.
RTMP-publish: Setting publications on RTMP
Application settings
You will see several tabs at RTMP settings page. It contains the following global settings of the server:
- Default segment length for outgoing flows;
- Number of segments;
- Protocols that will be obtained at the output – you can generate all of the supported types or just one, it would not greatly affect the performance;
- Login and password for the publication – they will be used by default to publish a stream.
Adding interface
Nimble could get to publish a stream, it must be configured to listen on a specific interface – address and port.Go to the tab Interfaces and click Add interface.
You will see a dialog box to specify the address and port for listening. Field IP address can be left blank, in which case Nimble will listen on all available addresses.
Setting input stream
The input must be submitted Nimble RTMP-stream. For example, if the test machine has a webcam, you can use a video encoder, Adobe Flash Media Live Encoder.
You can set parameters of the video and audio streams on the Encoding Options, or choose a preset from the list. Checkbox should be checked to Stream Flash Media Server on the Output. Specify same address and port as the Nimble Interfaces tab settings in the FMS URL, name of the stream. After that, start broadcasting by pressing Start .
If the webcam is not, you can run the live broadcast an existing file using ffmpeg . Suppose that Nimble configured to accept RTMP-stream at 127.0.0.1:2000, and to access the publications using login and password “login “and” Pass “, respectively. Then the team for the streaming file might look like this:
./ffmpeg -re -i /home/example/live-content/mp4/example.mp4 -acodec copy -vcodec copy -f flv rtmp://login:[email protected]:8000/live/stream
If everything is set up correctly, you will see the output stream in WMSPanel.
Configure outgoing streams
After incoming stream is defined and processed, it can be subjected to transmuxing passing it within MPEG-DASH, or any other protocol that has been specified in the global settings, such as HLS.
Click on the Outgoing stream area streams in diagram, or go to Outgoing in the upper corner of the settings. You will see there all the streams data being processed and ready to use. Each thread has the following set of parameters:
- Status,
- Names of servers from which the stream is distributed,
- The name of the stream to play,
- Audio and video parameters,
- Link to get the URL for playback streams – a box with a question mark.
To play the output stream, click on the question mark to go to the dialogue Sample URL for Player.
You will receive a link to the two protocols that you have defined in the global server configuration MPEG-DASH and HLS. Now, these links can be used in any player that you handy. We tested the streaming in the MPEG-DASH DASH reference player and bitdash ™. You can also use the player on our website (available only after registration): https://wmspanel.com/p
What else?
ABR – adaptive bitrate (adaptive streaming)
After receiving several bitrates of the same stream can be formed HLS stream with multiple channels – modern players such as JWPlayer able to switch between the channels depending on the quality.
More information can be found here: http://blog.wmspanel.com/2014/06/make-abr-hls-rtmp.html
about other live broadcasts scenarios can be found in this article: https://wmspanel.com/nimble/live_streaming
High performance
One of the main advantages of Nimble is that after adjustment, getting the input of live streams, Nimble can develop thousands of simultaneous connections with clients and distribute content without delays and freezes. Offer to read articles on the topic:
- http://blog.wmspanel.com/2014/11/nimble-streamer-performance-tuning.html – Description basic settings that allow you to keep a large number of connections
- http://blog.wmspanel.com/2014/08/utilize-all-bandwidth-with-nimble-streamer.html – A story about how one of our clients after the improvements described in the previous article, was able to keep pumping at 10 gigabits per second.