Robert Reinhardt, internationally regarded as an expert on multimedia application development and online video, particularly in live streaming, published his review of nanocosmos’ current and forthcoming services: “As we’re now a month into 2021, the need for virtual events and presentations continues with the pandemic. More and more, my role on projects is finding the right tech stack or 3rd party provider to fulfill the business requirements of an online video product. If you need ultra low latency video streaming in your next project, consider nanocosmos worthy of your attention and budget”.
Published on February 2, 2021
Ultra Low Latency in 2021 with nanocosmos
Near the end of 2020, I was approached by nanocosmos to review their current and forthcoming services around ultra low latency streaming. While I’ve looked at their offerings in the past, the opportunity to review their new beta Bintu dashboard was welcomed. Within 10 minutes of logging into their new system, I was able to create a new stream, set up an RTMP encoder on my end, and create a test page on my web server with the auto-generated player code. The latency was impressive, at less than one and a half seconds (1.408 seconds, on the first test). Considering nanoCosmos offers live streaming at scale and built this technology prior to recent WebRTC adoptions and LL-HLS deployment strategies, I was impressed. Here’s a breakdown of what’s under that particular hood.
H5Live Player
The ultra low latency delivered by nanoCosmos is powered by a three tiered delivery stack built for H5Live Player:
- Secure WebSockets (wss://): The heart of their ultra low latency solution delivers audio and video via WebSockets, which is a bi-directional binary protocol available in web browsers. As the name applies, an open socket is maintained between the web browser client and the nanoCosmos cloud service.
- HLS: For operating systems where WebSockets might not be available for audio/video decoding, nanoCosmos cloud also creates a custom HLS manifest. This variant is also ultra low latency around 2 seconds in my tests.
- Progressive download: For any non-JavaScript enabled environments such as VLC Player, there’s yet a third fallback, progressive download, for web browsers without the HTML5 MediaSource extension or native HLS support.
Depending on your stream setup in nanocosmos’ Bintu dashboard, you may have one or more transcodes assigned to a particular ingest, discussed in the following section. Each transcode rendition is specified in the JavaScript configuration for the H5Live Player. I was anxious to test the responsiveness of the “adaptability” of their ABR implementation. Over WebSockets (which is the optimal ultra low latency approach in H5Live Player), I utilized Apple’s Network Link Conditioner system preference pane to throttle the download speed during playback in a web browser. Extreme changes in bandwidth took a few seconds to cycle through various bitrate renditions until stable playback was achieved.
For live stream producers that need authenticated access for viewing and playback, nanocosmos offers secure token access. A different account needs to be created by nanocosmos where all streams are controlled with secure token access. You can integrate the secure token URL creation process with your own engineering efforts, using the REST API provided by nanocosmos.
There’s room for improvement for H5Live Player in two specific areas: skinning and custom controls. While it is possible to skin the H5Live Player to suit your own branding requirements, there’s no documentation provided on this front. The control bar for the player is also lacking a cast control, to enable playback on Chromecast or Airplay enabled TVs. As of this writing, nanocosmos is actively working on making custom skins more easily accomplished.
Ingest workflows
As I mentioned earlier, I was able to build a working live stream in short order due to the elegance of nanocosmos’ Bintu dashboard. The Create New Stream button is available through the interface, and enables you to define the following:
- RTMP or WebCaster ingest stream: You can specify which type of broadcaster you will be using for deployment on the nanoStream Cloud network.
- Tags: You can create custom labels for each new stream to more easily identify your ingest streams in your list. Otherwise, you’ll only have your stream ID as a unique ID. Tags can be added or removed at any point in the dashboard after stream creation.
- Transcoding profiles: You can define up to three transcoding renditions for the new ingest stream. The dashboard allows you to choose from presets based on resolution, bitrate, and frame rate. Make sure the preset(s) you choose match the ingest stream’s frame rate. By default, transcoding profiles were set to 25 fps, common for PAL based workflows in Europe.
My first tests with live stream encoders used OBS and Videon Edgecaster 4K hardware. I was able to push 1080p 30fps streams directly out of OBS via RTMP without issue to nanoStream Cloud. Likewise, the RTMP ingest worked as expected from the Edgecaster 4K hardware. I also tested Telestream Wirecast to push an RTMP ingest into nanoStream Cloud, but I experienced an issue with H5Live playback: out of sequence B-frames. Apparently, Wirecast has a known issue with B-frame creation in RTMP streams. Once I disabled b-frame generation in Wirecast, everything worked as expected with playback.
If you choose WebCaster as the primary ingest stream type, the Bintu dashboard automatically provides a browser-based publisher that uses WebRTC to push the live stream into nanoStream Cloud. While the WebCaster tech uses WebRTC, playback is still accomplished with nanocosmos’ specific WebSockets implementation as discussed in the previous section. Latency was nearly the same as an RTMP push from Wirecast, around 1.5 seconds. I was impressed with the ease of use of the WebCaster in the Bintu dashboard—I could set up capture source, resolution, and bitrates for audio and video channels.
The quality of live transcodes created by nanoStream Cloud was excellent as well, but the default H5Live Player interface doesn’t allow you directly select the transcode renditions; I had to refer to each bitrate’s playback URL and test each one independently for review.
Pricing Considerations
You can go about adding ultra low latency video streaming to your own products and services in more than one way, usually boiling down to building your own tech stack from scratch or using another service that’s already built to do the task. Not including engineering costs, cloud-based hosting and bandwidth transfer costs of a single streaming server will start at USD$400 and go up quickly as you add further edge distribution.
From my conversations with nanocosmos, I’ve learned that the general approach for potential customers is to start with a free trial to assess the fit, and then proceed to the purchase of a starter or medium package. Considering the costs of a “build your own” system, the starter and medium packages, at USD$239 and USD$599 respectively, are very attractive in this COVID era, continuing in 2021. If you have larger capacity requirements, a typical custom enterprise package costs USD$6,000 and includes 50 TB of data transfer, 25 concurrent incoming streams, 5000 concurrent outgoing streams, 24×7 support.
Sneak Peak
One nice surprise during my review of the evaluation of nanocosmos’ services was the invitation to use an early preview version of nanoMeet, a new WebRTC-based meeting platform developed on an optimized version of Jitsi Meet connected to nanoStream Cloud.from the ground up. nanoMeet is entirely browser-based, and I only tested the meeting spaces using desktop browsers such as Safari and Chrome. As expected with the WebRTC architecture, latency was sub one second, and the interface was intuitive, fresh, and easy to use. Like the rest of nanocosmos’ services, nanoMeet can be white labeled and customized with your brand.
At first glance, you might be thinking: does the web need another online meeting tool when there are so many options already available in this crowded space? The interesting twist with nanoMeet, though, is that it integrates with the existing nanoCloud architecture: you can live stream your meeting room to a much larger “view only” audience with latency less than two seconds when integrated with the H5Live player. Most video conferencing options today have significant delays in the live streamed version of the meeting space to larger audiences, with latency as high as 30 seconds.
In conclusion, if you’re in the market for low latency live streaming with your own brand, nanoStream Cloud is a serious contender—their slogan “around the world in about 1 second” holds up. Be sure to include this offering in your due diligence as you review the myriad of options available today.
Company Website: https://videorx.com/
Learn more about interactive live streaming
Design Your Own Enterprise Web Conferencing System By RoBert Reinhardt
During the last year of COVID compliance, companies around the globe have had to move the majority of meetings and events to online spaces. The vast majority of tools available are utility applications that provide core communication protocols….
Read more
interactive livestreaming: how to engage your audience worldwide
What is interactive livestreaming? This article sums up the latest trends and technical requirements …
Read more