Frequently asked questions

Archive filtered by HLS

To remove filter keyword, click on it's name above.


A: HTTP Live Streaming (also known as HLS) is an HTTP-based media streaming communications protocol implemented by Apple Inc. as part of their QuickTime and iOS software. It works by breaking the overall stream into a sequence of small HTTP-based file downloads, each download loading one short chunk of an overall potentially unbounded transport stream.


M30Q: Does the box support HLS (HTTP Live Streaming)?

A: Yes, the box does supports HLS. We prepared an example called "TV Channelswitcher" for this reason. You can find it on the "Smart Solutions" page in the "Market proven" category of the Developer IDE.

Note: In case the streams won't start playing, you might be blocked due to geo-IP check-up.

Filter: ABOX42 Showcases M30

M30Q: Is the Smart STB compatible with iOS streams?

A: Yes, the box is compatible with iOS streams. The format used is called HLS (HTTP Live Streaming) and you can find sample streams in Compliance: Media Player runtime.

Filter: M30 Media Player runtime

M30Q: Is there an example for a full IPTV application including features like teletext, EPG and HbbTV?

A: Yes, in Chapter XX of the Developer IDE you can find an example with the following features:

- Window Manager supporting native windows and web views overlay
- Parser capabilities for transport streams coming by transcoded standard DVB source
- Support of transcoded HLS with Verimatrix DRM mixed with channels based on Smooth Streaming and Playready
- AIT (HbbTV) signaling support by channel configuration mapping (Application Manager and OIPF configuration)
- DVB standard teletext
- HbbTV teletext
- HbbTV Mediathek
- ABOX42 Hybrid EPG Service with extended information including images
- Example of a settings component

There are also screencasts available that will help you understand the code.

Filter: IPTV M30 Media Player runtime tsstack1 class API Web Technology

M30Q: How does the .m3u8 playlist has to look like for HLS streams with multiple audio tracks?

A: There is an example for an .m3u8 playlist on the summary page of Chapter XXII. Please take a closer look at it to get an idea how it is built up.

Filter: ABOX42 Showcases IPTV M30 Web Technology

M30Q: When does the media player runtime switch the quality of the currently playing stream?

A: There are several cases in which the player will switch the bandwidth:

1. Normally, the player calculates the currently available bitrate it receives. After downloading a couple of chunks it comes up with the total download time and data size accordingly. If the calculated bitrate is much lower than the selected bandwidth, it will decide to switch to a lower quality.

2. When the player tries to download a chunk and does not receive any data anymore (meaning that it may not receive the whole chunk or the forecast that downloads the next chunk - this might cause A/V stuttering), the player will stop to download the current chunk and automatically switches to the lower quality.

3. Let's say the current bandwidth is ok, but there is something wrong with the segment/playlist. In this case the player will switch to another quality to avoid a dead lock. For example, the current bandwidth is 5M/bit and there is a playlist for it, but the playlist is unreachable due to an encoder error. The player then tries to load this playlist first and in case it fails it will automatically switch to the lower quality.

Go to My Own Video – Media Player runtime to start your stream on the box and get the bitrate information and other meta data now.

Filter: ABOX42 Showcases IPTV M30 Media Player runtime

M30Q: Which standards are supported by the platform in regards to multiple audio streams?

A: The platform supports multi audio for HLS and transport streams. In transport streams the audio is changed by setting the audio PID via the JS-API. The available pids can be retrieved with getAudioPIDs(). In the JS-API you will find the right calls to set or get the audio PID(s) of your transport stream. We prepared an example for this case which you can run directly on your Smart STB from within the IDE.

For HLS it's slightly different. The .m3u8 playlist provides the info on the audio settings available. It has to be built in a certain way which we explain in Chapter 22 - Part 1. The media player runtime then provides the functionality to switch the audio via the play() call of the JS-API in combination with set/getConfig. In the case of HLS with multi audio, we also offer an IPTV example in the Developer IDE that shows you how the .m3u8 playlist has to look like and beyond provides a fully working IPTV application example.

Filter: ABOX42 Showcases IPTV M30 Media Player runtime

M30Q: Can I start Live TV HLS playback with a custom offset segment?

A: The "setconfig" JS-API call lets you specify different settings for your play out. For example, you can set the offset segment for live TV HLS playback. For demonstration, we prepared a small sample application so you can test this feature of the platform in the JS-API documentation in the Developer IDE.

Filter: JS-API M30

M30Q: How do I start an HLS stream with a specific bitrate?

A: If your use case demands that you need to start your HLS stream with a specific bitrate, there is a property available for the "" call that lets you set the minimum or maximum bandwidth. As usual, we provide an example application for this topic. Please see Chapter XXXV - Testing differnt bitrates for details, download and documentation.

Filter: HTML/CSS JS-API M30 Media Player runtime

M30Q: How can I change the streams and bitrates in the example of chapter 35?

A: In Chapter XXXV - Testing different bitrates we show you how to set and test different bitrates for your HLS playout. In case you want to modify the streams and bitrates in the example application, take a look at Part 2 - How can I change the video URLs and the bitrates?.

Filter: HTML/CSS JS-API M30 Media Player runtime

M30Q: Is it possible to set the DRM type of my stream with the setconfig() call?

A: The setconfig() call provided by the ABOX42 JS-API provides several possibilities to manipulate the playout. For example, you can set the DRM type to enable the streaming of your encrypted content. Take a look at the JS-API documentation in the Developer IDE.

Filter: ABOX42 Showcases JS-API M30 media class API Media Player runtime