A media packaging and development framework for VOD and Live DASH and HLS applications, supporting Common Encryption for Widevine and other DRM Systems.
Go to file
Joey Parrish 774cd3f1bc
ci: Read build matrix JSON explicitly (#1461)
Because we used require() to read build-matrix.json, the file could be
replaced with build-matrix.json.js, allowing code injection into our CI
pipelines. This fixes this vulnerability by reading the JSON text with
the fs module, then explicitly parsing it, rather than relying on
require().

This also changes the location of the file, to match its location in
other projects.

Note that this workflow is not currently giving any elevated permissions
to users, so it is not currently possible to damage the repo through a
PR. But this might have been possible in the past, due to
organization-wide defaults for token permissions (recently fixed). No
evidence has been found of past exploit.

See also https://github.com/shaka-project/shaka-streamer/issues/216 and
https://github.com/shaka-project/static-ffmpeg-binaries/issues/57
2024-12-16 15:02:21 -08:00
.github ci: Read build matrix JSON explicitly (#1461) 2024-12-16 15:02:21 -08:00
docs feat: EXT-X-SESSION-KEY support (#36) (#1427) 2024-10-25 09:55:27 -07:00
include feat: EXT-X-SESSION-KEY support (#36) (#1427) 2024-10-25 09:55:27 -07:00
link-test build: turn on integration tests in ctest by default (#1381) 2024-04-19 07:56:49 -07:00
npm fix: Fix NPM binary selection on ARM Macs (#1376) 2024-03-20 20:22:29 -07:00
packager fix: Add "iw" variant of Hebrew language code (#1458) 2024-12-12 11:22:06 -08:00
.clang-format Use Chromium style for clang-format 2014-07-02 22:49:46 +00:00
.dockerignore Reduce Docker image size 2018-12-20 13:31:03 -08:00
.gitignore feat!: Rewrite build system and third-party dependencies (#1310) 2023-12-01 09:32:19 -08:00
.gitmodules feat: Portable, fully-static release executables on Linux (#1351) 2024-02-27 10:47:04 -08:00
.release-please-config.json ci: Update actions (#1360) 2024-03-05 09:28:51 -08:00
.release-please-manifest.json chore(main): release 3.4.0 (#1450) 2024-11-11 11:05:51 -08:00
AUTHORS fix: Add Missing Dash Roles to RoleFromString function (#1418) (#1419) 2024-08-28 18:59:57 -07:00
CHANGELOG.md chore(main): release 3.4.0 (#1450) 2024-11-11 11:05:51 -08:00
CMakeLists.txt build: turn on integration tests in ctest by default (#1381) 2024-04-19 07:56:49 -07:00
CONTRIBUTING.md Add AUTHORS, CONTRIBUTORS, CONTRIBUTING.md, and README.md 2014-04-19 00:05:38 +00:00
CONTRIBUTORS feat: Add IAMF support (#1415) (#1416) 2024-10-25 09:56:28 -07:00
Dockerfile chore: upgrade to alpine 3.19 (#1327) 2024-02-10 09:25:37 -08:00
LICENSE feat!: Rewrite build system and third-party dependencies (#1310) 2023-12-01 09:32:19 -08:00
README.md feat: Add IAMF support (#1415) (#1416) 2024-10-25 09:56:28 -07:00
build-matrix.json ci: Read build matrix JSON explicitly (#1461) 2024-12-16 15:02:21 -08:00
chromium-LICENSE feat!: Rewrite build system and third-party dependencies (#1310) 2023-12-01 09:32:19 -08:00

README.md

Shaka Packager

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:

  • 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.

Useful Links

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.