Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/shaka-project/shaka-packager
A media packaging and development framework for VOD and Live DASH and HLS applications, supporting Common Encryption for Widevine and other DRM Systems.
https://github.com/shaka-project/shaka-packager
Last synced: 30 days ago
JSON representation
A media packaging and development framework for VOD and Live DASH and HLS applications, supporting Common Encryption for Widevine and other DRM Systems.
- Host: GitHub
- URL: https://github.com/shaka-project/shaka-packager
- Owner: shaka-project
- License: other
- Created: 2014-04-21T17:34:50.000Z (over 10 years ago)
- Default Branch: main
- Last Pushed: 2024-04-12T07:53:52.000Z (7 months ago)
- Last Synced: 2024-04-15T22:12:28.105Z (7 months ago)
- Language: C++
- Homepage: https://shaka-project.github.io/shaka-packager/
- Size: 550 MB
- Stars: 1,841
- Watchers: 109
- Forks: 488
- Open Issues: 228
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Authors: AUTHORS
Awesome Lists containing this project
README
[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/shaka-project/shaka-packager/issues/408 for the )
[comment]: # (full background. )![Shaka Packager](https://raw.githubusercontent.com/shaka-project/shaka-packager/main/docs/shaka-packager.png)
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 |
| MPEG-H Audio | I / 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/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- Platforms
- Linux
- Mac
- Windows
- Cross compiling for ARM is also supported.1: Limited support
# 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/shaka-project/shaka-packager/blob/main/docs/source/docker_instructions.md).
- Get prebuilt binaries from
[release](https://github.com/shaka-project/shaka-packager/releases).
- Built from source, see
[Build Instructions](https://github.com/shaka-project/shaka-packager/blob/main/docs/source/build_instructions.md)
for details.# Useful Links
- [Announcement List](https://groups.google.com/forum/#!forum/shaka-packager-users)
(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/)
- [Tutorials](https://shaka-project.github.io/shaka-packager/html/tutorials/tutorials.html)
- Several open source players:
- [DASH and HLS on Web: Shaka Player](https://github.com/shaka-project/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/shaka-project/shaka-packager/blob/main/CONTRIBUTING.md for
details.