Are you looking for a service that can provide HLS compatible live and on-demand video output? This article provides details around using IBM Cloud Video for direct HLS video streaming and the associated M3U8 manifest file format. Using this approach bypasses other methods from IBM Cloud Video such as our web based player, API based player offerings and our player SDKs.
To help guide content owners, this article discusses what is HLS and M3U8. It then outlines the benefits and uses cases for this approach, such as using third party players. It then covers what features are and are not available in this approach, letting content owners make an informed decision on their delivery strategy.
- What is HLS?
- M3U8 files
- Third party players
- Creating a Roku channel
- Using HLS as a source for other workflows
- Built-in multiple CDN support
- Provisioning direct HLS video streaming
What is HLS?
HTTP Live Streaming (HLS) is a media streaming protocol. It can be used to deliver video and/or audio media over the Internet. In terms of video, it functions by taking MPEG-TS content and creating short video chunks, which are typically 10 seconds or less. As the name implies, these chunks are then delivered through HTTP. This makes the technology compatible across a wide range of devices and more easily supported for firewalls. Device support is where HLS really carved out its early reputation, though. When Apple did not support Flash on their iPhones, resulting in the now famous open letter from Steve Jobs, a large struggle ensued to be able to create video content that could reach virtually any device. HLS, which perhaps unsurprisingly was developed by Apple, became this solution.
One of the strengths of HLS is not just compatibility, though. It is also able to adapt to the connection speed of the viewer. This is achieved through the creation of multiple bitrate and resolution combinations. These combinations can then be dynamically served to the viewer based on their connection speed. Switching between quality levels is done using the segmented video chunks as branch points. As a result, the stream can adapt to changes in the connection speed. For example, if a mobile viewer watching a HD (high definition) stream leaves the range of a WiFi network, the quality can adjust. That way the viewer can keep watching at a lower quality rather than be stuck with endless buffering. This process is fleshed out in more detail in this Adaptive Streaming eBook.
HLS is already utilized by IBM Cloud Video in our current player solutions, including our web player and player SDK. This is what enables our video delivery to iOS, Android, Apple TV and the Safari browser on desktop. This direct method, though, allows content owners to do direct HLS video streaming that can be linked to an associated M3U8 manifest file format.
If you have seen M3U8s mentioned before and were curious how it relates to HLS, it’s the file extension of this technology. An M3U8 is a UTF-8 encoded media playlist file. They are actually plain text files that have metadata to describe the content along with location information for each segment file. M3U8 files can reference local content stored on your computer, but for the purpose of HLS they will reference online files.
M3U8 manifest files are an important part of using your HLS video stream in additional ways. This goes beyond desktop software, such as a VLC player, to include online, third party players and the ability to support streaming media devices like Roku.
Third party players
Through using direct HLS, the door can be opened to utilize a player that is not IBM Cloud Video or Ustream based. While the provided solution by IBM Cloud Video has a lot of features, from real-time tracking to support for Flash fallback, there can be scenarios where a third party player is preferred. This can include sunk costs from prior development, general preferences for certain players and or have a heavy focus on monetization features.
Examples of prior development can including already having configured a player with a custom look and feel. This can be a custom skin or a full design, and in some cases it’s desirable to keep using this and just change the backend media source. You might also have already have specific analytics in place on a current solution, with a desire to keep data all in one place. To achieve this, you might use the same setup just once again with a different backend source.
On the monetization side, using a third party player can open the door to utilizing a variety of advertising solutions, such as pre-roll, mid-roll and more, to begin generating revenue from your video content. Content owners can also take a more direct approach, adding paywalls to their content to power pay-per-view (PPV) revenue, or developing complex subscription services that can be used to grant access to a variety of content. In addition, content owners might already be using a monetization solution and have running, active subscriptions. In this scenario, it would be far easier to keep using the same registration and payment gates in place but just change the backend media source.
In that respect, below are some web players which support playback using M3U8s.
The Video.js player is an open source library for working with video on the Internet. They tout their solution as an HTML video player and support HLS. In fact, they have a demo of their player here that lets users insert an M3U8 link to test it out.
- JW Player
Having been around since 2005, many companies might have built solutions using JW Player. It includes customizations like plugins and skins as well. In addition, they support using HLS streaming through providing the URL of the M3U8.
This solution can be downloaded, uploaded and then used as a web player solution. It includes plugins as well to customize it. Support for HLS streaming, and the use of M3U8s, was added for the player back in 2014.
Touted as a simple, accessible HTML5 media player, Plyr offers a solution for developers to incorporate in their websites. In addition, it has support for M3U8s.
Creating a Roku channel
M3U8s can be a solution for those looking to develop an OTT (over the top) experience for devices like Roku. Below are two approaches to go about creating your channel from your M3U8, although there are additional services that can manage this.
Roku SDK Documentation
Roku provides software development kit documentation for developers to create their own channels for the Roku player. Written in the BrightScript scripting language, the documentation contains information about BrightScript and its component interfaces. For developers using the SDKs, a couple of formats are supported, one of which is M3U8.
Instant TV Channel for Roku
This offers a service to create private Roku channels without using the SDKs or APIs. It has both free and paid options as well. Created in 2012, the design of the dashboard has remained static although the service is continually updated. To use “Instant TV Channel for Roku”, there is a mode called “Direct Publisher – Publish Using a URL Feed”. In this mode, under the Content option, a user can input a “Stream URL”. This will be the address to the M3U8.
Using HLS as a source for other workflows
Another use case for direct HLS is open ended, as the M3U8 can function as a source as part of your overall workflow. This can function through a traditional satellite feed approach to being used as part of an IPTV (Internet Protocol television) solution, or even a hybrid solution that combines conventional satellite TV distribution with IPTV networks.
In addition, you’re open to utilizing this source in a variety of ways simultaneously. For example, you might take the M3U8 content and share that on your website from a VideoJS player, over your Roku channel and also outputting it for use as IPTV content.
Another example can be some on-premise digital signage systems can play back an HLS feed. So you could your generated HLS url as a source to feed displays in and office or at a conference or entertainment venue.
Built-in multiple CDN support
Direct HLS, like other video distribution methods with IBM Cloud Video, has built-in access to multiple CDNs (Content Delivery Networks) that can be utilized to reach your viewers. As a result, global reach of your content is improved, as CDNs specialize in geographic areas. Scalability is also enhanced, as you have access to a larger infrastructure to deliver your content.
Please note, though, that direct HLS doesn’t have access to the complete SD-CDN (Software Defined Content Delivery Network) technology. So while it does have support for multiple CDNs, it does not automatically and seamlessly switch between edges across CDNs while a viewer is watching. The reason is that the QoS (Quality of Service) components that control this are part of the player. This is documented in our Scaling Video Delivery to Reach Massive Audiences white paper.
In addition, IBM Cloud Video’s ECDN (Enterprise Content Delivery Network) technology is also not supported by the direct HLS method.
Provisioning direct HLS video streaming
Currently, direct HLS video streaming is available for enterprise level IBM Cloud Video users only. In order to get access, please reach out directly to your Customer Success Manager.
Please note, direct HLS video streaming is not an exclusive solution. In fact, content owners will likely continue to use the provided IBM Cloud Video player and SDK solutions. In many scenarios, the direct HLS method will supplement built-in methods from IBM Cloud Video. For example, a content owner might embed the IBM Cloud Video player on their site but build a Roku channel using an M3U8 for the same live stream.
Direct HLS video streaming increases the flexibility of the IBM Cloud Video services. While many content owners will elect to use the default player, which is better enhanced for scalability and analytics, others will take advantage of using M3U8s for previously invested developments or branching out to reach Roku devices or broadcast content through an IPTV network.
Interested in direct HLS video streaming and don’t have an account, or not sure if your current account is at the right level? Contact us to learn more.