Home - xbmc/inputstream.adaptive GitHub Wiki
inputstream.adaptive is a binary Kodi add-on wich acts as a demuxer for segmented, multi-bitrate internet streams.
How to start?
- Integration page to learn how to play a video stream
- Integration DRM page to learn how to configure a DRM protected video stream
The most common manifest formats (DASH, HLS, SmoothStreaming) are supported for both VOD and Live contents, but due to the wide variety of manifest features some manifests may not work or cause playback problems, see Add‐on WIP status page for some more details.
The following diagram shows a currently supported compatibility matrix:
DRM / Encryption type | Operative System supported | Manifest format supported |
---|---|---|
Google Widevine "cenc" | All (android from 4.4) **** | DASH, HLS |
Google Widevine "cbcs" * | All (android from 7.1) **** | DASH, HLS |
W3C Clear Key "cenc" ** | All | DASH, HLS |
W3C Clear Key "cbcs" *** | All | DASH, HLS |
Microsoft PlayReady "cenc" | Android only | DASH, HLS ***, SmoothStreaming |
Huawei WisePlay "cenc" | Android only | DASH |
* from v20.2.0 / Kodi 20
** from v.21.5.0 / Kodi 21
*** from Kodi 22
**** webOS support from Kodi 22 (only L3, no secure decoder)
Common issues / limitations:
- HLS manifests with audio stream only (e.g. radio stations), is supported starting from Kodi 21.
- HLS "clear key" encryption supported: AES-128 only.
- Kodi core limits the number of streams (tracks) to a maximum of 256 as the total sum of video/audio/subtitles streams. Exceeding this number each streams will be excluded from playback (without the user's knowledge). This is a limit currently implied by Kodi VideoPlayer. Usually this could be a problem for streaming services that provide many languages, many codecs and resolutions, etc. The only workaround is to implement a proxy to customize the manifests to remove streams that are considered "unnecessary" for the user, which is a very cumbersome and complicated task. A real solution should be provided by Kodi core.
- Audio streams that require Widevine CDM (non-android) with Secure path decoder cannot be played, because there is no Secure path decoder implementation for audio media. From Kodi v22 you can see in the log the streams that are disabled due to this feature lack. This is an implementation that should be implemented on both, Kodi core and ISA.
- Linux distributions that use DRM PRIME renderer can produce a black screen. This happens on videos that use DRM with secure decoder. This problem can be identified on kodi log by errors as
error <general>: CBaseRenderer::GetShaderFormat - unsupported format 178
orError: EGL_BAD_ALLOC
, since Kodi have a partial support to DRM PRIME, there are no solutions. See also https://github.com/xbmc/xbmc/issues/27066.
In the InputStream section of the Kodi forum, you can ask for help and find solutions to problems that have already been solved: