Releases: shaka-project/shaka-packager
Releases · shaka-project/shaka-packager
v2.2.0
Added
- EditList support in ISO-BMFF in both input and output (#112).
- Improved Multi-DRM support with --protection_systems flag (#245).
- HLS AVERAGE-BANDWIDTH support (#361).
- Dynamic Ad Insertion preconditioning support with Google Ad Manager (#362, #382, #384).
- Configurable UDP receiver buffer size (#411). This can help mitigate or
eliminate packet loss due to receiver buffer overrun. - Allow non-zero text start time (#416). Needed for live text packaging.
Changed
- Deprecated --mp4_use_decoding_timestamp_in_timeline.
- Deprecated --num_subsegments_per_sidx.
- Generate DASH IF IOP compliant MPD with mpd_generator by default.
- Adjust timestamps in ISO-BMFF if there is an initial composition offset
as we believe that an EditList is missing in this case (Related to #112). - Add an adjustable offset to transport streams (MPEG2-TS, HLS Packed Audio)
(Related to #112). The offset is configurable with
--transport_stream_offset_ms. The default is 0.1 seconds. - Set default --segment_duration to 6 seconds.
- Set default --clear_lead to 5 seconds. Shaka Packager does not support partial encrypted segments,
so if segment_duration is 6 seconds, then only the first segment is in clear, with all the
following segments encrypted. - Set default --io_block_size to 64K.
- Disable Legacy Widevine HLS signaling for HLS with Widevine protection system by default. Use flag
--enable_legacy_widevine_hls_signaling to enable it if needed.
Fixed
- Build failures in Windows with CJK environment (#419).
- Segmentation fault when processing WebVTT with out of order cues (#425).
- Support WebVTT cues without payload (#433).
- segmentAlignment is not set correctly in static live profile for multi-period
content (#435). Theoretically it could happen for single period content as
well, but with very low possibility of occuring. - Segmentation fault when packaging with an empty VTT file (#446).
- Possible file name collision when --temp_dir is used (#448).
Doc
v2.1.1
Changed
- Warn if HLS type is not set set to LIVE for UDP inputs (#347).
- Use new vp09 codec string for WebM by default (#406). Set command line flag:
--use_legacy_vp9_codec_string
if the old behavior is needed. - Allow trailing null bytes in NAL units, to allow contents with the H264 spec
violation to be processed instead of erroring out (#418).
Fixed
- Fix MPD@duration not set with MPDGenerator (#401). This is a regression
introduced in v2.0.1. - Remove 'wvtt' in HLS master playlist codec string as it breaks some old Apple
products, e.g. AppleTV3 (#402). - Fix potential text Segment Timeline not being grouped together in DASH mpd
(#417), which happens when--allow_approximate_segment_timeline
is set.
v2.1.0
Added
- Support Widevine and Playready PSSH generation internally in packager (#245).
Documentation will be updated later. - Support removing segments outside of live window in DASH and HLS (#223).
- Support UTCTiming for DASH (#311).
- Support approximate SegmentTimeline (#330) under flag
--allow_approximate_segment_timeline. The flag is disabled by default and it
will be enabled in a later release. SegmentTemplate with constant duration is also
supported, under flag --segment_template_constant_duration. - Support UDP Source Specific Multicast (SSM) (#332).
- Support elementary audio (Packed Audio) for HLS (#342).
- Support FLAC codec (#345).
- Support AAC with program_config_element (#387).
- Support Widevine entitlement license with dual PSSH, which can be enabled using flag
--enable_entitlement_license flag. The feature is experimental. Packaged contents may
not play on some client platforms. - Add license notice in --licenses.
Changed
- Ignore unsupported audio codec in the source content (#395). This allows other
supported streams to be processed and packaged.
Fixed
- Fix bitrate for DASH on-demand profile too (#376).
- Fix Ad Cues and EXT-X-KEY tag handling in HLS iFrames only playlist
(#378, #396). - Skip Style and Region Blocks in the source instead of failing (#380).
- Fix potential slice header size off by one byte in H265 (#383).
- Fix potential partial DASH segments during live packaging (#386).
- Fix incorrect BOM used in WEBVTT header (#397).
- Fix TS mimetype in DASH.
v2.0.3
Changed
- Removed --pto_adjustment flag (related to #368).
Fixed
- Use max bitrate in Representation@bandwidth instead of average bitrate for DASH live profile (#376).
- Set Widevine key request content-type to JSON instead of xml (#372).
- Fix default_language not working if 2-char code is used (#371).
- Do not force earliest_presentation_time to 0 for VOD (#303).
- Generate more precise time in Period@duration (#368). This avoids possible
rounding error in MSE causing frames to be dropped at Period boundary.
v2.0.2
v2.0.1
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
v2.0.0
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
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
v1.6.0
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.