Giter Site home page Giter Site logo

inputstream.mpd's Introduction

inputstream.mpd

This is a dash mpd file addon for kodi's new InputStream Interface.

  • this addon is part of the official kodi repository and part of each kodi installation
  • configure the addon by adding URL prefixes wich are allowed to be played by this addon
  • Open a .mpd file on your local filesystem
  • or create a .strm file / or addon with passes an url with .mpd extension and open the strm file in kodi
  • or write an addon wich passes .mpd files to kodi
Examples:

1.) mpd dash example with one video and one audio stream

2.) mpd dash example with one video and multiple audio streams

Decrypting:

Decrypting is not implemented. But it is prepared!
Decrypting takes place in separate decrypter shared libraries, wich are identified by the inputstream.mpd.licensetype listitem property.
Only one shared decrypter library can be active during playing decrypted media. Building decrypter libraries do not require kodi sources.
Simply check out the sources of this addon and you are able to build decrypters including full access to existing decrypters implemented in bento4.

TODO's:
  • Adaptive bitrate switching is prepared but currently not yet activated
    Measuring the bandwidth needs some intelligence to switch not for any small network variation
  • Automatic / fixed video stream selection depending on max. visible display rect (some work has to be done at the inputstream interface). Currently videos > 720p will not be selected if videos <= 720p exist.
  • Currently always a full segment is read from source into memory before it is processed. This is not optimal for the cache state - should read in chunks.
  • DASH implementation of periods (currently only the first period is considered)
  • There will be a lot of dash mpd implementations with unsupported xml syntax - must be extended.
Notes:
  • On startup of a new video the average bandwidth of the previous played stream is used to choose the representation to start with. As long bandwith measurement is not fully implemented this value is fixed 4MBit/s and will not be changed. This value can be found and modified in settings.xml, but you can also override this value using Min/Max bandwidth in the settings dialog for this addon.
  • The URL entries in the settings dialog support regular expressions, please note that at least 7 chars must match the regexp to be valid. Example: http://.*.videodownload.xy supports all subdomains of videodownload.xy
  • This addon is single threaded. The memory consumption is the sum of a single segment from each stream currently playing (will be reduced, see TODO's) Refering to known streams it is < 10MB for 720p videos.
Credits:

@fernetmenta Best support I ever got regarding streams / codecs and kodi internals.
@notspiff Thanks for your ideas / tipps regarding kodi file system
bento4 library For me the best library choice for mp4 streams. Well written and extensible!

#####Travis CI build state: alt tag

inputstream.mpd's People

Contributors

akva2 avatar fernetmenta avatar fritsch avatar liberty-developer avatar peak3d avatar

Stargazers

 avatar

Watchers

 avatar  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.