Skip to content

Releases: shaka-project/shaka-packager

v3.0.0

04 Mar 17:14
34dcf3b
Compare
Choose a tag to compare

3.0.0 (2024-02-28)

⚠ BREAKING CHANGES

  • Update all dependencies
  • Drop Python 2 support in all scripts
  • Replace glog with absl::log, tweak log output and flags
  • Replace gyp build system with CMake

Features

  • Add input support for EBU Teletext in MPEG-TS (#1344) (71c175d)
  • Add install target to build system (3e71302)
  • Add PlayReady support in HLS. (#1011) (96efc5a)
  • add startwithSAP/subsegmentstartswithSAP for audio tracks (#1346) (d23cce8)
  • Add support for ALAC codec (#1299) (b68ec87)
  • Add support for single file TS for HLS (#934) (4aa4b4b)
  • Add support for the EXT-X-START tag (#973) (76eb2c1)
  • Add xHE-AAC support (#1092) (5d998fc)
  • Allow LIVE UDP WebVTT input (#1349) (89376d3)
  • DASH: Add Label element. (#1175) (b1c5a74)
  • DASH: Add video transfer characteristics. (#1210) (8465f5f)
  • default text zero bias (#1330) (2ba67bc)
  • Drop Python 2 support in all scripts (3e71302)
  • Generate the entire AV1 codec string when the colr atom is present (#1205) (cc9a691), closes #1007
  • HLS / DASH support forced subtitle (#1020) (f73ad0d)
  • Move all third-party deps into git submodules (#1083) (3e71302)
  • order streams in manifest based on command-line order (#1329) (aad2a12)
  • Parse MPEG-TS PMT ES language and maximum bitrate descriptors (#369) (#1311) (c09eb83)
  • Portable, fully-static release executables on Linux (#1351) (9be7c2b)
  • Replace glog with absl::log, tweak log output and flags (3e71302)
  • Replace gyp build system with CMake (3e71302), closes #1047
  • Respect the file mode for HttpFiles (#1081) (3e71302)
  • This patch adds support for DTS:X Profile 2 audio in MP4 files. (#1303) (07f780d)
  • Update all dependencies (3e71302)
  • Write colr atom to muxed mp4 (#1261) (f264bef), closes #1202

Bug Fixes

Read more

v2.6.1

14 Oct 20:30
Compare
Choose a tag to compare

Fixed

  • Fix crash in static-linked linux builds (#996)
  • Update outdated Dockerfiles

v2.6.0

07 Sep 22:15
Compare
Choose a tag to compare

Added

  • Low latency DASH support (#979)
  • Added MPEG-H support (mha1, mhm1) (#930, #952)

Fixed

  • Workaround warning spam using http_file (#948)
  • Fixed various python2/3 issues in the build
  • Fixed builds with CC=clang CXX=clang++

Changed

  • Added arm64 to the build matrix
  • Make release binary names more consistent
  • Produce static release executables on Linux (#978, #965)
  • Stop using hermetic clang, libc++, etc
    • "gclient sync" now runs 20-30% faster
    • "ninja -C out/Release" now runs 5-13% faster
    • No longer required:
      • DEPOT_TOOLS_WIN_TOOLCHAIN environment variable
      • MACOSX_DEPLOYMENT_TARGET environment variable
      • clang=0 gyp variable
      • host_clang=0 gyp variable
      • clang_xcode=1 gyp variable
      • use_allocator=none gyp variable
      • use_experimental_allocator_shim=0 gyp variable

v2.5.1

22 Jun 00:15
Compare
Choose a tag to compare

Added

  • Add support for MSVS 2017 and 2019 (#867, #955)

Fixed

  • Fix position of LA_URL in PlayReady headers (#961)
  • Fix broken Dockerfile due to depot_tools update
  • Fix shared_library builds on Windows (#318, #956, #957, #958)

Changed

  • CI overhaul based on GitHub Actions (#336, #959)
    • Migrated Appveyor and Travis integrations to GitHub Actions
    • Added significant new release automation to build, test, and release on
      GitHub, NPM, and Docker Hub

Doc

  • Fix doc formatting for dash_only and hls_only (#954)

v2.5.0

10 Jun 00:30
Compare
Choose a tag to compare

Added

  • Support HTTP PUT to upload packaging outputs to cloud (#149).
  • Support Dolby Vision backward compatible profiles (#341).
  • Support different IVs for each track (#543).
  • Support dash_only and hls_only parameters
    (dash_only=0|1, hls_only=0|1) (#651).
  • [HLS] Allow custom EXT-X-MEDIA-SEQUENCE number (--hls_media_sequence_number)
    (#691).
  • [MP4] Allow specifying protection pattern for pattern encryption
    (--crypt_byte_block, --skip_byte_block) (#710).
  • [MP4] Allow write |mvex| before |trak| (--mvex_before_trak) (#711).
  • [DASH] Support signalling of last segment number
    (dash_add_last_segment_number_when_needed) (#713).
  • [DASH] Allow adaptive switching between different codecs
    (--allow_codec_switching) (#726).
  • [DASH] Include mspr:pro alongside to cenc:pssh for PlayReady (#743).
  • Support Dolby DD+JOC in DASH and HLS (#753).
  • Support AC-4 codec (#754).
  • Support inclusion of extra PlayReady header data
    (--playready_extra_header_data) (#756).
  • Support MPEG-1 Audio in mpeg2ts I/O and packed-audio / mp4 output (#779).
  • Support more text input and output formats, including DVB-SUB input (#832) and
    TTML in MP4 output (#87).
  • Support segment_list for DASH on-demand profile (--dash_force_segment_list).

Fixed

  • DASH / HLS spec compliance issues
    • [HLS] Add support for independent segments tag (#564).
    • [TS] Improve frame rate calculation for TS streams (#751).
    • [MP4] Change major brand from isom to mp41 (#755).
    • [MP4] Always set ES_ID to 0 when writing ES Descriptor (#755).
    • Properly handle AVC profiles with SPS extension (#755).
    • [HLS] Don't include FRAME-RATE in EXT-X-STREAM-INF (#816).
    • [HLS] Fix missing FRAME-RATE in playlists with TS streams (#816).
  • [DASH] TrickPlay using separate trick play specific streams (#732).
  • Don't fail if input contents contain SampleGroupDescriptionBox with 0 entries
    (#812).
  • [HLS] Fixes attributes for DVS tracks (#857).
  • Fix trick-mode property values (space instead of comma).
  • Properly handle SkipBytes with num_bytes as 0 (#875).
  • [MPEG-TS] Fix PCR reserved bits not being set correctly (#893).
  • [HLS] Explicitly signal the lack of CEA captions (#922).

Changed

  • Change AV1 cbcs to protect all bytes of decode_tile structure (#698).
  • [MP4] Allow not to generate 'sidx' box for single-segment too (#862).
  • [WebM] Ignore matroska projection metadata instead of fail parsing (#932).
  • Changed default HTTP UserAgent to ShakaPackager/ (#939).

v2.4.3

05 Aug 06:17
Compare
Choose a tag to compare

Fixed

  • Fix playback issue of HEVC content with cbcs encryption in AVplayer (#717).
  • Fix possible incorrect resolutions with avc3 (#750).

v2.4.2

30 Mar 19:43
Compare
Choose a tag to compare

Fixed

  • Fix truncation of timestamp to 32bits in segment file names for MPEG2-TS
    output (#701).
  • [DASH] Fix "roles" stream descriptor support for WebVTT text streams (#708).
  • Fix potential deadlock when reading WebVTT from a pipe.

v2.4.1

17 Jan 23:24
Compare
Choose a tag to compare

v2.4.1 is identical to v2.4.0 other than fixing Windows buildbot.

v2.4.0

27 Dec 03:15
Compare
Choose a tag to compare

Added

  • Support hardware accelerated AES (#198).
  • Support various HDR formats for HEVC (#341, #632).
  • Add more loggings for GAPs (#474).
  • Retry file deletion if it fails (#533). Only applicable to live packaging.
  • Simplify the dependency for pssh-box utility (#538).
  • Add crypto_period_duration to Widevine key requests (#545).
  • Include pssh-box.py in docker image and release (#550).
  • Support encryption using IV from Widevine key server (#555).
  • [DASH] Support custom Accessibillity and Role elements (#565). This is needed
    to support DVS Accessibillity audio in DASH.
  • Support CMAF file extensions (#574).
  • Support PlayReady PSSH generation with CBCS protection scheme (#602).
  • [HLS] Generate FRAME-RATE attribute in EXT-X-STREAM-INF tag (#634).
  • Add --quiet to suppress LOG(INFO) outputs (#661).

Fixed

  • Handle large descriptor header size in 'esds' box (#536).
  • Improve the handling of corrupted timestamp in live streams (#563).
  • Fix problems that target duration is not set in mpd/hls params, which then
    results incorrect bandwidth estimates (#498, #581).
  • Allow absolute path in playlist name (#585).
  • [HLS] Fix possible zero bandwidth for EXT-I-FRAME-STREAM-INF (#610).
  • Supports encryption of streams with parameter sets in frames, i.e. avc3, hvc1
    etc (#621, #627).
  • [HLS] Segments not deleted with $Time$ in segment_template when output HLS
    segments only (#625).
  • [HLS] ID3 payload for transportStreamTimestamp not truncated to 33 bits
    (#629).
  • Fix UDP sockets support in Windows (#643).
  • Fix possible packager hangs when reading mp4 files from FIFO (#664).

Changed

  • [HLS] Replace hev1 in codec with hvc1 and avc3 with avc1 (#587).
  • Rename --generate_static_mpd to --generate_static_live_mpd (#672).

Doc

  • Added documentation for pssh-box utility (#500).

v2.3.0

21 Dec 00:53
Compare
Choose a tag to compare

Added

  • Alpine Linux support (#164).
  • WebVTT style and region support (#344).
  • Marlin DRM support (#381).
  • HLS CHARACTERISTICS attribute on #EXT-X-MEDIA (#404).
  • Default text language support ('--default_text_language') (#430).
  • AV1 support (#453).
  • HLS audio only master playlist support (#461).

Fixed

  • MPEG-TS demuxing with AC-3 / E-AC-3 (#487). kFrameSizeCodeTable were reversed
    results in wrong frame size being detected except for 44.1kHz.
  • HLS peak bandwidth calculation with very short segments (#498). The short
    segments should be excluded from peak bandwidth calculation per HLS
    specification.
  • Output directory permission (#499). The new directory permission was fixed to
    0700.
  • Workaround access units with extra AUD (#526). VLC inserts an extra AUD in the
    key frames, which caused packager to delay emitting the frame. The delays
    accumulated and became noticeable after running the live packaging for some
    time.
  • Problem when using Trick Play with Ad Cues (#528).

Changed

  • Disable bundled binutil and gold on Linux by default. There may be a slight
    increase in binary link time.
  • Reduced official Docker image size from ~1GB to ~15MB (#535). The new image
    is based on Alpine and contains only result binaries (packager and
    mpd_generator).