A media packaging and development framework for VOD and Live DASH and HLS applications, supporting Common Encryption for Widevine and other DRM Systems.
Support cue alignment from multiple demuxed streams (#355).
v2.0.1
6 years ago
Added
Recognize m4s as a valid extension for init segment (#331). It is used to be
allowed as the extension for media segments only.
Improve DASH multi-period support: calculate presentationTimeOffset and
Period@duration from video segment presentation timestamps. This avoids
video playback jitters due to gaps.
Fixed
Handle invalid WebVTT with start_time == end_time gracefully (#335).
Ignore invalid meta box in mp4 files, which Android's camera app generates
(#319).
Set stream duration in init segment for mp4 with static live profile (#340).
v2.0.0
6 years ago
Added
Enhanced HLS support.
Support for attributes RESOLUTION, CHANNELS, AUTOSELECT and DEFAULT.
Live and Event playlists.
fMP4 in HLS (including byte range support).
DRM: Widevine and Fairplay.
I-Frame playlist.
Enhanced subtitle support.
Segmented WebVTT in fMP4.
Segmented WebVTT in text, for HLS.
Support generating DASH + HLS manifests simultaneously (#262).
AC3 / E-AC3 support.
Experimental multi-period support.
Raw key multi-key support.
DASH Trickplay.
Make fMP4 output CMAF compatible.
Support for WebM colour element.
Support skip_encryption stream descriptor fields (#219).
Improved documentation and tutorials.
Changed
Refactored packager code and media pipeline.
Exposed top level packaging interface.
Renamed --webm_subsample_encryption flag to --vp9_subsample_encryption flag.
Deprecated --availability_time_offset flag.
Fixed
Write manifests atomically to fix possible truncated manifests seen on clients
(#186).
[WebM] Fix live segmenter overflow if longer than two hours (#233).
Fix a possible interferenace problem when re-using UDP multicast streams in
different processes (#241).
Create directories in the output path if not exist (#276).
Fix order of H265 VPS, SPS, PPS in hvcC box (#297).
Handle additional unused mdat properly (#298).
Fix possible incorrect HEVC decoder configuration data (#312).
Handle varying parameter sets in sample when converting from NAL unit stream
to byte stream (#327).
v1.6.2
7 years ago
Added
Added an option to keep parameter set NAL units (SPS/PPS for H264,
SPS/PPS/VPS for H265), which is necessary if the parameter set NAL units
are varying from frame to frame. The flag is --strip_parameter_set_nalus,
which is true by default. This addresses #206 (the flag needs to be set to
false).
Fixed
Fixed the problem that sliding window logic is still active with DASH static
live profile (#218).
Fixed AAC-HE not correctly signaled in codec string (#225).
[WebM] Fixed output truncated if using the same file for both input and
output (#210).
[WebM] Fixed possible integer overflow in stream duration in MPD manifest
(#214).
v1.6.1
7 years ago
Changed
Enable --generate_dash_if_iop_compliant_mpd by default. This moves
ContentProtection element from Representation to AdaptationSet. The feature
can still be disabled by setting the flag to false if needed.
Fixed
MPD duration not set for live profile with static mpd (#201).
v1.6.0
7 years ago
Added
Added support for Windows (both 32-bit and 64-bit are supported).
Added support for live profile with static mpd by setting flag
--generate_static_mpd (#142). This allows on demand content to use segment
template.
Added support for tagging a specific audio AdaptationSet as the default /
main AdaptationSet with --default_language flag (#155).
Added UDP options support: udp://ip:port[?options]. Currently three options
are supported: reuse=1|0 whether reusing UDP sockets are allowed (#133),
interface=a.b.c.d interface address, timeout=microseconds for socket timeout.
Added 4K and 8K encryption support (#163).
Changed
[WebM][VP9] Use subsample encryption by default for VP9 per latest WebM spec.
The feature can be disabled by setting --webm_subsample_encryption=false.
[WebM] Mimic mp4 behavior: either all the samples in a segment are encrypted
or all the samples are clear.
[WebM] Move index segment forward to right after init segment (#159).
Fixed
Fixed AdaptationSet switching signalling when
--generate_dash_if_iop_compliant_mpd is enabled (#156).
[H.264] Fixed access unit detection problem if there are multiple video slice
NAL units in the same frame (#134).
[WebVTT] Detect .webvtt as WebVTT files.
[WebM] Fixed keyframe detection in BlockGroup for encrypted frames.
[HLS] Fixed HLS playlist problem when clear lead is set to zero (#169).
Fixed --version command.
Deprecated
Deprecated flag --udp_interface_address. Use udp options instead.
Deprecated flags --single_segment and --profile. They are now derived from
the presence of 'segment_template' in stream descriptors.
v1.5.1
7 years ago
Added
Added a runtime flag to use decoding timestamp in timeline for mp4:
--mp4_use_decoding_timestamp_in_timeline
Changed
Remove restriction that sps:gaps_in_frame_num_value_allowed_flag should be
0 in h264. Packager should not care about this flag (#126).
Remove restriction that sample duration cannot be zero. A warning message
is printed instead (#127).
Fixed
Fix text formats (webvtt, ttml) not recognized problem (#130).
v1.5.0
7 years ago
Added
Added TS (output) and HLS (output) with SAMPLE-AES encryption support.
Note that only H.264 and AAC are supported right now.
Added support for CENCv3, i.e. 'cbcs', 'cbc1', 'cens' protection schemes.
Added H.265 support in TS (input) and iso-bmff (input / output).
Added experimental Opus in iso-bmff support.
Changed
Change project name from edash-packager to shaka-packager. Also replaces
various references of edash in the code accordingly.
v1.4.1
7 years ago
Fixed
[VP9] VPCodecConfiguration box should inherit from FullBox instead of Box.
[VP9] Fixed 'senc' box generation when encrypting mp4:vp9 with superframe.
[WebM] Close file before trying to get file size, so the file size can be
correctly calculated.
Changed
[MP4] Ignore unrecognized mp4 boxes instead of error out.
v1.4.0
8 years ago
[1.4.0] - 2016-04-08
Added
Added support for MacOSX (#65). Thanks to @nevil.
Added support for Dolby AC3 and EAC3 Audio in ISO-BMFF (#64).
Added support for language code with subtags, e.g. por-BR is now supported.
Added a new optional flag (--include_common_pssh) to widevine encryption
to include common system pssh box in addition to
widevine pssh box.
Improved handling of unescaped NAL units in byte stream (#96).
Changed
Changed fixed key encryption to generate
common system pssh box by default; overridable by
specifying pssh box(es) explicitly with --pssh flag, which is now optional.
--pssh should be one or more PSSH boxes instead of just pssh data in hex
string format if it is specified.
Improved subsample encryption algorithm for H.264 and H.265. Now only video
data in slice NALs are encrypted (#40).
Fixed
Split AdaptationSets by container and codec in addition to content_type,
language. AVC/MP4 and VP9/WebM are now put in different AdaptationSets if
they are packaged together.
Fixed index range off-by-1 error in WebM DASH manifest (#99).
Fixed WebM SeekHeader bug that the positions should be relative to the
Segment payload instead of the start of the file.