December 30, 2015

The State of Streaming Protocols - the summary of 2015

WMSPanel team continues analyzing the state of streaming protocols.

Let's review past month and also take a look at the retrospective for the year of 2015.

BTW, also check 2015 summary of our products: Nimble Streamer re-defined, mobile SDK, DVR, MPEG-DASH, HEVC and more.

December metrics calculations are based on 2 billions of views. The stats are collected from 2300+ media servers (Nimble Streamer and Wowza). MPEG-DASH keeps growing, it has 12M+ views. It's now equal to Microsoft SmoothStreaming. HLS has increased to 74% now.

The State of Streaming Protocols December, 2015
You can compare that to November stats below.

The State of Streaming Protocols - November 2015.

You can also compare that to December 2014 statistics

The State of Streaming Protocols December, 2014
A few quick facts about this year looking at this and all other charts from past months:
  • The HLS share was pretty constant through the year balancing around 70% between 69% and 74%.
  • A significant change is the growth of MPEG-DASH which now has 12+ millions of views approaching to 1% share from just a few hundred views (literally 0% share) last year. Nimble Streamer DASH capabilities were transformed into a full-scale feature set so many of our customers made their bet on this technology.
  • MPEG-DASH left HDS behind now competing with SmoothStreaming.
  • Adding RTSP playback support in Nimble Streamer, along with its popularity growth, gave an increase for RTSP share as well.
  • RTMP was continuously going down from 22% to 13%.

This year again we saw the continuous evolution of streaming protocols towards HTTP-based formats. We expect MPEG-DASH to gain more popularity within 2016.


We'll keep analyzing protocols to see the dynamics. Check our updates at FacebookTwitterGoogle+ or LinkedIn.

RTSP and RTMP publish control setup

Previously our team introduced Publish control framework to allow applying our customers' business logic to incoming streams by defining multi-level authorization.

This article describes publish control setup process from deployment point of view. Take a look at the picture below to overview available scenarios and let's go through them step-by-step.

December 25, 2015

H.265 HEVC VOD transmuxing for MPEG-DASH

Nimble Streamer has a wide feature set for VOD streaming for HLS and MPEG-DASH. These formats use H.264/AVC as their default codec. As media streaming technologies evolve over time, a new H.265/HEVC codec was introduced a few years ago. This is a more efficient codec, especially for 4K and upcoming 8K streaming as they require huge bandwidth consumption hence the need for a codec with better compression.

Our team made the first step towards HEVC and today we introduce VOD transmuxing to MPEG-DASH from MP4 encoded with H.265. Our company is a member of DASH Industry Forum so we collaborate with other members to promote this standard.

Transmuxing for H.265 setup is made the same way as it's done for MP4 transmuxing for H.264. Other features are also supported, such as transmuxing from remote HTTP storage and adaptive bitrate support via SMIL.


Read Nimble Streamer HEVC digest page to see full set of HEVC-related features.


Contact us to share your thoughts.

Related documentation


Nimble StreamerMPEG-DASH feature set, HLS VOD streaming, HLS live streaming, Hotlink protection and paywall for MPEG-DASH



December 9, 2015

Mobile SDK for RTMP broadcasting

Our company continuously improves our mobile products.

Currently they include:

  • Larix Broadcaster Android and iOS to stream media from apps to any media server. It's available as part of Larix mobile SDK usage.
  • Publish control framework for Nimble Streamer which provides flexible authentication and control of incoming streams from cameras, mobile devices and encoders.

Until this moment the major supported media protocol was RTSP which is an open standard for broadcasting.

Now we introduce RTMP support for streaming from Android devices. Mobile SDK for Android and Larix Broadcaster for Android are now able to provide published RTMP stream for any media destination which is capable of receiving data via this protocol.

Check Larix Broadcaster on Google Play to start.

Get it on Google Play

Feel free to contact us regarding mobile broadcasting SDK purchase and usage.

Related documentation


December 3, 2015

Media server for Raspberry Pi

Nimble Streamer, the high performance media server with low resources usage is now available for Raspbian, the OS for Raspberry Pi and Orange Pi hardware platforms.

It's also available for ARM64 platforms such as Odroid.

It allows turning this hardware into an efficient streaming device for live and VOD content.

Read this installation instruction with a set of live streaming scenarios setup guide.





November 30, 2015

November 2015 updates

In November, our team continued to make features and improvements.

Before diving into tech update, take a look at Selected Integrators webpage which shows a list of the companies that use our solutions for their customers, integrating our technologies into sophisticated streaming workflows. We recommend contacting these companies if you need help deploying or setting up our products in your environment.

A new version of Larix Broadcaster for iOS is now available in AppStore. Several significant improvements were made. Larix Broadcaster is based on mobile broadcasting library and its source is included in our mobile SDK.

RTSP republishing was added into Nimble Streamer in addition to existing RTSP feature set which already includes transmuxing of incoming streams and RTSP playback.

Nimble Streamer DVR feature set was significantly improved with a few new features:


Speaking of WMSPanel API, it now has multiple streams real-time status API method for those customers who have multiple streams to be tracked simultaneously.

To see some other interesting information, take a look at The State of Streaming Protocols which
shows the growth of MPEG-DASH which overruns HDS, and increase of RTSP share after adding RTSP playback and re-streaming into Nimble Streamer.


Follow us at Facebook, Twitter, Google+ or LinkedIn to get news and updates of our products and services.

The State of Streaming Protocols - November 2015

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on nearly 2.1 billion views. The stats are collected from 2200+ media servers (Nimble Streamer and Wowza).

MPEG-DASH keeps growing, it had 8M+ views. It overruns Adobe HDS and it's getting closer to Microsoft SmoothStreaming. RTSP playback and re-streaming feature set gave a slight increase for this protocol with ~8% for now. HLS share is around 70% now.

The State of Streaming Protocols - November 2015.

You can compare that to October stats below.

November 19, 2015

RTSP republishing in Nimble Streamer

RTSP feature set is a popular among Nimble Streamer users that are performing in live streaming, especially directly from cameras. There are cases when the live stream needs to be delivered to edge or other origin servers in order to perform load balancing and build robust infrastructure.

For this case we have streams republishing support. It previously had RTMP support, and now it allows republishing RTSP.
If you have RTMP, RTSP or MPEG-TS incoming stream, you may publish it as RTMP or RTSP to any location that supports those two protocols.

UI for republishing RTMP and RTSP.

Please refer to "RTMP and RTSP republishing via Nimble Streamer" article for set up details.

Contact us if you have any questions related to this or similar functionality.

Related documentation

November 14, 2015

DVR time fragments requests for EPG in Nimble Streamer

We've recently introduced the DVR feature set in Nimble Streamer which allows recording RTMP, RTSP, MPEG-TS, Icecast and SHOUTcast incoming streams for further playback.

One of the most anticipated scenarios of our customers is the ability to allow the playback the fragment in a specific time range. This is used for various use cases, especially in Electronic Program Guide (EPG) type of applications.

Nimble Streamer now supports time ranges for DVR playback. No special setup is needed. Follow general setup instruction to make settings and then use specially formed URL to get the content.

If your regular DVR stream URL is
http://your.domain.name/live/stream/playlist_dvr.m3u8
then your range URL would be like
http://your.domain.name/live/stream/playlist_dvr_range-<UTC-start>-<duration>.m3u8
where "UTC-start" is the fragment start time as UTC epoch time and "duration" is the length of the fragment in seconds.
Example:
http://your.domain.name/live/stream/playlist_dvr_range-1447069728-120.m3u8
It starts at given time and lasts for 2 minutes.

If you need to set up only the start time and allow continuous playback from that point, use "now" value for that, e.g.:
http://your.domain.name/live/stream/playlist_dvr_range-1447069728-now.m3u8

fMP4 container


The URLs above will work for default MPEG2TS container. If you'd like use fMP4 container for DVR playback, you'll need to use "fmp4" suffix like this:
http://192.168.0.1:8081/live/music/playlist_fmp4_dvr_range-1447069728-120.m3u8
Adding that suffix will create DVR stream with fMP4 container.
Both MPEG2TS and fMP4 DVR streams can be played simultaneously. So you can provide your users with appropriate URLs depending on their device type.

Playback offset


When a player opens a playlist of a DVR which is still currently being recorded, most players will start the playback from some of the last chunks. This is because DVR stream is handled as "live" while it's in recording.

You can recommend players to start the playback from a certain time position by using #EXT-X-START:TIME-OFFSET=<time> tag in DVR chunk list.

Nimble Streamer allows specifying zero offset to define that tag. Use this URL specification:
http://your.domain.name/live/stream/playlist_dvr_range-<UTC-start>-<duration>_offset-0.m3u8
to insert #EXT-X-START:TIME-OFFSET=0 tag. This will recommend a player to start its playback from the beginning of the chunklist. Here's an example:
http://your.domain.name/live/stream/playlist_dvr_range-1447069728-now_offset-0.m3u8

More DVR


Also, check time-shifted playback and thumbnails generation for Nimble DVR.

Please notice that you may also control DVR via API in order to automate your streaming infrastructure. If you'd like to export DVR into MP4, you can check this instruction.

If you have any feedback or feature requests for DVR, just let us know about it.

Related documentation


DVR timeline browsing and playbackDVR feature setNimble Streamer, Live streaming feature set, DASH streaming,

November 10, 2015

DVR control API in WMSPanel

We've recently introduced the DVR feature set in Nimble Streamer which allows recording RTMP, RTSP and MPEG-TS incoming streams for further playback.

As you know, WMSPanel service has its own API for getting stats and controlling media server behavior.

So now we introduce API for controlling DVR:


This covers all basic operations over video recording in Nimble Streamer.

Contact us if you have any questions or feedback about our API.

Related documentation


Nimble Streamer, HLS live streaming, DASH streaming, DVR feature setWMSPanel API,

Introducing selected integrators

Our team has a number of products that help people build their streaming infrastructure. Some of them need efforts to deploy and implement, such as Nimble Streamer installation, setup and usage, paywall capabilities or mobile broadcasting.

There are companies that have been using and deploying our technologies for some time already. We've created a separate page presenting the list of those partners.

Feel free to contact them directly if you need advanced services while deploying our products.

Contact us if you'd like to join the list of our selected integrators.

October 31, 2015

The State of Streaming Protocols - October 2015

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on nearly 2 billion views. The stats are collected from 2100+ media servers (including our Nimble StreamerWowza and Flussonic).

HLS share still grows and it's 74% now.

The State of Streaming Protocols - October 2015.

You can compare that to September stats below.

October 28, 2015

Video recording (DVR) in Nimble Streamer

Streams recording is one of the essential use cases for live streaming. It's important to be able to view stream after the transmission is over, or switch between parts of the show during the transmission.

Nimble Streamer has an excellent capabilities for handling live streams and transmuxing them from RTSP, RTMP, SRT, MPEG-TS, Icecast and SHOUTcast to any supported format like HLS, MPEG-DASH, RTMP, SRT, SLDP, RTSP and MPEG-TS. So the next step we always wanted to make is to create streams recording, also known as Digital Video Recording, or DVR.

Nimble Streamer DVR current features:
For HLS DVR playback you may have your content be packaged in both MPEG2TS and fragmented MP4 (fMP4) containers simultaneously - see the last section of this article for details.

Nimble Streamer DVR allows recording and playing both HEVC (H.265) and AVC (H.264) content. Other codecs are not supported.

Let's see how you can start using Nimble Streamer DVR in your environment.

October 26, 2015

RTSP playback support in Nimble Streamer

Early this year our team introduced RTSP transmuxing support for Nimble Streamer which allowed to take RTSP streams and produce HLS, DASH and MPEG-TS outgoing streams.

As our customers requested, now we introduce RTSP TCP interleaved playback in Nimble Streamer which means the stream can both be played and pulled from the Nimble instance for further processing. To make this output, the Nimble Streamer instance may take the input of RTSP, RTMP and MPEG-TS protocols.

1. Install Nimble Streamer


Use this installation instruction to get Nimble on your server or desktop. The procedure is easy and straight-forward so having any popular 64-bit Linux, Windows or MacOS will allow you to get it working.

2. Make general settings


Since you've completed WMSPanel account sign up at the previous step, you can log into the system and go to "Nimble Streamer" -> "Live stream settings" menu.

The first tab you need is called "Global". Here you need to select output protocols which you will use for playback at selected server. In the following example we see HLS, RTSP and MPEG-DASH.

Selecting protocols for playback.

October 21, 2015

Larix Broadcaster mobile streaming setup and usage for iOS

Do you want to broadcast live video from mobile device to your own audience all over the world? The viewers might be your clients, colleagues, friends, family or everybody else you want to show the current moment of your live. Sure, that should be simple. Just point your mobile device and push the button.

In this article we are going to show how to create video streaming from iOS mobile device via Larix Broadcaster. Larix Broadcaster is a free mobile application which can stream live video and/or audio to media server via RTSP protocol. In this example, we'll use Nimble Streamer because it's a freeware powerful media server with rich feature set.

October 12, 2015

RTSP and RTMP publish control framework overview

For the past few years, mobile devices were showing significant improvements for video creation capabilities hence the popularity of video live streaming solutions - from mobile broadcasting libraries to complex all-in-one solutions. If you create a streaming solution yourself, you need to be able to control the publication process for the protocol which you choose to work with, e.g. for RTSP or RTMP.

RTSP and RTMP incoming streams were supported in Nimble Streamer for a while already among other protocols. Nimble supports both RTSP and RTMP streaming authentication server-wise as well as for specific applications. This is was done according to the standard. So if a customer needed to separate publishing permissions between his users, he needed to create separate application for each individual publisher. But when you broadcast from mobile devices, you probably will need some better way to make sure each publisher has separate permission to publish.

Our customers have been using WMSAuth Paywall functionality to secure the outgoing streaming for a long time. Now to secure the incoming streams, we introduce the Publish control framework which allows performing multi-level authorization.
Secure incoming and outgoing streams via Nimble Streamer.

September 30, 2015

The State of Streaming Protocols - September 2015

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on 1.8 billion views. The stats are collected from 2100+ media servers (including our Nimble StreamerWowza and Flussonic).

HLS share grows again and it's 71% now.

The State of Streaming Protocols - September 2015.

You can compare that to August stats below and also check September 2014 stats as well to see how things changed over the last year.

September 29, 2015

Mobile broadcasting library for iOS platform

Nimble Streamer team experiences a constantly growing demand for new features from our customers who are interested in mobile streaming solutions. Modern devices are able to provide high quality video and audio content, and what's important are broadly used. Hence, mobile streaming traffic share increases rapidly. However, building just streaming application isn't the main objective.

In July 2015, our team has released the Mobile broadcasting library and the sample application for Android - Larix Broadcaster. Now, on numerous requests of our customers, we are announcing the Mobile broadcasting library and the sample application for iOS platform.

Live broadcasting from iOS device

September 24, 2015

Setting up VidiU transcoder to work with Nimble Streamer

Our customers quite often use Teradek VidiU transcoder and ask us how to setup it to work with Nimble Streamer. In this article we are going to show how to configure it.

Teradek VidiU is a portable standalone streaming media encoder on the go that can be mounted on top of cameras. VidiU provides instant transmission of live video signal encoded as H.264 video - to a content delivery network (CDN) of choice. This low cost encoder eliminates the need for expensive encoders and equipment to delivers HD quality video online.

September 23, 2015

Nimble Streamer deployment automation

WMSPanel is the official UI for Nimble Streamer and it is available under subscription model. Nimble Streamer is the free of charge media server which can run fine on lower-end servers or Virtual Machines.
Our customers have long and successful story of using automation deployment of Nimble Streamer, e.g. using Amazon Elastic Cloud. Nimble Streamer can be configured independently of WMSPanel specifying all settings via changing configuration files in manual mode.

However, to add preconfigured Nimble Streamer to WMSPanel for obtaining full statistics it was necessary to add each server in the control panel manually via the import configuration procedure.

Performing manual manipulations is very inconvenient in case of large number of media servers. That's why Nimble Streamer allows automating the process of adding preconfigured media server to WMSPanel. Now it is enough to execute a single command:
sudo /usr/bin/nimble_regutil -u admin@account.com -p password --apply-rules-conf
Please back up your rules.conf before using this method to avoid accidental damages.
After that regutil automatically transfers the Nimble Streamer settings from /etc/nimble/rules.conf file to WMSPanel, and saves the authorization settings to the /etc/nimble/nimble.conf file for sending data to the panel, without changing the other settings.

This capability is specifically useful when you need to organize the broadcast of a single scheduled event and to gather statistics for it (for example, a concert or the final of the National Cup). This scenario can be also used when you create your own CDN.

After adding in WMSPanel, each server can be configured via Web interface. Each operation of setting up a new streaming scenario can be applied to all servers instances  immediately.

Adding via web UI

You may also consider adding an existing server via web UI. It does the same operation as described here but there you may also analyse the rules before applying them via WMSPanel.

Repairing after HW failure


If you existing server hardware has failed and/or you got new system on board, you may want to add this server as existing one rather than registering as new. Read this article for details of this operation.

With the described functionality, Nimble Streamer and WMSPanel users get additional benefits of automatic infrastructure deployment, best resilience and reliability of their streaming processes.

September 16, 2015

Processing RTSP pull streams from IP cameras per request

Today, surveillance cameras are common for security and monitoring. E.g., they are used to ensure the safety of educational institutions: kindergartens, schools, kid's clubs. Many people use cameras to track the progress of construction projects, and to protect the perimeter of protected objects. Often cameras are put in suburban homes, connecting them to the Internet.

Parents, executives of construction companies and owners of country houses should be able to view the video streams from cameras on their mobile devices at any time.


Nimble Streamer allows doing it via transmuxing RTSP stream from the camera to HLS for further viewing on any mobile device. Using of Nimble Streamer helps to reduce load on network channels between cameras and media server, and also helps to protect video streams from unauthorized viewing.

Next we are going to show how to configure that. 

September 9, 2015

Import MPEGTS streams list from playlist

Nimble Streamer allows transmuxing the incoming MPEGTS streams for further restreaming via RTMP, HLS and MPEG-DASH protocols. Until recently, it was necessary to add MPEGTS streams one by one, which was very inconvenient in case of large number of streams.



September 7, 2015

Pull RTMP, RTSP, SLDP and Icecast live streams on demand

Live streaming of video over Internet gives a high load on the communication channels. To reduce channels load, and to increase robustness of live streaming the load balancing techniques are used (read the "HLS, DASH and Icecast streaming load balancing" article for details).

Nimble Streamer also allows decreasing network load from source to edge server by setting up RTMP, RTSP, SLDP and Icecast live streams pull on demand, i.e. by pull by request from user.

In large networks not all your streams are requested by all users all the time. But all of these streams continue to be pulled from origin server, that is why fee for the traffic is continuously charged. 
Nimble Streamer allows to optimize usage of bandwidth via setting up RTMP, RTSP or Icecast streams to be pulled only if users request to view these channels via one of supported output protocols:

  • HLS;
  • MPEG-DASH;
  • RTMP;
  • RTSP;
  • SLDP;
  • Icecast;
  • MPEG-TS.

For example, large content providers can offer thousands of media URLs of live video, but only part of them will be requested by users at certain periods of time. So if 1 viewer is requesting an RTSP stream via HLS and another one requests it via Icecast, then 1 stream will be pulled via RTSP and transmuxed into HLS or any other protocol for output as long as these viewers watch the stream.

The same approach is relevant when using CCTV cameras which transmit video streams over RTSP protocol. Usually in this case only about 20-30 cameras are displayed on the monitor, but overall cameras count may be several hundreds (i.e. for the systems like "Safe town").

Setup procedure


You can perform the advanced Live pull settings setup via Nimble Streamer. This setup allows you to pull only those streams which are requested by viewers and also you can configure media server to pull any streams for the certain application.

We'll show RTMP input as example but you can apply this to RTSP and Icecast/SHOUTcast input as well.

To perform these settings go to "Nimble Streamer" -> "Live streams settings" -> "Live pull settings" and click the "Add RTMP URL" button.



Specify the pulled  live video URL in the appeared dialog. You can specify fallback URL (optional). Specify the "Output application" and "Output stream" fields.

For per-request pull of streams, you also need to specify the "Idle time" value. If the viewers have stopped watching the stream then Nimble Streamer will keep pulling the stream from the origin for this period of time and if nobody else connects to it, the transmission from the origin is stopped. If you need constant stable connection, you don't need to use this option.



You can setup receiving of any RTMP, RTSP or Icecast streams by checking the "Dynamic stream name" and specifying only application name in the Primary URL (i.e. rtmp://remotehost:1935/live). In this case, any stream belonging to the specified application (e.g., live) is pulled from a source and is processed as described above. This allows you to specify the entire set of possible streams instead of one stream, which greatly simplifies the configuration.

Once the server is configured, the first user requesting the video over HLS, RTMP or other supported protocol will initiate a pull session.

This configuration can significantly save the bandwidth if your streams are rarely used. At the same time latency, associated with the resumption of the stream, will not exceed 200 ms. If your streams are constantly demanded, the enabling of this function will not give the advantages. For more details about live streaming latency please read "Achieving low latency for live streaming using Nimble Streamer" blog article.

If you want to speedup the playback start time, you may also consider improving buffer setting. This origin-side setup will allow improving this behavior.

Security settings


However, you should be very careful when using dynamic stream names. The application could have several hundreds of streams (e.g. video cameras), and not all of these streams need to be pulled from the source.
This creates the risk that users can force media server to pull a huge amount of streams by their actions. It can cause of unnecessary using of bandwidth  and computational resources. In order to prevent the use of such scenario, you can create the WMSAuth rule, which allows to take and to play only those streams that the user is allowed to access. For more information about restricting access by streams names please read "Hotlink protection with stream-based signature" article.

If you need to secure your RTMP streams during transmission over public networks, you can also use SSL for RTMP transmission.

Ads, transcoding and more


When transmuxing incoming RTMP streams, you can use Nimble Advertizer for server-side ads insertion. It provides a framework for inserting pre-roll and mid-roll ads into live streams for further output via RTMP, SLDP and Icecast with custom business logic and per-user ads.
Visit Advertizer web page to find out more.

If you need to change content parameters, like change the bitrate, use our Live Transcoder for Nimble Streamer to transform. It has high performance and low resource usage.



Related documentation


August 31, 2015

The State of Streaming Protocols - August 2015

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on nearly 1.5 billion views. The stats are collected from 1900+ media servers (including our Nimble StreamerWowza and Flussonic).

The most interesting fact of this month is that MPEG-DASH has bigger views count than SmoothStreaming. This is a result of continuous work of DASH community for improving tools and solutions. Being a member of DASH-IF, our team keeps on improving our MPEG-DASH feature set as well.

Other protocols share is pretty much the same with HLS being a leader with 69%. Check the chart below for more.

The State of Streaming Protocols - August 2015
The State of Streaming Protocols - August 2015.

You can compare that to July stats below.

August 26, 2015

Achieving low latency for live streaming using Nimble Streamer

Latency is what one part of media companies doesn't care about while the other part is really concerned with. If you provide a content, which requires real-time interaction or impact wide audience simultaneously, like great sports event broadcast, then latency is important for you. Actually, it isn't related to media companies only. At the moment, almost every human can pick up a mobile device (modern, of course), install streaming application and broadcast himself/herself all over the globe.

In the video world, latency is the amount of time between the moment a frame is captured and the moment that frame is displayed. Low latency is a crucial requirement for many streaming scenarios. For example, surveillance systems require immediate reaction of observer on any restricted action. Remote participation in public auction doesn't make sense if buyer sees the situation happened several seconds before. Popular sports broadcast, video conferencing and remote quadrocopter piloting are also obvious cases.

Building RTMP live streaming network via Nimble Streamer

Broadcasting companies often face with overcoming the bottlenecks of ISPs networks, when streaming online video. In addition to that, this companies need to take care about load balancing between the media servers to improve robustness.


You can create broadcasting network which is consist of origin and several edge servers to overcome those challenges. You can locate your origin server in a large data center and install your edge servers near your viewers. In this case you can create failover broadcasting network which allows to perform load balancing between origin and edge servers. Essentially, you are going to create you own Content Delivery Network (CDN). In this article we are going to show how to do that via Nimble Streamer and RTMP restreaming.

August 24, 2015

Live stream broadcasting to YouTube via Nimble Streamer

Perhaps, everyone knows about YouTube, the third most visited site in the world. As you know YouTube allows to perform live streaming from any source. Nimble Streamer can be used as stream source to YouTube. You can combine social power of YouTube and performance of Nimble Streamer. 



You can use any encoder to create live stream (e.g. Adobe FMLE or FFMPEG). In this article we are going to describe the process of live streaming publishing from Larix Broadcaster mobile app to YouTube via Nimble Streamer. Nimble Streamer perfectly republishes RTSP and RTMP streams to YouTube.
Notice that you may also find useful Streaming to Larix Broadcaster YouTube Live article.

August 23, 2015

Larix Broadcaster mobile streaming setup and usage for Android

Do you want to broadcast live video from mobile device to your own audience all over the world? The viewers might be your clients, colleagues, friends, family or everybody else you want to show the current moment of your live. Sure, that should be simple. Just point your mobile device and push the button.


In this article we are going to show how to create video streaming from Android based mobile device via Larix Broadcaster. Larix Broadcaster is a free mobile application which can stream live video or/and audio to media server via RTSP, RTMP and SRT protocols. For our example, we will use Nimble Streamer because it is free and powerful media server with rich set of documentation.

You can visit Larix Broadcaster web page for full feature set description.
Please also visit Larix documentation reference to see more articles about app setup.


To launch the live steaming from a mobile device via Larix Broadcaster you need to perform several steps:

  1. Install Larix Broadcaster on your mobile device;
  2. Install Nimble Streamer and make necessary settings;
  3. Specify published URL in Larix Broadcaster;
  4. Open output stream from the media server and check that everything works fine.

Install Larix Broadcaster application


Open Google Play in your mobile device, type Larix Broadcaster into search window and then press the search icon.
Choose Larix Broadcaster on the application page and press the "Install" button.
Allow access to your camera and microphone by pressing the "Accept" button. Application will be installed in a few seconds.
When you launch Larix Broadcaster you will see preview window with "Settings" and "Broadcast"  buttons.
See the screenshots below.




Install Nimble Streamer


Nimble Streamer can be installed on all popular Linux distributions - Ubuntu, Debian, RadHat and CentOS. For rapid deployment and periodical updates the batch installation is used. There are separate installers for Windows and Mac OS X.

For more details about Nimble Streamer installation please see this page. You need to sign up WMSPanel account before starting the installation.

Go to wmspanel.com and press the "Sign Up" link in the top right corner.

Specify your e-mail address in the appeared dialog and then press "Sign Up" button. Follow the instructions from the received e-mail message to complete the registration.

Now install Nimble Streamer (we are going to show the installation procedure for Windows 7, but you can also install it on Linux or Mac OS X, please note that 64-bit OS is required).

Go to https://wmspanel.com/nimble/install web page then click on Windows tab.



Press the "Download Nimble Streamer Installer" button. The setup file will be downloaded to your file system.

Double click on “NimbleStreamerSetup-2.7.2-3-x86_64.exe” file. Press the "Next" button in the appeared dialog. Select the Destination Folder and press the "Install" button.



The dialog will notify you about successful installation in a few seconds.

Then you need to register just installed media server in WMSPanel. For Windows 7, go to "Start" -> "All programs" - > "Nimble Streamer" and run "Register Nimble Streamer" as administrator. You will be asked for your WMSPanel login and password sent to you during sign up.



Your media server will be visible in the WMSPanel immediately after registration (see the
"Servers" tab on wmspanel.com).



Now lets proceed to Nimble Streamer setup.

Setting up transmux RTSP stream to HLS and RTMP


Log in to wmspanel.com and go to "Nimble Streamer" -> "Live stream settings". Check the HLS and RTMP checkboxes in "General" tab and then press the "Save" button. You may specify Push login and Push password to protect you connection with mobile device. This login and password will be used in Larix Broadcaster settings.




Go to "Interfaces" tab and press "Add RTSP interface" button.


Secify the port number in appeared dialog (this port number will be used in Larix Broadcaster settings). Select your media server and press the "Save" button.




If you'd like to avoid publishing from un-authorized sources, you need to set up login and password which you may then use in this app. Go to Global tab to set up server-wide credentials or create application-specific credentials. Refer to this article for basic workflow setup.

So the basic Nimble Streamer configuration to work with Larix Broadcaster is completed. Proceed to configure mobile application.

Configure Larix Broadcaster application


Launch the Larix Broadcaster application on your mobile device and press "Settings..." button.



Select the "Connection #0, URI" in Settings menu.


Specify the IP-address of your media server, Port and Path. If you have specified Push login and Push password then RTSP URL should look like
rtsp://push_login:push_password@192.168.5.5:1937/live/stream
For RTMP it will be
rtmp://192.168.5.5:1937/live?rtmpauth=push_login:push_password/stream
Press "Ok" button to save your settings.

You can check Larix documentation reference to see other options of creating streaming URL.

Note: If you use Wowza as a media server, you need to use ModuleSecureURLParams to authenticate via RTMP.



Now return to mobile application and press "Broadcast" button (make sure, that your mobile device has network connection, e,g, wi-fi). 


Check the streaming


Log in to WMSPanel. Go to "Nimble Streamer" -> "Live streams" and click on the number under the "Outgoing streams" column.


Then click on the Question sign in the stream name row.


The video playback from mobile device starts automatically in the appeared dialog. By default the most popular streaming protocol (HLS) is used for video playback. HLS is supported by the most modern mobile devices. However it has a quite long latency (about 6 seconds). If you need to playback video with minimum possible latency, please use RTMP protocol. To configure minimum latency please read the "Nimble Streamer performance tuning" article.



Also you can play streaming URL with system player (e.g. VLC).

You can broadcast live video and/or audio from your mobile device via Larix Broadcaster to your web page, YouTube live or any other CDN.


Mobile Broadcasting Library and Larix


If you'd like to create similar Android app capable of media streaming, you can use our mobile broadcasting library and SDK which is the core of Larix Broadcaster. You will get Larix source code and a library for further UI customization.

Take a look at our instructions for streaming to YoutTube Live and streaming to Facebook Live.

Visit our documentation reference page for more Larix setup information.


Mobile delivery example


Take a look at our Mobile to mobile snapshot which shows the example of using Softvelum products for building mobile streaming and playback network.


Please contact us if you have any problems with installation.

Related documentation


Установка и запуск приложения для мобильного стриминга Larix Broadcaster


August 13, 2015

Hotlinking protection in case of dynamically changing IP address



Streaming protection is crucial for companies selling premium access to their content. In most cases it is enough to use Hotlinking protection to allow viewing your media for authorized users only. This method is very reliable and is used for years, but sometimes it might require additional settings procedure.

Quite often, a viewer's ISP performs connection via proxy chain. In this case it is necessary to extract client's IP address from the request headers to set up Hotlinking protection. You can check the "Using WMSAuth paywall with CloudFlare and other proxies" blog article for more information about this technique.

In rare instances, ISP changes client's IP address for every request to media server. In this situation media server blocks access to stream, because media URL signature isn't correct due to viewer's IP address mismatch. Therefore, even authorized users can't access media content.

You can use Pay Per View framework (PPV) to protect your content and allow viewing video for authorized users in this case. It allows to specify any unique user identifier instead of IP address to generate media URL signature.

August 11, 2015

Using SMIL for adaptive bitrate VOD via MPEG-DASH

Nimble Streamer has an excellent MP4 to MPEG-DASH VOD transmuxing feature set. As an addition to this scenario, our customers were asking if we plan supporting multi-bitrate (adaptive bitrate) support for VOD. The de-facto standard for this kind of tasks is the Synchronized Multimedia Integration Language, or SMIL.

Nimble now has SMIL support for MPEG-DASH VOD just as it has for VOD HLS. Let's see how it's set up and how a user may stream ABR VOD.

August 10, 2015

Domain Lock techniques for media streaming in Nimble Streamer

Streaming process is closely related to your website promotion. You need to restrict the ability of copying your media-links for maximizing profits. This limitation is called Domain Lock and allows to keep your content unique. Here are basic techniques you can use for that.


Robust protection can be achieved via the Hotlinking protection. You need to add a media URL signature and this signed URL won't be played on other domains. For more information please check the "Hot-linking protection and domain locking" blog article. However, this type of protection requires to modify your front-end source.

Sometimes abusers act as "man-in-the-middle", requesting web page from viewer's IP address, taking URL from that page and pasting it into its own media player via special applications. In this case you need to use more complex protection (you can check the detailed information about this technique in "Protecting media links from web scraping" article in our blog).

In some cases it is sufficient to play a media file only from specific URL, which contains your domain name. There is a simplified method that doesn't require changing your front-end source and protects your content from viewing from third-party web pages. This method is based on checking the crossdomain.xml file by media player integrated in web page (see the Cross-domain policy and access control in Nimble Streamer blog article for details).

One more way to secure your stream is to use WMSAuth rules which is described below. This method allows to view video which has a specific domain name in the URL. This restricts the domain mapping to your domain and allows to track on which web resources URLs to your content is included.

You can also combine the above methods to create multi-level protection for your content. These methods completely cover more traditional approaches used in other security systems. They assume that you need to add specific domain names to restrict streaming while WMSPanel feature set is more flexible and powerful.

Let's see how Domain Lock can be implemented in Nimble Streamer using WMSAuth rules mentioned above.

August 3, 2015

Prevent files download while streaming VOD

Broadcasting companies pay considerable attention to protect their content because nobody wants to loose profit. One of the most urgent problems in internet streaming is blocking the ability to download  media files. If media file is streamed via Progressive download protocol then this file can be easily downloaded. To restrict the ability to download media files by most of your users you can use more complex streaming protocols such as HLS or MPEG-DASH. Progressive download streaming should be blocked.

Blocking Progressive download streaming.


You need to set up a rule in WMSPanel to protect your media files from downloading.

July 31, 2015

The State of Streaming Protocols - July 2015

WMSPanel team continues analyzing the state of streaming protocols.

The metrics calculations are based on nearly 1.4 billion views. The stats are collected from 1800+ media servers (including WowzaNimble Streamer and Flussonic).

HLS share is at 69% share with slight decrease of RTMP and Icecast numbers. Check the chart below for more.

The State of Streaming Protocols - July 2015
The State of Streaming Protocols - July 2015.

You can compare that to June stats below.

Mobile broadcasting SDK

WMSPanel team is pleased to announce new product for Android mobile platform, called Mobile broadcasting SDK.

Live broadcasting from Android device

At the moment, our WMSPanel service processes data from thousands of different media servers those are doing hundreds of thousands of streams and our Nimble Streamer media server handles billions of connections monthly. We experience a constantly growing demand for new features from our customers who are interested in mobile streaming solutions.

Mobile streaming share increases rapidly, because modern devices are able to provide pretty high quality video and audio content, and, what is important, are broadly used. However, building just streaming application isn't main objective. What really comes to the fore is ability to apply company's business logic to mobile streaming within existing infrastructure or build such infrastructure in easy and common way.

July 26, 2015

Advanced MPEG-TS delivery over UDP via Nimble Streamer

There is wide range of tasks associated with streaming of media content in MPEG-TS over UDP in corporate networks. Nimble Streamer is capable of transmitting stream to multicast network, DVR Storage, transcoder or presentation monitor.

MPEG-TS over UDP multicast via Nimble Streamer

In some cases it is necessary to transmit multiple programs in a single MPEG-TS stream. This activity is often related to private networks (hotel, enterprise), when using a hardware decoder that supports only MPEG-TS as input.

Packing multiple RTMP, RTSP or MPEG-TS streams to single MPEG-TS UDP stream.

The distinction of Nimble Streamer is the ability to transmux up to 256 RTMP, RTSP and MPEG-TS streams into single multi-program MPEG-TS UDP stream. For each incoming stream the unique PMT PID, Video PID and Audio PID values are assigned. You can take RTMP, RTSP and MPEG-TS streams from any sources, transmux them into a single UDP MPEG-TS stream and transmit via multicast.

July 22, 2015

Streaming VOD from remote HTTP storage via Nimble Streamer

Many broadcasting companies use remote media storage as a convenient way of organizing video-on-demand (VOD) streaming infrastructure. The main advantage of dedicated storage is having all files located in single repository, instead of maintaining multiple copies across all edge servers, and save costs on multiple large hard disk drives. The second advantage is ability to organize centralized backup and failure recovery and convenience of managing content, such as adding, removing or replacing media files. This is why storages like Amazon S3 are extremely popular.

Remote storage support is now available in Nimble Streamer. It works with any server, that supports file access via HTTP protocol with HTTPS as an option. Nimble Streamer support HLS, and MPEG-DASH transmuxing as well as progressive download from remotely stored media content. Advanced caching techniques allows Nimble to effectively stream files, those size exceeds available file system capacity.

Streaming remotely stored Media

Nimble Streamer is extremely lightweight and powerful. You can use any cheap virtual machine to stream thousands of files. All you need to do is specify link to your media on remote server via WMSPanel web interface.

July 17, 2015

Protecting media links from web scraping

Security and billing are often considered as most valuable tasks for every media business. It's hard to imagine a company that doesn't care about protecting its own content, which in fact underlies company's gain. Unprotected content can be used by other people for commercial purposes and that actually means missed profit for the content owner.

WMSPanel team provides their customers with set of paywall features for Nimble Streamer and Wowza, those are dedicated to solve the above tasks. The best-known feature is hot-linking protection, which allows to protect specified links from re-streaming and further re-use. Briefly, media URL is accompanied with special signature, which contains information about IP address of viewer and period of time the URL is valid for. So, protected URL can't be used to retrieve media content from any different IP address and expires after predefined period of time. Perfect!

However sometimes, our customers report, that hot-linking protection is broken, because they've seen an application, playing their protected streams. The application's name is usually Kodi, SimpleTV or PlaylisTV, but that isn't a full list. Reported case looks like re-streaming, but in fact it's not. Those applications don't produce media URL, but scrape it from a web page, which is in most cases accessible for everyone. Roughly speaking, they act as "man-in-the-middle", requesting web page from viewer's IP address, taking URL from that page and pasting it inside its own media player.

So, nothing to worry about? Not exactly.

June 30, 2015

The State of Streaming Protocols - June 2015

WMSPanel team continues analyzing the state of streaming protocols. June had less views than May but the same share of protocols.

The metrics calculations are based on nearly 1.3 billion views. The stats are collected from 1800+ media servers (including WowzaNimble Streamer and Flussonic). As we introduced HTTP origin for "CDN-friendly" outgoing streaming, part of outgoing connections is not shown in monthly stats.

HLS share is down at 68% share with slight increase of RTMPIcecast and MPEG-DASH numbers. Check the chart below for more.

The State of Streaming Protocols - June 2015
The State of Streaming Protocols - June 2015.


You can compare that to May stats below.