2018-08-13 19:00:53 +00:00
[comment]: # (While not ideal, absolute URLs are used here as it is the )
[comment]: # (simplest way to make the links work on GitHub and Docker Hub. )
[comment]: # (These links in cloned repositories will point back to the main )
[comment]: # (repository and if it is an issue, we suggest updating the links )
[comment]: # (in the cloned repository. )
2022-03-07 19:56:34 +00:00
[comment]: # (See https://github.com/shaka-project/shaka-packager/issues/408 for the )
2018-08-13 19:00:53 +00:00
[comment]: # (full background. )
2018-06-06 01:11:43 +00:00
2022-03-07 19:56:34 +00:00
![Shaka Packager ](https://raw.githubusercontent.com/shaka-project/shaka-packager/main/docs/shaka-packager.png )
2016-02-18 18:48:46 +00:00
2017-09-06 21:07:49 +00:00
Shaka Packager is a tool and a media packaging SDK for
[DASH ](http://dashif.org/ ) and [HLS ](https://developer.apple.com/streaming/ )
packaging and encryption. It can prepare and package media content for online
streaming.
Shaka Packager supports:
- Both Video-On-Demand and Live.
- Streaming formats:
- [DASH ](http://dashif.org/ )
- [HLS ](https://developer.apple.com/streaming/ )
- Key systems:
- [Widevine ](http://www.widevine.com/ )
2018-05-07 23:08:09 +00:00
- [PlayReady ](https://www.microsoft.com/playready/ )¹
2018-08-07 23:01:43 +00:00
- [FairPlay ](https://developer.apple.com/streaming/fps/ )¹
2018-09-18 00:27:02 +00:00
- [Marlin ](https://www.intertrust.com/marlin-drm/ )¹
2017-09-06 21:07:49 +00:00
- Encryption standards:
- [CENC ](https://en.wikipedia.org/wiki/MPEG_Common_Encryption )
- [SAMPLE-AES ](https://developer.apple.com/library/content/documentation/AudioVideo/Conceptual/HLS_Sample_Encryption/Intro/Intro.html )
- Media Containers and codecs
2017-09-20 03:30:30 +00:00
2018-05-07 23:08:09 +00:00
| Codecs | ISO-BMFF | WebM | MPEG2-TS | WVM | Packed Audio²|
|:-----------------:|:------------:|:------------:|:------------:|:-----------:|:------------:|
| H264 (AVC) | I / O | - | I / O | I | - |
| H265 (HEVC) | I / O | - | I | - | - |
| VP8 | I / O | I / O | - | - | - |
| VP9 | I / O | I / O | - | - | - |
2018-11-20 00:59:03 +00:00
| AV1 | I / O | I / O | - | - | - |
2018-05-07 23:08:09 +00:00
| AAC | I / O | - | I / O | I | O |
2020-06-07 00:18:00 +00:00
| MP3 | O | - | I / O | - | O |
2019-02-19 22:11:58 +00:00
| Dolby AC3 | I / O | - | I / O | - | O |
| Dolby EAC3 | I / O | - | O | - | O |
2021-06-30 06:10:53 +00:00
| MPEG-H Audio | I / O | - | - | - | - |
2020-07-04 21:55:28 +00:00
| Dolby AC4 | I / O | - | - | - | - |
2018-05-07 23:08:09 +00:00
| DTS | I / O | - | - | - | - |
| FLAC | I / O | - | - | - | - |
| Opus | I / O³ | I / O | - | - | - |
| Vorbis | - | I / O | - | - | - |
NOTES:
- I for input and O for output.
- ²: https://tools.ietf.org/html/draft-pantos-http-live-streaming-23#section-3.4
- ³: Opus support in ISO-BMFF is experimental.
2018-02-07 01:12:05 +00:00
- Subtitles
2021-01-21 21:42:10 +00:00
| Format | Input | Output |
|:-------------:|:--------:|:------:|
| Text WebVTT | Y | Y |
| WebVTT in MP4 | [#405][] | Y |
| Text TTML | ⁴ | Y |
| TTML in MP4 | - | Y |
| DVB-SUB | Y | - |
| Teletext | [#272][] | - |
- ⁴: TTML input is only supported with TTML output (pass-through, DASH only),
see also [#584][].
2022-03-07 19:56:34 +00:00
[#272]: https://github.com/shaka-project/shaka-packager/issues/272
[#405]: https://github.com/shaka-project/shaka-packager/issues/405
[#584]: https://github.com/shaka-project/shaka-packager/issues/584
2021-01-21 21:42:10 +00:00
2017-09-06 21:07:49 +00:00
- Platforms
- Linux
- Mac
- Windows
- Cross compiling for ARM is also supported.
< sup > 1: Limited support< / sup >
# Getting Shaka Packager
There are several ways you can get Shaka Packager.
- Using [Docker ](https://www.docker.com/whatisdocker ).
2018-06-06 01:11:43 +00:00
Instructions are available
2022-03-07 19:56:34 +00:00
[here ](https://github.com/shaka-project/shaka-packager/blob/main/docs/source/docker_instructions.md ).
2017-09-06 21:07:49 +00:00
- Get prebuilt binaries from
2022-03-07 19:56:34 +00:00
[release ](https://github.com/shaka-project/shaka-packager/releases ).
2018-06-06 01:11:43 +00:00
- Built from source, see
2022-03-07 19:56:34 +00:00
[Build Instructions ](https://github.com/shaka-project/shaka-packager/blob/main/docs/source/build_instructions.md )
2017-09-06 21:07:49 +00:00
for details.
# Useful Links
2014-04-17 22:51:39 +00:00
2018-03-30 20:34:08 +00:00
- [Announcement List ](https://groups.google.com/forum/#!forum/shaka-packager-users )
2022-06-28 16:58:17 +00:00
(join for infrequent announcements and surveys)
- Subscribe to releases by following
[instructions from this blog ](https://www.jessesquires.com/blog/2020/07/30/github-tip-watching-releases/ )- [Documentation ](https://shaka-project.github.io/shaka-packager/html/ )
2022-03-07 19:56:34 +00:00
- [Tutorials ](https://shaka-project.github.io/shaka-packager/html/tutorials/tutorials.html )
2016-09-01 00:04:39 +00:00
- Several open source players:
2022-03-07 19:56:34 +00:00
- [DASH and HLS on Web: Shaka Player ](https://github.com/shaka-project/shaka-player )
2018-03-30 20:34:08 +00:00
- [DASH on Web: dash.js ](https://github.com/Dash-Industry-Forum/dash.js )
- [HLS on Web: hls.js ](https://github.com/video-dev/hls.js )
- [DASH and HLS on Android: ExoPlayer ](https://github.com/google/ExoPlayer )
2015-03-24 22:16:16 +00:00
2017-09-06 21:07:49 +00:00
# Contributing
2014-04-17 22:51:39 +00:00
2017-09-06 21:07:49 +00:00
If you have improvements or fixes, we would love to have your contributions.
2022-03-07 19:56:34 +00:00
See https://github.com/shaka-project/shaka-packager/blob/main/CONTRIBUTING.md for
2017-09-06 21:07:49 +00:00
details.