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 962baf0286 Fix reading WebVTT from a pipe
Opening a named pipe can block until both ends are open, and we cannot
control when the other end will be open.  Ideally, we would always
open files in a thread so that Packager can be used with piped inputs
from naive applications without a potential deadlock.

This change will defer opening WebVTT files until the parser Run()
method is called from a thread.  This way, WebVTT files being sent in
from a pipe will never be able to block the main thread.

Previously, files were opened on the main thread before calling the
parser constructor, passing the open file to the constructor as an
argument.  I also tried doing it in the parser's InitializeInternal()
method, but that is also called from the main thread.

Change-Id: I54cc68ed9d48a8dc697829119be84d4065b1ae1c
2020-03-19 20:25:07 -07:00
.github Update github issue template with mailing list for test files 2017-06-02 18:16:41 +00:00
docs Adding --allow_codec_switching (#726) 2020-03-17 19:33:44 -07:00
kokoro Fix build failures in MacOS 10.12.6 with XCode 9.0 2018-01-05 12:21:41 -08:00
packager Fix reading WebVTT from a pipe 2020-03-19 20:25:07 -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 Add gitignores for msvs files 2016-12-19 21:26:26 +00:00
.gitmodules Add an empty .gitmodules to avoid gclient warning 2014-03-28 22:13:33 +00:00
.travis.yml Fix appveyor builds 2019-12-31 20:41:54 -08:00
AUTHORS Support dash_only and hls_only parameters (#721) 2020-03-06 10:19:47 -08:00
CHANGELOG.md Fix appveyor builds 2019-12-31 20:41:54 -08:00
CONTRIBUTING.md Add AUTHORS, CONTRIBUTORS, CONTRIBUTING.md, and README.md 2014-04-19 00:05:38 +00:00
CONTRIBUTORS Support dash_only and hls_only parameters (#721) 2020-03-06 10:19:47 -08:00
DEPS Roll boringssl/src fc9c67599..76918d016 2019-10-23 04:32:33 +00:00
Dockerfile Add pssh tool in docker image 2019-02-19 23:06:05 +00:00
LICENSE Update README and LICENSE 2016-09-07 19:22:41 +00:00
README.md Update README.md on AC-3 / E-AC-3 in TS support 2019-02-27 23:32:54 +00:00
appveyor.yml Fix appveyor builds 2019-12-31 20:41:54 -08:00
chromium-LICENSE Add Chromium license 2014-04-10 19:58:08 +00:00
gyp_packager.py Disable bundled_binutils and bundled_gold on Linux 2018-08-24 21:14:19 +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
    Dolby AC3 I / O - I / O - O
    Dolby EAC3 I / O - O - O
    DTS I / O - - - -
    FLAC I / O - - - -
    Opus I / O³ I / O - - -
    Vorbis - I / O - - -

    NOTES:

  • Subtitles

    • WebVTT in both text form and embedded in MP4
    • TTML in text form (DASH only)
  • 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.