Coder Social home page Coder Social logo

blackikeeagle / inputstream.adaptive Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xbmc/inputstream.adaptive

0.0 0.0 0.0 5.23 MB

kodi inputstream addon for several manifest types

License: Other

C++ 97.39% C 1.08% Objective-C 0.16% Pawn 0.04% Objective-C++ 0.28% CMake 1.05%

inputstream.adaptive's Introduction

License: GPL-2.0-or-later Build Status Build and run tests Build Status

InputStream Adaptive add-on for Kodi

This is a Kodi input stream add-on which acts as a demuxer for segmented, multi-bitrate internet streams. The most common streaming protocols such as MPEG-DASH, HLS and Microsoft Smooth Streaming are supported.

The add-on also has support for DRM protected streams, such as Google Widevine, Microsoft PlayReady and others, however some are only available on specific operating systems. To use the Google Widevine DRM on non-Android systems is required the installation of the Widevine CDM module library (not included with this add-on).

To enable InputStream playback via your video add-on, you must first configure the ListItem properties appropriately.

For test purposes, you can create STRM files with URLs and playback parameters to instruct Kodi to use this InputStream add-on.

Please refer to the Wiki pages for detailed instructions on how to integrate, build and test with your add-on.

WIP Features

Bandwidth and resolution:

When using inputstream.adaptive the first time, the selection of stream quality / stream resolution is done with a guess of 4MBit/s. This default value will be updated at the time you watch your first movie by measuring the download speed of the media streams. Always you start a new video, the average bandwidth of the previous media watched will be taken to calculate the initial stream representation from the set of existing qualities. If this leads to problems in your environment, you can override / adjust this value using Min. bandwidth in the inputstream.adaptive settings dialog. Setting Min. bandwidth e.g. to 10.000.000, the media selection will never be done with a bandwidth value below this value. Currently the complete media is played with the selection from this initial step, adaptive stream changes during a running video is still under development. There is a new Max. resolution select field in the inputstream.adaptive settings dialog. Auto will select the best resolution matching to your videoplayer display rect without any limits. If your display resolution is 720p, you will not be able to watch 1080p videos if there are video representations available closer to 720p.

TODO's:

  • Adaptive bitrate switching has been implemented in Kodi as of v20, but will continue to be developed over time.
  • Automatic / fixed video stream selection depending on max. visible display rect (some work has to be done at the inputstream interface).
  • There will be many MPEG-DASH, HSL or Smooth Stream manifest types currently not supported that must be extended.

Notes:

  • This addon uses threads to download segments. The memory consumption is the sum of single segment from each stream currently playing. Refering to known streams it is < 10MB for 720p videos.

Acknowledgements

InputStream Adaptive exists thanks to the help of many

  • Special thanks to the author / creator @peak3d
  • All the contributors
  • Bento4 for the great extensible library for mp4 streams

License

InputStream Adaptive is GPLv2 licensed. You may use, distribute and copy it under the license terms.

inputstream.adaptive's People

Contributors

peak3d avatar glennguy avatar castagnait avatar phunkyfish avatar alwinesch avatar matthuisman avatar gade01 avatar github-actions[bot] avatar mediaminister avatar spyderboy92 avatar wsnipex avatar kszaq avatar rechi avatar dagwieers avatar weblate avatar tmm1 avatar basilgello avatar misterd81 avatar arvvoid avatar lrusak avatar frodo19 avatar gizmocuz avatar iranl avatar sopor avatar afedchin avatar thunderbird2086 avatar vlmaksime avatar roliverosc avatar degerard avatar stefansaraev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.