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 0f8749a211 CI overhaul based on GitHub Actions
This replaces Travis (for Linux & Mac) and Appveyor (for Windows) with
GitHub Actions.  In addition to using GitHub Actions to test PRs, this
also expands the automation of releases so that the only manual steps
are:

 1. Create a new CHANGELOG.md entry
 2. Create a release tag

Workflows have been create for building and testing PRs and releases,
for publishing releases to GitHub, NPM, and Docker Hub, and for
updating documentation on GitHub Pages.

When a new PR is created, GitHub Actions will:
 - Build and test on all combinations of OS, release type, and library
   type

Appveyor's workflow took ~2 hours, whereas the new GitHub Actions
workflow takes ~30 minutes.

When a new release tag is created, GitHub Actions will:
 - Create a draft release on GitHub
 - Extract release notes from CHANGELOG.md & attach them to the
   draft release
 - Build and test on all combinations of OS, release type, and library
   type, aborting if any build or test fails
 - Attach release artifacts to the draft release, aborting if any
   one artifact can't be prepared
 - Fully publish the draft release on GitHub
 - Publish the same release to NPM (triggered by GitHub release)
 - Publish the same release to Docker Hub (triggered by GitHub release)
 - Update the docs on GitHub pages

Closes #336 (GitHub Actions workflow to replace Travis and Appveyor)

b/190743862 (internal; tracking replacement of Travis)

Change-Id: Ic53eef60a8587c5d1487769a0cefaa16eb9b46e7
2021-06-16 11:52:02 -07:00
.github CI overhaul based on GitHub Actions 2021-06-16 11:52:02 -07:00
docs CI overhaul based on GitHub Actions 2021-06-16 11:52:02 -07:00
kokoro Fix build failures in MacOS 10.12.6 with XCode 9.0 2018-01-05 12:21:41 -08:00
npm CI overhaul based on GitHub Actions 2021-06-16 11:52:02 -07:00
packager CI overhaul based on GitHub Actions 2021-06-16 11:52:02 -07: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 HTTP PUT output support (#737) 2021-02-02 10:51:50 -08:00
.gitmodules Add an empty .gitmodules to avoid gclient warning 2014-03-28 22:13:33 +00:00
AUTHORS Add segment_list support for DASH on-demand profile 2021-05-25 12:08:58 -07:00
CHANGELOG.md Update CHANGELOG for v2.5.0 2021-06-09 17:08:43 -07:00
CONTRIBUTING.md Add AUTHORS, CONTRIBUTORS, CONTRIBUTING.md, and README.md 2014-04-19 00:05:38 +00:00
CONTRIBUTORS Add segment_list support for DASH on-demand profile 2021-05-25 12:08:58 -07:00
DEPS Skip clang updates on Windows 2021-06-14 12:17:28 -07:00
Dockerfile CI overhaul based on GitHub Actions 2021-06-16 11:52:02 -07:00
LICENSE Update README and LICENSE 2016-09-07 19:22:41 +00:00
README.md Update documentation for text support. 2021-02-17 18:39:07 +00:00
chromium-LICENSE Add Chromium license 2014-04-10 19:58:08 +00:00
gyp_packager.py Don't use Chromium sysroot. 2020-09-01 17:59:52 +00:00

README.md

Shaka Packager

Build Status Build status

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
    Dolby AC4 I / O - - - -
    DTS I / O - - - -
    FLAC I / O - - - -
    Opus I / O³ I / O - - -
    Vorbis - 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/google/shaka-packager/blob/master/CONTRIBUTING.md for details.