Git Product home page Git Product logo

shaka-player's Introduction

Shaka Player

Shaka Player is an open-source JavaScript library for adaptive media. It plays adaptive media formats (such as DASH and HLS) in a browser, without using plugins or Flash. Instead, Shaka Player uses the open web standards MediaSource Extensions and Encrypted Media Extensions.

Our main goal is to make it as easy as possible to stream adaptive bitrate video and audio using modern browser technologies. We try to keep the library light, simple, and free from third-party dependencies. Everything you need to build and deploy is in the sources.

Shaka Player supports any browser that supports the necessary web standards. It is actively tested with:

  • Chrome on Linux, Mac, Windows, Android, and ChromeOS
  • Chromecast
  • Firefox on Linux, Mac, and Windows
  • Microsoft Edge
  • IE 11
  • Safari
  • 2017 Tizen TV
  • Widevine
  • PlayReady

Shaka Player supports:

  • Streaming formats:
  • protected content:
  • media formats:
    • ISO-BMFF / MP4
    • WebM (depends on browser support)
    • MPEG2-TS (depends on browser support)
    • WebVTT
    • TTML
  • Chromecast
  • offline playback:
    • clear content (all browsers)
    • protected content (depends on browser support)

Please note that Shaka Player cannot support iOS or IE11 on Windows 7 due to a lack of MediaSource Extensions on those platforms.

Important Links

Compiled Mode

Shaka Player is meant to be deployed after being compiled. The tools you need to compile the sources and documentation are included in the sources: Closure Compiler, Closure Linter, and JSDoc.

If you are integrating Shaka Player into another Closure-based project, our build process will generate externs for Shaka Player itself.

If you installed Shaka Player via npm, the sources have already been compiled for you and the externs have been generated.

See:

  • dist/shaka-player.compiled.js (compiled bundle)
  • dist/shaka-player.compiled.externs.js (generated externs)

In order to build, you simply need python v2.7 (for the build scripts) and JRE 7+ (for the compiler). Just run ./build/all.py and look for the output in dist/shaka-player.compiled.js. The output can be included directly in a <script> tag or loaded via a number of JavaScript module loaders.

To build the documentation, you will also need nodejs. Just run ./build/docs.py and look for the output in docs/api/.

Uncompiled Mode

Shaka Player can also be run in uncompiled mode. This is very useful for development purposes.

To load the library without compiling, you will need to generate a Closure "deps file" by running ./build/gendeps.py. Then, you'll need to bootstrap your application with three <script> tags:

  <script src="third_party/closure/goog/base.js"></script>
  <script src="dist/deps.js"></script>
  <script src="shaka-player.uncompiled.js"></script>

If you installed Shaka Player via npm, the deps file has already been generated for you.

Testing

You will need a few third-party dependencies to run automated tests. These dependencies are managed through npm and Shaka's package.json. If you cloned Shaka from github, simply run npm install from your git working directory to install these dependencies locally.

Run the tests in your platform's browsers using ./build/test.py. If you are familiar with the karma test runner, you can pass additional arguments to karma from build/test.py. For example:

./build/test.py --browsers Opera

Or:

./build/test.py --browsers Chrome,Firefox --reporters coverage

You can skip slow-running integration tests with --quick.

Contributing

If you have improvements or fixes, we would love to have your contributions. Please read CONTRIBUTING.md for more information on the process we would like contributors to follow.

FAQ

For general help and before filing any bugs, please read the FAQ.

shaka-player's People

Contributors

joeyparrish avatar themodmaker avatar ismena avatar theodab avatar vaage avatar natalieharris avatar spiralman avatar michellezhuogg avatar hochhaus avatar baconz avatar birme avatar cmgrecu avatar leandromoreira avatar beaufortfrancois avatar palmerj3 avatar johan avatar jonoward avatar objelisks avatar yohanncon avatar tdrews avatar bhh1988 avatar tobbee avatar ross-cz avatar irock avatar jozefchutka avatar jkarsrud avatar donato avatar chrisfillmore avatar esteban-dosztal avatar vigneshvg 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.