January 10, 2019

Get ready for Flash farewell and RTMP decline

In 2017 Adobe announced that they would stop supporting the Flash technology at the end of 2020.

This announcement agitated the media streaming industry as it meant that Flash Player, a critical requirement for consuming RTMP streams in web browsers, would not be updated and distributed anymore. Major browser owners like Google, Mozilla and Microsoft released their timelines for Flash decline. Common intention is to disable Flash plugin by default in 2019 and then remove Flash completely in 2020. So with the final release of Flash and its removal from browsers, the majority of Internet users will not be able to play RTMP streams.

It’s hard to overrate the impact of Flash and RTMP streaming protocol for online streaming industry. Flash gave a flexible way to implement interactive browser applications, while RTMP gave ability to deliver video and audio to those apps. This tandem boosted the industry, showing the potential of media delivery and consumption over the Internet, opening the door to other technologies. Now we live in a world of HTML5/JavaScript web apps in MSE-enabled browsers with protocols like HLS, MPEG-DASH and WebRTC to deliver the content. As you can see in our quarterly and yearly State of Streaming Protocols reports, HLS now dominates the delivery field with nearly two thirds of traffic.

However, RTMP and Flash remain active, as you can see in the aforementioned report as well. The reason is simple: up until now RTMP was the best way to deliver ultra-low latency live streams to end-users. Neither HLS nor other HTTP chunks-based protocols could provide proper level on latency and start-up delay.

A number of areas require the streaming latency and start-up delay to be as low as possible:
  • Watching sports on your device, you don’t want to get your picture a minute later than your friends who are watching TV. The e-sports also fall under the same category. Regardless of the nature of competition you want to see what’s happening right now.
  • Betting and bidding use cases have big money at stake so you don't want to be even a couple of seconds behind the other participants to make your bet.
  • Law enforcement, security and surveillance scenarios demand to have a hand on pulse in real-time to make an immediate response in case of emergency.

So with the fade of RTMP, a lot of people will get a very bad user experience. Thus many companies are looking for a replacement. Besides the core requirement of latency and delay, new solutions must have support for new codecs and adaptive bitrate (ABR). RTMP was designed long before these elements became a must-have, so currently they are available mostly in HTTP-based protocols like HLS or MPEG-DASH.

We understand the strive of our customers for something better so our team began creating a technology which would cover all the needs mentioned above. As a transport layer, we chose WebSockets which is now the industry standard for cross-applications interaction. A lot of communication solutions have been using WebSockets for several years, so the choice for underlying foundation was not hard.

On top of that we built our media delivery layer to cover all the use cases we discussed above. This required both server-side and player-side implementation to use full advantages for this new technology for last mile delivery.

We called it SLDPSoftvelum Low Latency Protocol. As all of our products, it’s built with high performance and low resource usage in mind.

Its basic features are listed below.
  • Sub-second delay between origin and player. This applies both to start-up delay and on streaming latency. This is a crucial part of SLDP.
  • SLDP is codec-agnostic. You can delivery and play whatever codec your end-user platform can play. These are H.264, VP8, VP9 and H.265/HEVC video with AAC or MP3 audio.
  • ABR support for switching between bitrates according to your network conditions. Changing channels takes just a GOP time.
  • SLDP is firewall-friendly as it uses HTTP/HTTPS.

SLDP provides full feature set for media delivery and consumption available to you with low efforts.

Let’s see what steps you will follow to replace Flash-based RTMP streaming with SLDP.

Input stream processing


Softvelum Nimble Streamer freeware media server has full support for SLDP for a server-side. This includes processing incoming streams via any of supported protocols and codecs.

If you already use Nimble Streamer for processing some live input then you’re all set and good to go further. You won’t need to do anything else to prepare your content for SLDP streaming.

If you haven’t yet tried live streaming with Nimble Streamer then first start with installing it on your server.

Second, you need to describe incoming streams. Nimble Streamer is capable of receiving published RTMPpulling RTMPpulling and receiving RTSP, process SRT streams via all existing modes, take MPEG-TS input, pull HLS and even Icecast streams. Each way has its setup procedure, follow the respective links to get it done. All operations are performed via easy-to-use web UI and it will take just a couple minutes to complete.

Most common case is taking published RTMP stream as input. Once you describe the incoming stream and push it to Nimble, it will appear in the output streams and you’ll be able to use it for playback right away. You can also take a look at other RTMP-related articles.

The input codecs can be whatever you have in your source stream, it depends basically on your encoder and transport protocol capabilities described on this page. At the moment it’s H.264/H.265/VP8/VP9 video and AAC/MP3 audio.

If you'd like to use multiple resolutions in your streams, check ABR setup how-to with general steps to complete that.

Stream delivery


Having your streams been set up properly via web UI, you can either use them directly for playback or build some network for further delivery. You may want to consider setting up origin server to deliver your content to several edges over various networks using appropriate delivery protocols like RTMP, SRT or any other. Take a look Softvelum usage snapshots to see how you can use SLDP with our other products. You can also check frequently asked questions to see best practices of SLDP usage and tuning.

Speaking of complex use cases, check our article in Haivision company blog describing stream delivery from Haivision encoder via SRT through delivery network to end user player using SRT and SLDP protocols. It should give a great overview of both protocols’ capabilities.

As an extension of Nimble Streamer capabilities, you can use Amazon CloudFront which has full support for WebSockets so SLDP can be delivered via this delivery network seamlessly. Take a look at CloudFront setup for SLDP delivery to learn more about proper settings. You can use any other network with WebSockets support, you can be sure Nimble Streamer can be used fine there.

Up to this point the setup wasn’t much different from any other solution. You just set up your infrastructure to get input and deliver the output to your client.

At the edge of your delivery chain (whether it’s one server or the entire network), you will get a playable SLDP stream URL which you can use on your client, both browser and mobile.

Browser playback


Now it's time to start replacing your Flash-based web player with SLDP player.

SLDP web player is an HTML5 JavaScript app. It connects to media server via WebSockets, exchanges commands, receives media data, plays it on a browser’s MSE engine and provides control over the playback process.

We provide freeware version of SLDP web player, you can download it here and set up for your own use cases. There you can see sample JavaScript code and description of player's parameters. It works in any MSE-enabled browser regardless of your platform, e.g. Chrome or Explorer on Windows, Chrome or Mozilla on Linux etc. You can even use it on Android browsers even though we have a separate app for that platform (see the next section).

If you’d like to make deep customization of look-and-feel, you can obtain our web player SDK. It’s available via subscription which covers updates and technical support from our SLDP team.

Mobile devices playback


If your users need to have iOS or Android playback experience, they either use your own branded native applications by now or have some free apps from markets installed.

In the first case, you probably have some mobile app in place, so you’ll just need to add another stream receiving engine in addition to RTMP. Softvelum provides SLDP Player SDK for Android and SDK for iOS. Both SDKs are available via subscriptions which cover periodical updates and technical support from our mobile development team. Having our SDKs, you’ll be able to add SLDP processing and playback to your existing apps or create brand new ones. This won’t require much efforts by your mobile developers as SDK has easy-to-use code of our SLDP Player free app.

We provide free SLDP Player applications available for iOS and Android. Your users can download it for free and play designated URLs. You can use player app to evaluate our SDK capabilities before purchasing premium subscription. Those apps' source code is available as part of SDKs packages too.

Further usage


So at this point you should have your RTMP playback be replaced by SLDP with our solutions to cover existing scenarios and also to provide more features like new codecs or ABR. This overview article showed the basic steps you can follow to consider SLDP as a replacement of RTMP for end-user playback for low latency scenarios.

You don't have to make this technology shift right away as RTMP is still working perfectly. However you should definitely consider researching its replacement with some new technology. And we hope SLDP will be the one you choose for production.

Please check some snapshots of Softvelum products usage to see how you can have SLDP utilized with other products of our company, including content protection, DVR, Live Transcoder and Nimble Advertizer.

If you have any questions regarding our products, feel free to contact our helpdesk.

December 24, 2018

2018 summary

The New Year of 2019 is approaching so it's time to look back at what Softvelum has accomplished.
We've had an interesting year as you will find out below.

First, take a look at a few numbers in our State of Streaming Protocols for 2018, our customers stream more each year and we're excited to see continuous connections number growth.

We had a couple of publications which you may find interesting:

Speaking of streaming use cases, this year we started making series of "snapshots" to show how Softvelum products can be used for real-life streaming scenarios. As example, check first case study with mobile-to-mobile delivery chain or "power origin" approach to building CDN. Let us know if you'd like to see more scenarios covered like that.

Nimble Advertizer


The biggest start of this year is Nimble Advertizer. It's a live streaming server-side ads insertion (SSAI) framework for Nimble Streamer media server.

Key features of Advertizer are:
  • Pre-roll ads per each connection.
  • Mid-roll ads flexible timing setup.
  • Per-stream ads insertion business logic.
  • Personalized ads based on users' IDs.
Advertizer supports HLS, RTMPSLDP and Icecast protocols output. It supports both video+audio and audio-only modes. Advertizer may use all input live protocols supported by Nimble Streamer, which are RTMPRTSPSRTUDTHLSMPEG2TSIcecast and SHOUTcast.

The workflow is easy to adopt within any business logic:
  1. Nimble Streamer media server processes incoming streams to get the content.
  2. Nimble Advertizer calls your handler web application to get business logic description.
  3. Advertizer gets files with advertisements to process them via Nimble Streamer according to your logic defined via handler.
  4. Nimble inserts the ads into original media and packages it into output protocol.
  5. End user connects to Nimble and gets the stream containing original content mixed with advertisements.
  6. Playback is running smooth regardless of ads insertion over time in any player which supports the output protocol.
You can read full technical spec for more information. Also Nimble Advertizer demo shows simple ad insertion scenarios for HLS/RTMP/SLDP/Icecast in action, with all setup details.

SLDP


Softvelum Low Delay Protocol was introduced in 2017 and this year it's been widely adopted among our customers as a replacement for RTMP low latency delivery.
It's now gaining momentum since Adobe announced that it's going to decline Flash in 2020 which will cause elimination of Flash-based RTMP playback. Major browsers will also decline its usage in 2020 so those who need to have low latency real-time streaming, will have to choose other technologies.

SLDP is a great replacement with its sub-second latency, buffer control, adaptive bitrate and multiple codecs support. Based on WebSockets, it allows playback on MSE-enabled browsers with our HTML5 player, as well as mobile playback on iOS and Android devices with our free apps. Early next year we'll introduce more details on transition from RTMP to SLDP for your ultra-low latency, so stay tuned for our blog and social networks.

Meanwhile, CDNs start adding WebSockets support which allows SLDP delivery natively through their networks. Take a look at CloudFront WebSockets delivery setup with Nimble Streamer as example of such support.

We've been improving SLDP protocol through this year to make it a great solution for RTMP playback replacement.

Nimble Streamer


Besides Advertizer and SLDP, Nimble Streamer also got a number of improvements.

The aforementioned Jan Ozer article How to Create a Live HLS Feed With HEVC refers to fMP4 container support for live streaming. In addition to fMP4 support for live streams, Nimble now has VOD support for fMP4 HLS. So if your customers use latest iOS version, you could use that container for both live and VOD to optimize your distribution costs.

Our customers have been requesting more features regarding end-users connections control. Nimble Streamer now supports sessions authorization via external handler to decide which of the connecting users may continue receiving the stream. Player connects to Nimble Streamer instance via any stream URL, then Nimble reaches the external handler which returns response to define further behavior of the server.
This gives even bigger flexibility to paywall feature set which allows building monetization solution for your content.

Nimble Streamer now has DVR thumbnails generation as JPG files and as single-frame MP4 files, this helps showing preview for any point in recorded stream.

Mobile products


Our mobile solutions are being improved all the time following customers' feedback.

Larix mobile SDK now supports SRT streaming from Android and iOS devices. Nimble Streamer had SRT support for a couple of years so far, so adding that protocol to a mobile publishing SDK has been highly anticipated.

Modern devices are getting support for HEVC (H.265) encoding, so Larix apps and SDKs have support for it as well. You'll need to use RTSP or SRT protocols as a transport for it, as RTMP has no HEVC support.

Latest mobile devices also have high frame rate, e.g. 60fps, so Larix has that for both for iOS and Android on those devices which have that feature support. On Android phones you can now select fixed or variable frame rates, depending on current device capabilities - that's crucial for some transcoding solutions.

SLDP Player for Android and iOS now has Icecast support to give playback capabilities for numerous online radios.
In case you use HTML5 browser player on iOS and have any issues, take a look at SLDP iOS Player fallback setup.

Minor improvements and updates were continuously added to both products during entire year.


We have a couple of new products to deliver for you next year, so stay tuned for updates and we'll continue providing the best possible improvements to help you grow your business.

Our team wishes you a Happy New Year!

The State of Streaming Protocols - 2018 summary

Softvelum team continues analyzing the state of streaming protocols. It's based on stats from WMSPanel reporting service which handles data from Wowza Streaming Engine and Nimble Streamer servers.

In 2018, WMSPanel collected data about 48 billion views.
We also added a new metric - total view time for our server products. It's nearly 6.7 billion hours.
On average, there were 3600 to 3900 servers under WMSPanel observation at any moment of time.

Let's take a look at the chart and numbers of this quarter:

The State of Streaming Protocols - 2018

December 23, 2018

DVR JPEG thumbnails in Nimble Streamer

DVR feature set in Nimble Streamer covers the majority of use cases for streams recording and playback, its setup is described in this article.

We've recently introduced MP4 snapshots of DVR stream which you may use directly via URL or certain kind. MP4 output was chosen over JPG images due to resources usage. MP4 frame can be extracted and inserted into MP4 container with relatively small amount of CPU and RAM. Thumbnails are generated as .mp4 files containing a single key frame. This allows inserting thumbnail in any modern browser using <video> element.

When it comes to saving still image snapshots via JPG, it requires frame decoding and encoding into proper format. That's why you'll need Nimble Streamer Live Transcoder to be available at your DVR server.

Install Live Transcoder and enable thumbnails


Nimble Streamer uses decoding and encoding libraries from Nimble Live Transcoder to get the image from the stream and then encode it into JPG.
So to get his feature working, first you need to install Live Transcoder and subscribe for a license. Once you've installed Live Transcoder and registered the purchased license, you can enable this feature in DVR settings.

Go to Nimble Streamer menu and click on Live streams settings. Once you open settings, go to DVR tab to see your DVR settings. To enable JPG thumbnails, open your stream DVR setting, click on Advanced settings and scroll to Generate JPEG thumbnails checkbox.

Enabling JPG thumbnails generation.
Check that box to enable the feature and use Thumbnail width and Thumbnail height edit boxes to specify dimensions of images. If you leave them as 0, Nimble will save full-size images. If you specify exact values, they will be used for every thumbnail. Another option is to specify only one of those dimensions, in this case, the image will have both sides proportional to each other. E.g. if you set up Thumbnail height to 480 with width set to 0, this will produce thumbnails with 480 height and proportional width, whatever it is for the original image.

Once you start recording any stream via DVR with the feature enabled, it will generate a JPG thumbnail for every recorded segment, its length is defined during the DVR setup. A thumbnail will be a key frame picture at the start of the corresponding segment. Notice that thumbnail generation takes time depending on your hardware so for large resolutions it might take a few seconds. However small resolutions on powerful hardware will allow generating it within a split of a second.

Get thumbnails


Now when DVR is working and pictures are generated continuously, you can get them using the followings URLs.

Latest available thumbnail can be obtained using this type of URL:
http://<server>/<app>/<stream>/dvr_thumbnail.jpg
If you'd like to get specific time spot, add epoch time:
http://<server>/<app>/<stream>/dvr_thumbnail_<utc>.jpg
E.g. http://serverip/live/stream/dvr_thumbnail_1542708934.jpg. In this case Nimble Streamer will return a key frame image at the start of the corresponding segment.

Optimization


If you see that your DVR thread is consuming too much resources, you can add working threads by using thumbnail_transmuxer_threads parameter. Read this article for more details about Nimble configuration. By default, this parameter's vaule is "1".


If you have any questions on this or other features, let us know.

Related documentation


Nimble StreamerLive streaming scenariosDVR feature setDVR setup for Nimble StreamerUsage snapshots

November 30, 2018

Using Amazon CloudFront for SLDP delivery

Live streaming is growing these days and a lot of its use cases require sub-second delay between image capture and its display on user's device.
That includes online chatting, betting and bidding, gaming, security and surveillance - all of them demand real-time picture to make the immediate response.

With the decline of Flash and RTMP as the main way to view live streams, the industry has been looking for new ways to deliver the media close to real-time.

Softvelum has developed SLDP, a last-mile delivery protocol for end-user devices to cover real-time demand. It's key features are:

  • Sub-second delay between origin and player.
  • Multiple codecs support: it can deliver whatever your end-user platform can play, e.g. H.264, VP8, VP9, H.265/HEVC.
  • Adaptive bitrate support for delivering multiple resolutions and qualities.

Nimble Streamer software media server has full support for SLDP and its features. You can read this article to check how Nimble Streamer may take incoming live streams and produce SLDP based on that input.
SLDP playback is supported by SLDP Player. On Android and iOS, it's a native mobile application, while browser payback is covered by HTML5 JavaScript player working in any MSE-enabled browser. All three players can be customized via respective SDKs.

November 22, 2018

Playback session authorization in Nimble Streamer

Nimble Streamer paywall features provide a lot of ways of controlling the end-user connection including hotlink protection and pay-per-view which give advanced capabilities but require to sign the stream playback URL on your web page. Other features like geo-location and IP-range block, User-Agent and Referrer fields block require to be pre-configured via WMSPanel.

To give more flexibility, Nimble Streamer now supports sessions authorization via external handler to decide which of the connecting users may continue receiving the stream. The workflow is simple:

  1. Player client software connects to Nimble Streamer instance via any stream URL.
  2. Nimble Streamer keeps the connection and reaches the external handler, sending all details of this new session.
  3. Handler returns response to define further behavior of Nimble Streamer.
Each response has its code in header and body:
  • Code 200 response means the stream can be played by this client.
  • Code 302 makes Nimble Streamer to redirect the client to a specified URL.
  • Code 403 means that this user session is forbidden.

The supported protocols are as follows.
  • Live streaming: HLS, MPEG-DASH, SLDP, Icecast and MPEG-TS.
  • VOD streaming: HLS, MPEG-DASH and Progressive download.
  • Cache-aware re-streaming: HLS, MPEG-DASH, HDS, SmoothStreaming and Progressive download.
Here's how you can use this.

Enable feature


To enable this payback authentication feature, you need to click Control -> API setup top menu. Then you may either go to Global push API tab to define setting for all sever or to Servers push API tab to define per-server setting.

Opening either of those you can scroll down to Auth handler URL section.



Auth handler URL field sets up the URL for your handler web application.

Protected apps is a list of applications to be protected with the handler. You can add or remove apps using removal icon and "Add protected app" link.

Concurrency defines a number of multiple requests to handler to perform at a time.

Allow by default defines if clients should be allowed in case authorization handler becomes unavailable.

Message for handler


Your handler needs to be a web application available via specified URL.

The following JSON message is sent by Nimble Streamer to this handler in POST request body:
{"host":"<host>", "url":"<stream URL>","ip":"<client IP>","user-agent": <User-Agent header> , "referer": <Referer header>, "session_id": <Nimble session ID> , "session_type": <protocol name>}
You can see the meaning of most fields' from the line above. The session_type field value may be one of the following: "HLS", "DASH", "HDS", "SMOOTH", "PD", "ICECAST", "MPEGTS" and "SLDP".

Response from handler


The handler needs to return a JSON with one of the following bodies.

Allow connection:
{"return_code":200}
This means that current client may start receiving the stream in this session.

Redirection:
{"return_code":302,"redirect_location":"http://127.0.0.1:8081/content/blocked.mp4/playlist.m3u8"}
This response body will make Nimble start streaming another stream instead of the one requested initially, i.e. this is a redirection. This is useful if you'd like to show some stub for un-authorized client or if a requested stream is not yet available.

Forbidden:
{"return_code":403}

This response means this stream is forbidden for this particular client session.



Moving forward we plan adding periodic calls for authorization handler during the streaming process in case your business logic requires more flexible control.
Stay tuned for updates and let us know if you have any questions on this feature set.

Related documentation


Nimble Streamer paywall features, SLDP low latency streaming, Live streaming features, VOD features

November 20, 2018

DVR MP4 thumbnails in Nimble Streamer

Nimble Streamer software media server has it DVR feature set which covers the majority of use cases for streams recording and playback.

DVR setup is described in this article and you're probably already familiar with it. Now, to get snapshots of DVR stream, you may use direct URL described below.

Notice that thumbnails are generated as .mp4 files containing a single keyframe. This allows inserting thumbnail in any modern browser using <video> element.

If you'd like to generate JPG thumbnails, please read this article.

The latest thumbnail can be obtained using the following URL:
http://<server>/<app>/<stream>/dvr_thumbnail.mp4
If you'd like to get specific time spot, add epoch time:
http://<server>/<app>/<stream>/dvr_thumbnail_<utc>.mp4
E.g. http://serverip/live/stream/dvr_thumbnail_1542708934.mp4

This feature is enabled by default and if you'd like to disable it, use this parameter in Nimble Streamer config file:
dvr_thumbnails_enabled = false

MP4 output was chosen over PNG or JPG images due to resources usage. MP4 frame can be extracted and inserted into MP4 container with relatively small amount of CPU and RAM. Still image capture requires frame decoding and encoding into proper format which needs extra resources. Our customers like Nimble Streamer primarily because of its high performance and we'd like to keep it that way.

If you have any questions on this or other features, let us know.

Related documentation


Nimble Streamer, Live streaming scenarios, DVR feature setDVR setup for Nimble Streamer, Usage snapshots

November 7, 2018

White Paper: Tools for tailor-made streaming

We're excited to announce our latest white paper published at Broadband TV News news web site.

It's called Softvelum: Tools for tailor-made streaming and you can download it by filling out the form on its webpage.


Let us know of your thoughts on this article, tell us what else you'd like to read about.

October 28, 2018

Recent failures analysis

Recently WMSPanel web service had 2 major malfunctions which affected our customers. This is the first time we had that kind of strong impact in years.

We'd like to share more information about those issues.

We creates WMSPanel failures status page which has description of recent malfunctions or incidents happened to our infrastructure. We'll keep updating it in case if anything else happens.

We apologize for all inconveniences caused by the described malfunctions. As we described above, we made proper adjustments to our infrastructure to avoid various types of failures.

Unfortunately, nothing is perfect so we know that our hosting infrastructure will give us some hard time going forward. However, we continuously mitigate those possibilities which gives us strong optimism for the future of our services.

September 30, 2018

Softvelum Q3 news

During the third quarter of 2018 our team was working on improving our products.

Before checking the updates, take a look at the State of Streaming Protocols for Q3 2018. Total view time of our server software among all of customers was 21 million hours watched every day.

Nimble Advertizer


HLS ads insertion

Major improvement was made for Nimble Advertizer, the Server-Side Ads Insertion (SSAI) framework for Nimble Streamer. This framework allows dynamically insert personalized ads into live streaming content.
Key features of Advertizer are:
  • Pre-roll ads per each connection
  • Mid-roll ads flexible timing setup
  • Per-stream ads insertion business logic
  • Personalized ads based on your user IDs
Now Advertizer supports HLS live streams output in addition to currently supported RTMP, SLDP and Icecast protocols. It supports both video+audio and audio-only modes. Advertizer may use all input live protocols supported by Nimble Streamer, which are RTMP, RTSP, SRT, UDT, HLS, MPEG2TS, Icecast and SHOUTcast.

The workflow is easy to adopt within any business logic using your own handler app.

You can read full technical spec here.

Advertizer Live Demo

You can see SSAI in action on our Nimble Advertizer Live Demo page. It has RTMP, SLDP. HLS and Icecast live streams with pre-rolls and mid-rolls being inserted for you.

That page also has description of how this demo works so you could try the same approach in your solutions.

Nimble Advertizer Server-side Ads Insertion framework is a premium functionality which requires additional payments. Please check this page to get more details about functionality and pricing.

SLDP


Upcoming 2019 is the last year of Adobe's support for Flash technology which means upcoming decline of RTMP for end-user streaming. This brings the need for real-time low-latency streaming solution which could be used for live delivery and playback.

This year Softvelum introduced SLDP - Softvelum Low Delay Protocol. SLDP is a streaming protocol based on WebSockets. Its basic features include
  • Sub-second delay between origin and player.
  • Codec-agnostic: H.264/AVC, H.265/HEVC, VP8, VP9, AAC, MP3.
  • ABR support: close-to-instant channels switch.
  • HTTP and HTTPS on top of TCP.
  • Buffer offset support.
Clients are currently available for HTML5 web pages, Android and iOS both as free players and premium SDKs.

Server support is available in Nimble Streamer. From setup perspective, it's just another option for your output streams. Read this article for full details on SLDP setup in Nimble.

Softvelum continuously improves SLDP technology by adding new features and updates. Feel free to try it out for your solutions, or just check Nimble Advertizer Live Demo to see SLDP in action with ads insertion.

Mobile solutions


We're updating our mobile streaming solutions on a regular basis, introducing new capabilities and fixes.

Larix free mobile app and premium SDKs for Android and iOS now have HEVC (H.265) encoding support for better compression of outgoing streams.  Also, SRT library in Larix is now version 1.3.1. Those features bring more robustness on unreliable networks and low bandwidth.
iOS Larix also has 60 fps support.

Restream.io has a new article in their help center called Stream From Mobile Using Larix Broadcaster. It's about Larix setup for using Restream.io services.

SLDP Player apps and SDKs had minor improvements and fixes as well.

You can check full description of releases and get SDK subscription any time.


We'll keep you updated on our latest features and improvements.
Stay tuned for more updates and follow us at Facebook and Twitter to get latest news and updates of our products and services.