November 20, 2019

HTTP/2 in Nimble Streamer

The Internet as we know it was created on top of HTTP versions 1.0 and 1.1, with HTTP/1.1 being dominant for the last 20 years. The growing demand for new features and capabilities showed several cavities in it and they were addressed in HTTP/2, which has been developed and adopted as a successor for 1.1. You can read the Introduction to HTTP/2 by Google team to see what exactly HTTP/2 has to offer.

At the moment HTTP/2 is supported in all modern browsers and every time users are trying to reach some resource on the Internet, their browser tries to connect through this new protocol version. If it succeeds then all further collaboration is performed via this new channel. If HTTP/2 in unavailable then the browser switches to HTTP/1.1.

Softvelum team has implemented HTTP/2 for some of Nimble Streamer output HTTP-based protocols to provide our customers with one more advantage for their end-users and establish the ground for further development.

HTTP/2 in Nimble Streamer


Nimble Streamer now has support for HTTP/2 protocol in most popular streaming scenarios. No change to input streams is required, you only need to enable the feature as described in "Enabling HTTP/2" section below.

HLS


HTTP Live Streaming (HLS) by Apple is a de-facto standard for end-user media consumption so we implemented extended support for HTTP/2:

  • Live HLS streams with fMP4/CMAF, MPEG-TS and audio-only containers are fully supported.
  • Ads insertion in live HLS via Nimble Advertizer is working fine as usual.
  • HLS DVR output works fine with all of its features.
  • VOD HLS works with all of its features.

MPEG-DASH


MPEG-DASH live streams and VOD can be played via HTTP/2 in all use cases.

Progressive download


Nimble Steamer can serve progressive download over HTTP/2.

Other protocols


At the moment only aforementioned protocols can be delivered via HTTP/2.
Everything else - HTTP re-streaming, Icecast and HTTP MPEG-TS - will be processed only via HTTP/1.1. We'll add them later on.

Enabling HTTP/2


HTTP/2 can be used only when Nimble Streamer streams over HTTPS, so in order to make it process HTTP/2 requests, you need to do the following.

  • Upgrade Nimble Streamer to the latest version or install it if you haven't done that yet;
  • Set up SSL certificate for Nimble Streamer;
    During the setup, add ssl_http2_enabled=true parameter.

After that you'll be able to use HTTP/2 to reach live streams with HLS and MPEG-DASH protocols enabled.

LiteSpeed HPACK library


Nimble Streamer uses LS-HPACK library for encoding and decoding HTTP headers using HPACK compression mechanism.

Softvelum team would like to say thank you to LiteSpeed team, we appreciate their effort and technical expertise. We've made several contributions to LS-HPACK code base and we plan to continue that support as long as we move forward in our HTTP/2 development.



Let us know if you have any thoughts or feedback regarding HTTP/2-based streaming.

Related documentation


Nimble StreamerNimble AdvertizerHLS in Nimble StreamerMPEG-DASH in Nimble Streamer

November 6, 2019

Wowza Streaming Engine and WMSPanel agent upgrade

Wowza Media Systems has just released Wowza Streaming Engine version 4.7.8 which has a big set of major updates. Softvelum has a wide feature set for this media server so we keep our software up-to-date with all new changes.

After this release, if you install WMSPanel agent using common procedure then it will work fine on any Wowza Streaming Engine version.

If you have WMSPanel agent installed on your server already then it will stop working after this Wowza update.

So if you plan upgrading to the latest Wowza engine release, please follow these steps:
  1. Upgrade Wowza Streaming Engine per Wowza instructions.
  2. Upgrade WMSPanel agent for Wowza using this procedure: https://wmspanel.com/docs/wowza_upgrade
The new WMSPanel agent version number will be no less than 4.0.0.10308 after that.

This will make a smooth transition from WMSPanel reporting viewpoint.

Please contact us if you have any issues or questions.

WMSPanel API to control push API

Nimble Streamer provides various push APIs which allow controlling the streaming process such as Publish controlPay-per-view or playback authorization.

Typically you set those APIs settings via web UI by opening "Control" -> "API setup" menu.

And now we have API for API setup! You can use "Push API settings" API methods to perform control by making API calls. Please open the respective section of API reference.
It has the following methods:

  • Get global push API settings gives parameters of "Global push API" tab.
  • Set global push API settings sets parameters for "Global push API" tab.
  • Get list of servers push API settings gets list of servers from "Servers push API" tab.
  • Get server push API settings gets parameters of selected server.
  • Set server push API settings sets parameters for a server.
  • Remove server push API settings removes parameters.

So having those you can dynamically control your push API based frameworks.

You can check our Nimble Streamer configuration reference page for more API descriptions.

Related documentation

November 5, 2019

SRT playback support in Larix Player

SRT became a popular transport protocol for live streams secure delivery over unreliable network. Softvelum team has been an active contributor to SRT open source community being part of SRT Alliance.

Softvelum products lead products have full support for SRT:


Now we introduce SRT playback support in Larix Player for Android and Larix Player for iOS.
SLDP Player for HTML5 does not support SRT yet unfortunately.

SRT playback is available in all 3 modes: Pull (Caller), Listen and Rendezvous.

Mobile Larix Players provide low latency consumption of SLDP, RTMP, Icecast, HLS and MPEG-DASH and adding SRT gives more flexibility, robustness and reliability for end-user last-mile playback.

You can get Larix Player free app in Google Play and AppStore.

If you want to obtained SRT via SRT Pull mode, you need to make sure your source media server or streaming service has SRT Listen mode enabled for the output stream. Read SRT setup description for Nimble Streamer to see how it can be set up there.

The player setup is easy, just open the application, add new connection and enter your stream with srt:// protocol prefix.



The Player supports the following SRT parameters and provides respective fields:
  • passphrase and pbkeylen;
  • latency and maxbw - read this article for more details about their usage;
  • streamid in case your media source supports it.
If you'd like to use Listen or Rendezvous modes, they are set up in a similar way.

Once you save it and tap on it, it will connect to your server and will start playing the stream.



Let us know if you have any questions or suggestions regarding Larix Player.