Release notes version 1.11.*¶
Version 1.11.17 (2022-06-21) RC¶
- live: fixed annoucement of embedded captions for dual ingest setups (#9113).
- hls: changed CHARACTERISTICS "public.accessibility.describes-spoken-dialog" to "public.accessibility.transcribes-spoken-dialog". This will also be corrected in the next update of the HLS Authoring Guidelines (#9087).
- removed support for Alpine Linux 3.14
- added support for Alpine Linux 3.16 (x86_64 and arm64)
Version 1.11.16 (2022-06-02)¶
- live2vod: use the given start time as the lower bound to determine the actual starting time (#9068).
- live: fixed change of segment duration in HLS media playlist when a spliced media segment moved out of the DVR window (#9090).
- hls: add both CHARACTERISTICS "public.accessibility.describes-spoken-dialog" and "public.accessibility.describes-music-and-sound" for tracks having a closed captions role (#9087).
- libfmp4: log a debug message when parsing of a SCTE 35 segmentation descriptor fails, instead of failing (#9086).
- dash: When splicing is enabled, multiply the MPD@maxSegmentDuration (--mpd.minimum_fragment_length) by 1.5 (#9066).
- remix: ignore empty tracks that otherwise might have failed when trying to create a second edit offset (#9070).
- packager: fixed media segment alignment when packaging multiple video tracks with different framerates (#9075).
- origin: added
UspOutputFilterdirective to replace
mod_ext_filterfunctionality, for running Manifest Edit (as described in Manifest Edit-related configuration).
Version 1.11.15 (2022-04-21)¶
- live: added experimental --archive_cmaf option to store ingested stream as CMAF archive segments (#7465).
- libfmp4: when importing "text/dfxp" subtitles the default is to convert to ('stpp.ttml.im1t'); When no TTML profile is signaled and SMPTETT images are present in the TTML document, then the type is set to image ('stpp.ttml.im1i').
- libfmp4: ignore the end splice point given by the SCTE 35 Auto Return Mode message when it's early terminated (#9039).
- packager: packaging Dolby Vision Profle 5 to CMAF failed when determining the compatibility brands (#9063).
Version 1.11.14 (2022-04-04) GA¶
This GA release includes various bug fixes and improvements alongside newly available configuration files when installing and enabling unified streaming software on linux operating systems. For more information please see details below.
For general info about what you should take into account when upgrading, see: Upgrade to a New Version.
On Linux, the setup process has been simplified through a few default
configuration settings that are activated when enabling the
mod_smooth_streaming module (i.e., Unified Origin). The settings can be
found in the
mod_smooth_streaming.conf file installed alongside
mod_smooth_streaming.so and amount to the following:
mod_unified_s3_authmodules, the last of which is installed automatically as a dependency of the
mod_smooth_streamingmodule while the others are part of Apache's default installation
UspEnableSubreqfor significant improvements when using remote storage backends, see Cloud Storage Proxy
- Adds default configuration for Manifest Edit as detailed in Manifest Edit-related configuration, which does not impact setups that don't make use of Manifest Edit while reducing complexity for those that do
The highlights of this GA release including changes made in the previous RC:
Operating System Support¶
- Support for the Ubuntu 22 Jammy (x86_x64) & Jammy-Ports (arm64) variants further increases the number of operations systems unified streaming software is compatible with.
- Operating systems in the form of Debian 10 (Buster) and Alpine linux 3.13 become end of life and are no longer supported. For more information, please see End Of Support.
Restart and Catch-up TV¶
- Bug fixes have been made in the way timed metadata and audio track logic is handled when creating a VOD clip from a a Live source. This resolves issues identified in these areas in relations to media segment alignment which previously resulted in an undesired output.
SCTE 35 & Custom Timed Metadata¶
- For HLS client manifests, when one or more segmentation descriptors are present in an ad opportunity received, the DURATION field in the EXT-X-DATERANGE tag is updated to reflect the value of the segmentation_duration field when present in the segmentation descriptor.
- Messages that contain the same event.id and SchemeIdUri but different payload are now considered unique and will be signalled as an appropriate EXT-X-DATERANGE (HLS) and EventStream (DASH) message. A common mistake is that an identifier is (re-)used for messages that actually carry a different payload. We specifically pass-through these messages making it easier to identify issues downstream.
Unified Origin & Packager Encryption¶
- Improved support for packaging of pre-encrypted source media alongside the handling of multiple sample descriptions.
- Unified Origin and Packager now use the subsample information provided in the "subs" box when encrypting for 'PIFF' (Protected Interoperable File Format). When encrypting for 'CENC' (Common Encryption) use the elementary stream instead.
- When using
cpix_verifyall tracks are now automatically evaluated allowing for the
select-kidcommand-line option to be deprecated.
Remote Storage / AWS S3 Integration¶
- Unified Origin, Packager and Remix now have support for Temporary Amazon S3
Security Tokens. AWS's Identity and Access Management (IAM) allows for the
creation of temporary, limited-privilege Security Tokens which can be used to
access AWS services such as S3. In addition to the existing S3-related command
line options, we have added a new
--s3_security_tokenoption to where you can specify such tokens if they are required to access the S3 resource(s). Similarly, we added a
S3SecurityTokendirective to mod_smooth_streaming, mod_unified_remix and mod_unified_s3_auth. For more information please see Authenticate requests to AWS S3 and AWS Security Tokens.
- Enable Apache subrequests by default in Unified Origin and Unified Remix. The default Apache configuration files installed by mod_smooth_streaming and mod_unified_remix now enable subrequests by default, improving performance of requests to remote storage. For optimal performance gains, you should also add Proxy sections for remote storage locations. See Cloud Storage Proxy for more information.
- Manifest Edit is now automatically installed with Unified Origin, only requiring to create yaml files to enable use cases.
- The default Apache configuration files installed by mod_smooth_streaming allows use cases to be enabled without needing to reconfigure or restart the Origin.
- New Label plugins allowing to edit Labels in a DASH manifest. Labels can use a template syntax to refer to manifest attributes and can translate ISO639 language code to the respective names.
- New BaseURL and SegmentTemplate modifier plugin, supporting use cases where segments are served by different URLs/server manifests than the main one.
- HLS "default language" plugin now supports editing the "CHARACTERISTICS" attribute, i.e. to signal audio and subtitle tracks as video description or hard of hearing.
- live: fixed missing AdaptationSet@InbandEventStream elements when creating a Live2VOD clip. This happened when there was no corresponding Timed Metadata media segment at the beginning of the clip (#9022).
- libfmp4: improved support for (mixed) pre-encrypted content and multiple sample descriptions (#9032).
- cpix_verify: removed select-kid command-line option. All tracks are now always evaluated.
- added support for Ubuntu 22.04 (jammy)
- removed support for Alpine Linux 3.13 and Debian 10
Version 1.11.13 (2022-03-21) RC¶
- live: fixed track selection for Live2VOD where an audio track may have incorrectly been dropped due to segment alignment (#9026).
- hls: when one or more segmentation descriptors are present in a DASHEventMessage, the DURATION field in the EXT-X-DATERANGE tag is updated when the segmentation_duration field is present in the descriptor (#9021).
- libfmp4: use subsample information provided in the "subs" box when encrypting for the "piff" scheme. When encrypting for "cenc" use the elementary stream instead (#8976).
- packager, origin, remix: add support for Amazon S3 Security Tokens (#8888). AWS's Identity and Access Management (IAM) allows creating temporary, limited-privilege Security Tokens, which can be used to access AWS services such as S3. In addition to the existing S3-related command line options, we have added a new --s3_security_token option to mp4split and unified_remix, where you can specify such tokens, if they are required to access the S3 resource(s). Similarly, we added a S3SecurityToken directive to mod_smooth_streaming, mod_unified_remix and mod_unified_s3_auth. For more information please see Authenticate requests to AWS S3 and AWS Security Tokens.
- origin, remix: enable Apache subrequests by default. The default Apache configuration files installed by mod_smooth_streaming and mod_unified_remix now enable subrequests by default, improving performance of requests to remote storage. For optimal performance gains, you should also add Proxy sections for remote storage locations. See Cloud Storage Proxy. To opt out of subrequests, you can edit the mod_smooth_streaming.conf or mod_unified_remix.conf files, and turn off the UspEnableSubreq directive.
Version 1.11.12 (2021-12-21) GA¶
This GA release introduces an Alpha version of Unifed Transcode using FFmpeg-plugins (tiled thumbnail support only), support for Alpine 3.15 and many fixes as well.
For general info about what you should take into account when upgrading, see: Upgrade to a New Version.
The highlights of this GA release are the following:
- Updated unified_capture
--remixlogic in nPVR workflows. Capture with the
--remixoptions now captures at SyncSample/KeyFrame boundaries whilst avoiding gaps between captured clips. This mitigates any potential issues when processing clips at archive segment boundaries through Unified Remix with frame accuracy.
Dolby Vision (HDR)¶
- Dolby Vision 8.1 in ISOBMFF & MPEG-DASH. Anyone wishing to implement Dolby Vision HDR in Origin Live workflows has the capabilty to now use Dolby Vision Profile 8.1 encoded content in their streaming workflows.
- Enhances subtitles support for TTML profiles (ISO/IEC 14496-30). Live and VOD
workflows involving TTML subtitles will result in the codec string being
populated with the given
tt@profiledescribed in the source document, for instance
stpp.ttml.im1t. This align more closely with the ISO/IEC 14496-30 specification detailing how variations of ttml documents can be best described using multiple elements within the codec string.
Subtitle language and Regional dialects¶
- Enhanced subtitle support for extended language codes (IETF BCP-47/RFC-5646). Anyone using multi-language subtitles with regional dialects now has the capability to signal languages more accurately.
Tiled Thumbnail FFmpeg Plugins¶
- Tiled thumbnail transcoding using mp4split-ffmpeg-plugins (Alpha release). Tiled thumbnails tracks can now be created with using the IntelMediaSDK and it's associted software/hardware dependencies. FFmpeg-based plugins enable decoding of AVC/H.264 and HEVC/H.265 video, image resizing, and encoding of JPEG images and can be ran on any type of Linux or Windows machine, including virtual machines or container based solutions.
- docs.unified-streaming.com now uses Google for searching information on the site. Historically, the search functionality has been sub-optimal. Searching is now faster, more accurate and returns results that are more likely to match the search terms
VOD2Live AWS marketplace Tutorial¶
- Anyone wishing to use the VOD2Live marketplace offering now have an associated tutorial available on how to use the solution. This tutorial makes it even easier to get started and create a new VOD2Live live linear channels in the marketplace.
Validator Best Practice¶
- Best practice documentation on using Validator for content preparation is now available. Validator runs a set of test-suites against an MP4 of your choice. You can use it to validate your content's compatibility with Unified Streaming's streaming solutions using the 'Best Practices' suite, which is selected by default, or you can choose any of the other suites to validate your content's compliance with relevant industry specifications.
- origin: lowered "media time" message log level info to debug (#8708).
- origin: fixed decrypting a media segment when content is encrypted and has missing samples (#8971).
- origin: fixed "Link" prefetch header when presentation name was empty (#8959).
- origin: fixed "Invalid range" error when using a combination of IsmProxyPass and a HTTP request using "Transfer-Encoding: chunked" and a missing "Content-Lenth" field (#8964).
- libfmp4: fixed requesting a CPIX document for the last media segment when it has subsecond duration (#8961).
- libfmp4: ignore QT Timecode tracks (#8962).
- libfmp4: added mp4split-ffmpeg-plugins package, which enables decoding of AVC/H.264 and HEVC/H.265 video, image resizing, and encoding of JPEG images. Together, these features enable creation of tiled thumbnail tracks using only FFmpeg-based components, and without requiring a GPU.
Version 1.11.11 (2021-12-02)¶
- Added support for Alpine Linux 3.15.
- Soon to be discontinued: CentOS 8, Debian 10, Alpine 3.13
capture: fixed capturing from file:/// (with an end time in the future) by no longer caching the filesize (#8958).
capture: when creating a Remix nPVR archive using --remix we now align the captured window to a GOP boundary (and align the other tracks accordingly).
mp4split, remix: lower resource usage when using query arguments for S3 authentication (#8955).
When using S3 authentication with query arguments, some use cases could cause excessive file handle and memory usage. Since this did not happen with S3 authentication headers, adding --s3_use_headers could be used as a workaround.
This has been fixed by moving the addition of S3 authentication query arguments to a later stage in http request handling. There should no longer be any discernible difference in resource usage between using S3 authentication query arguments, or using headers.
Version 1.11.10 (2021-11-09)¶
- packager: use the profile (tt@profile) given by the TTML document when creating a TTML ISOBMFF track. When not present we default to either "http://www.w3.org/ns/ttml/profile/imsc1/text" (for text) or "http://www.w3.org/ns/ttml/profile/imsc1/image" (when images are present). The profile is used to create the (optional) third element in the codecs parameter (#8932).
- libfmp4: updated to 'Dolby Vision Streams Within the ISO Base Media File format Version 2.2' (#8525).
- dash: updated to 'Dolby Vision 2.2 Streams within the MPEG-DASH format' (#8525).
- webvtt: allow WebVTT sidecar download when HLS playout is disabled (#8646).
- capture: added support for extended languages (#8923).
- mp4split: added support for extended languages in progressive MP4 (#8923).
- capture: align clipping timespan to video GOP first, and use the aligned timespan for the other (audio/text) tracks.
- libfmp4: correctly remap
xml:idfor style and regions and deduplicate overlapping cues when merging adjacent TTML fragment payloads (#8913).
Version 1.11.9 (2021-10-05) GA¶
This GA release includes various bug fixes and improvements (e.g. capture performance and gap handling) as well as support for ARM64 Ubuntu 20 and Rocky Linux 8 (as CentOS 8 replacement).
For general info about what you should take into account when upgrading, see: Upgrade to a New Version.
- capture: insert gaps for missing segments (#8532).
- manifest-edit: read
#EXT-X-SESSION-KEYfrom main playlist (#8904).
- live: fixed overwriting bitrate signaled by the "btrt" box (#8899).
- capture: reuse HTTP connections. Significant benefits in speed and less resources required (#8897).
Version 1.11.8 (2021-09-21) RC¶
- Added support for ARM Ubuntu 20 (next to AWS amzn2).
- Final release for Alpine Linux 3.12.
- The Debian project has released new stable version 11. We encourage anyone using Debian 10 to consider upgrading or migrating to Ubuntu. USP will cease support for Debian 10 starting 2022.
- Soon to be discontinued: CentOS 8.
- capture: added the Track Fragment Base Media Decode Time 'tfdt' box to fragmented output.
- capture: only use a single edit in fragmented tracks to compensate for a video composition time offset or audio priming (#8867).
- live: added ProducerReferenceTimeBox to the media segments stored on disk holding the UTC time at which the following MovieFragmentBox was written to file. Note that they are only available in the archived segments and are discarded on playout and hence are only available to help debugging (#7889).
- dash: updated definition of Representation@presentationDuration to be the sum of all SubsegmentDuration fields in the first 'sidx' box (no longer including the earliest_presentation_time field).
- mp4split: use constant interval duration when generating thumbnail track (#8886).
- libfmp4: updated AV1 Codec ISO Media File Format Binding to v1.2.0.
Version 1.11.7 (2021-08-16)¶
manifest edit: added support for the Apache QUERY_STRING environment variable, to make integration with mod_ext_filter easier.
hls: rewrite non-zero picture parameter set IDs in HLS
.tssegments to work around broken macOS players (#8869).
Certain older versions of the macOS QuickTime framework (which is responsible for decoding and playing media) cannot handle AVC1 elementary streams with picture parameter sets that have a non-zero ID, even though these are perfectly correct according to the AVC specifications. Since we produce new picture parameter sets and sequence parameter sets when transcoding video for the purpose of inserting keyframes, this can lead to frozen/stalled video playout, or corruption. To work around this problem, we rewrite the affected parts of the AVC1 elementary streams to set those IDs to zero.
Version 1.11.6 (2021-07-30)¶
- manifest edit: removed the mod_unified_manifest_edit module, and replaced the C++-based manifest_edit executable by a Python script. (On Windows, this script is invoked by a batch file.)
Version 1.11.5 (2021-07-23)¶
- libfmp4: support 2013 namespace for smpte timed text (#8862).
- live: support multiple codecs in client manifest through distinct adaptation sets, even if ingested tracks do not have names (#8846).
- hls: fixed output of fmp4 HLS keyframes when using --fixed_gop (#8854).
- hls: add a EXT-X-DATERANGE tag announcing a splice to a Media Playlist at the same time as the last pre-splice Media Segment, or earlier if possible (#8884).
- manifest edit: new plugins for generic descriptors add/remove. Supports Accessibility, Role, AudioChannelConfiguration, EssentialProperty and SupplementalProperty manipulation (#8804)
- manifest edit: most configuration files now use a slightly different
syntax, using a new
plugin_configsection. The change is possibly non backwards-compatible. Refer to the documentation for further details.
- dash: work around issue introduced in 1.10.33 (r23396) which made Accessibility descriptors disappear in some cases (#8861)
Version 1.11.4 (2021-07-13)¶
- added support for Rocky 8. CentOS 8 will be phased out later this year in favour of Rocky Linux (#8852).
- hls: added support for Auto Return Mode breaks that terminate early (#8834).
- hls: fixed failing worst-case scenario of applying emulation prevention when encrypting video elementary streams with corrupt slices. (#8849).
- live: only returns the dvr window in the manifest when the ingest has finished (except when dvr_window_length is zero) (#8649).
- live: always convert "text/dfxp" subtitles to standard "subt/stpp" format. The default type is text ('stpp.ttml.im1t'); only when the bitrate is signaled as 64000 then the type is set to image ('stpp.ttml.im1i').
- libfmp4: fixed remapping of style and region identifiers when merging TTML documents (#8813).
- packager: add the IMSC 1.0 Text Profile when creating TTML from WebVTT or 608.
- capture: when capturing Smooth Streaming subtitles use the bitrate from the manifest to determine its type (text or image) (#8828).
- libfmp4: fixed layer field in track header for subtitle tracks.
Version 1.11.3 (2021-06-21) GA¶
This GA release includes various bug fixes and adds support for Alpine 3.14 and AWS's ARM-based Graviton instances.
added support for Alpine 3.14.
added support for
amzn2-aarch64, with Amazon Linux-based Dockerfile as an example that includes necessary OpenSSL workaround.
origin: fixed @startNumber (always based on epoch and @presentationTimeOffset (#8837).
libfmp4: include PlayReady's PRO (that contains a PRH) in HLS Media Playlists when using CPIX documents without explicit signaling (#8831).
libfmp4: added support for @frameRateMultiplier in TTML (#8826).
libfmp4: fixed using count() in filter expression (#8827).
rest-api: removed response body for successful POST to REST api (#8830).
live: fixed missing closed captions signaling in DASH manifests (#8824).
origin: fixed collapsing of file reads when encrypting samples (#8807).
packager: fixed 608 translation to TTML/WebVTT for Extended Western European character set Spanish/French (#8823).
dash: fixed signaling of @scanType for HEVC content when unspecified (#8819).
hls: added WebVTT cue IDs to work around Apple HLS player behavior (#8697).
If WebVTT cues are split across fragment boundaries, and the end of the first part is shorter than 250ms, the Apple HLS player gets confused and fails to display the second part. This causes the subtitle to show only very briefly. Other HLS players, such as HLS.js and Shaka, handle this situation without any problems.
It turns out that using unique cue IDs works around this issue, enabling the Apple HLS player to fully display the cues again. According to the WebVTT standard, cue IDs can contain almost all characters, but to avoid issues with other less compliant players, we use only a unique decimal number, derived via a hash from the begin and end timestamps, and the payload.
remix: added support for Apache subrequests to mod_unified_remix (#8817).
Similar to Origin, Remix now supports Apache subrequests to handle HTTP(s) requests to remote storage. When enabled, significant performance and stability gains can be be achieved between the Remix server and the backend storage. cURL functionality is unchanged and backward compatibility for existing setups is maintained. Documentation: Cloud Storage Proxy.
packager: stopped warning about recovery points if part of IDR frames (#8829).
When repackaging AVC streams with SEI messages containing recovery points, the Packager would always warn "Input file has recovery points (open GOP structure), output may not be supported by all players". However, some AVC streams provided by customers contained recovery points as part of IDR frames (a.k.a. keyframes), which makes those recovery points redundant. In such cases it is unnecessary to show the warning, so it has been silenced. Note that if recovery points are found in non-IDR frames, the warning is still emitted.
Version 1.11.2 (2021-05-17)¶
- live: fixed vbegin/vend requests against /archive (#8805).
- remix: fixed track matching, taking into account all "kind" values when matching tracks (#8793).
- remix: do not deduplicate the target track selection set (#8726).
- origin: fixed status code for missing SMPTE-TT media segment (#8797).
- capture: fixed subtitle alignment when creating VOD clip (#8794).
- vod2live: fixed alignment of sequence numbers across HLS Media Playlists (#8745).
- vod2live: fixed alignment of start time with start of playlist (#8778).
- added ARM64 support for Amazon Linux 2 (#8595).
Version 1.11.1 (2021-04-12) GA¶
This GA release introduces Unified Remix VOD2Live and includes many fixes as well.
VOD2Live requires a license update. Please contact email@example.com if you want to make use of this new feature.
The highlights of this GA release are the following:
- VOD2Live is a completely new solution. It allows you to create a linear live channel from VOD assets without the need for a Live encoder. You can schedule the VOD assets that you want to stream Live using a SMIL (XML) playlist that is processed with Remix in order to prepare the stream for playout with Origin. This solution builds on, and can be combined with, previously released playlist-based solutions like Remix VOD, Remix nPVR and Remix AVOD. For more info, please see our documentation: Unified Remix - VOD2Live.
- Unified Origin will now dynamically generate HTTP
Linkheaders for most of the media segments it generates (previously, this was supported for Smooth Streaming media segments only). By configuring Apache,
Linkheaders can be used to conditionally set the Akamai
CDN-Origin-Assist-Prefetch-Pathheaders, potentially improving the cache hit ratio on the CDN. For more info, please see our documentation: Prefetch Headers.
- After the first release of Manifest Edit in our previous GA (1.10.28), 1.11.1 GA broadens the scope of Manifest Edit by including support for HLS (in addition to DASH). Manifest Edit can be plugged into the Origin to post-process a manifest right after its generation, introducing the modifications that may be required by the downstream components present in your workflow. For more info, please see our documentation: Manifest Edit.
- This release introduces full support for Dolby's latest audio format, AC-4. It supports object-based audio and has been build from the start with streaming delivery in mind.
Improved handling of SCTE 35¶
- As detailed in Release notes version 1.10.* a number of improvements have been made in the way SCTE 35 is handled, to increase compatibility with and robustness of ad insertion and ad replacement workflows.
Version 1.11.0 (2021-04-01) RC¶
- live origin: fixed race condition reading Timed Metadata & fixed duplicate tracks in server manifest (#8707).
- origin: set @maxPlayoutRate at AdaptationSet level instead of at Representation level (#8758).