mirror of
https://github.com/shaka-project/shaka-packager.git
synced 2026-04-02 11:20:08 +00:00
3aafed82b6ce8d47b028acafc547dcdf5030a749
This change introduces support for signaling CEA-608 and CEA-708 closed captions in HLS. New command-line flags, `--closed_captions`, have been added to allow users to specify the caption tracks. The format for these flags is a comma-separated list of semicolon-separated key-value pairs, e.g., `--closed_captions "channel=CC1,name=French,lang=fra,default=no,autoselect=yes;channel=SERVICE1,name=English,lang=eng,default=yes,autoselect=yes"`. For HLS, this change adds `#EXT-X-MEDIA` tags for each caption track with a common `GROUP-ID` of "cc". The `EXT-X-STREAM-INF` tag for video streams has been updated to reference this `GROUP-ID`. Dash will be supported in another PR. Fixes #986
Shaka Packager is a tool and a media packaging SDK for DASH and HLS packaging and encryption. It can prepare and package media content for online streaming.
Shaka Packager supports:
-
Both Video-On-Demand and Live.
-
Streaming formats:
-
Key systems:
-
Encryption standards:
-
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 - - - IAMF 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.
- 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. Instructions are available here.
- Get prebuilt binaries from release.
- Built from source, see Build Instructions for details.
Useful Links
- Announcement List (join for infrequent announcements and surveys)
- Subscribe to releases by following instructions from this blog
- Documentation
- Tutorials
- Several open source players:
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.
Description
A media packaging and development framework for VOD and Live DASH and HLS applications, supporting Common Encryption for Widevine and other DRM Systems.
Languages
C++
96.1%
Python
2.5%
CMake
1.1%
C
0.1%
