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:
Shaka Player supports:
Please note that Shaka Player cannot support iOS or IE11 on Windows 7 due to a lack of MediaSource Extensions on those platforms.
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.
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
dist/shaka-player.compiled.js. The output can be included directly in a
To build the documentation, you will also need nodejs. Just run
./build/docs.py and look for the output in
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
If you installed Shaka Player via npm, the deps file has already been generated for you.
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
./build/test.py --browsers Chrome,Firefox --reporters coverage
You can skip slow-running integration tests with
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.
For general help and before filing any bugs, please read the FAQ.