Release notes version 1.11.*

Release notes version 1.11.12 GA

This GA release introduces support for Alpine 3.15 and many fixes.

For general info about what you should take into account when upgrading, see: Upgrade to a New Version.

What's new in 1.11.12 GA

The highlights of this GA release are the following:

Remix nPVR/Live2VOD

  • Updated unified_capture --remix logic in nPVR workflows. Capture with the --remix options 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.

TTML Subtitles

  • 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@profile described 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.

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.

Version 1.11.12 (2021-12-21) GA

  • 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).

Version 1.11.11 (2021-12-02)

Note

  • 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:id for style and regions and deduplicate overlapping cues when merging adjacent TTML fragment payloads (#8913).

Release notes version 1.11.9 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.

Version 1.11.9 (2021-10-05) GA

  • capture: insert gaps for missing segments (#8532).
  • manifest-edit: read #EXT-X-SESSION-KEY from 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

Note

  • 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 .ts segments 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_config section. 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.

Release notes version 1.11.3 GA

This GA release includes various bug fixes and adds support for Alpine 3.14 and AWS's ARM-based Graviton instances.

Version 1.11.3 (2021-06-21) GA

  • 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 caption 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).

Release notes version 1.11.1 GA

This GA release introduces Unified Remix VOD2Live and includes many fixes as well.

For general info about what you should take into account when upgrading, see: Upgrade to a New Version.

Attention

VOD2Live requires a license update. Please contact sales@unified-streaming.com if you want to make use of this new feature.

What's new in 1.11.1 GA

The highlights of this GA release are the following:

VOD2Live

  • 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.

Prefetching support

  • Unified Origin will now dynamically generate HTTP Link headers for most of the media segments it generates (previously, this was supported for Smooth Streaming media segments only). By configuring Apache, Link headers can be used to conditionally set the Akamai CDN-Origin-Assist-Prefetch-Path headers, potentially improving the cache hit ratio on the CDN. For more info, please see our documentation: Prefetch Headers.

Manifest Edit

  • 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.

Dolby AC-4

  • 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.1 (2021-04-12) GA

  • vod2live: set presentationTimeOffset when using the --vod2live_start_time (#8763)
  • added support for Debian 11.

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).