112 lines
5.5 KiB
Markdown
112 lines
5.5 KiB
Markdown
[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. )
|
|
[comment]: # (See https://github.com/google/shaka-packager/issues/408 for the )
|
|
[comment]: # (full background. )
|
|
|
|
![Shaka Packager](https://raw.githubusercontent.com/google/shaka-packager/master/docs/shaka-packager.png)
|
|
|
|
[![Build Status](https://travis-ci.org/google/shaka-packager.svg?branch=master)](https://travis-ci.org/google/shaka-packager)
|
|
[![Build status](https://ci.appveyor.com/api/projects/status/3t8iu603rp25sa74?svg=true)](https://ci.appveyor.com/project/shaka/shaka-packager)
|
|
|
|
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/)
|
|
- [PlayReady](https://www.microsoft.com/playready/)¹
|
|
- [FairPlay](https://developer.apple.com/streaming/fps/)¹
|
|
- [Marlin](https://www.intertrust.com/marlin-drm/)¹
|
|
- 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
|
|
|
|
| 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 | - | - | - |
|
|
| AV1 | I / O | I / O | - | - | - |
|
|
| AAC | I / O | - | I / O | I | O |
|
|
| MP3 | O | - | I / O | - | O |
|
|
| Dolby AC3 | I / O | - | I / O | - | O |
|
|
| Dolby EAC3 | I / O | - | O | - | O |
|
|
| Dolby AC4 | I / O | - | - | - | - |
|
|
| 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.
|
|
- Subtitles
|
|
|
|
| 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][].
|
|
|
|
[#272]: https://github.com/google/shaka-packager/issues/272
|
|
[#405]: https://github.com/google/shaka-packager/issues/405
|
|
[#584]: https://github.com/google/shaka-packager/issues/584
|
|
|
|
- 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).
|
|
Instructions are available
|
|
[here](https://github.com/google/shaka-packager/blob/master/docs/source/docker_instructions.md).
|
|
- Get prebuilt binaries from
|
|
[release](https://github.com/google/shaka-packager/releases).
|
|
- Built from source, see
|
|
[Build Instructions](https://github.com/google/shaka-packager/blob/master/docs/source/build_instructions.md)
|
|
for details.
|
|
|
|
# Useful Links
|
|
|
|
- [Announcement List](https://groups.google.com/forum/#!forum/shaka-packager-users)
|
|
(join for release announcements and surveys)
|
|
- [Documentation](https://google.github.io/shaka-packager/html/)
|
|
- [Tutorials](https://google.github.io/shaka-packager/html/tutorials/tutorials.html)
|
|
- Several open source players:
|
|
- [DASH and HLS on Web: Shaka Player](https://github.com/google/shaka-player)
|
|
- [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)
|
|
|
|
# Contributing
|
|
|
|
If you have improvements or fixes, we would love to have your contributions.
|
|
See https://github.com/google/shaka-packager/blob/master/CONTRIBUTING.md for
|
|
details.
|