Release notes version 1.15.*

Version 1.15.3 (2025-02-18)

  • live: fixed sporadically ending up with a timeline of a single media segment, when specifying begin and end times for manifest requests, that were not in the given timespan (#9405).

  • libfmp4: only write referenced styles and regions in TTML fragments (#9401).

  • the mp4split package (and, indirectly, almost all other USP packages) now depends on the libcuti package. Linux system package managers (apk, apt, yum) will handle this automatically, but on Windows, libcuti needs to be installed manually. Please see here for details.

  • hls: fix duplicated keyframes/ path in I-frame playlists when query parameters are used (#9407). This was a regression introduced in 1.14.4.

  • x264_encoding_service: reduce logging verbosity

Version 1.15.2 (2025-02-05)

  • libfmp4: do not error when spurious bytes are present after the SCTE 35 command and before the descriptor_loop_length field (#9395).

  • libfmp4: when a SCTE 35 Segment's duration is provided, and that duration expires without a Segment end being signaled, then the value of segmentation_event_id may be reused if appropriate. Such inferred Segment end cases are not to be encouraged and should not be used (#9389).

  • capture: when unexpected cURL errors occur, retry twice before giving up, instead of giving up immediately. This should make capturing over unreliable transports a bit more robust.

  • origin: fix mpd_profile query argument no longer working as expected after 1.13.2 (#9396).

  • mp4split: signal embedded captions with kind box (#9392). When repackaging video tracks, we now add a USP-specific "kind" box with scheme ID http://unified-streaming.com/ns/2025/embedded_captions, that signals whether the elementary stream contains embedded captions (aka CEA-608). Specifically for dref-ed files, this avoids the need to scan the elementary stream(s) again when preparing manifests.

Version 1.15.1 (2025-01-09) GA

  • x264 video_encoder_avc plugin on Windows: fix crash on process exit.

  • Added support for Alpine Linux 3.21.

Version 1.15.0 (2024-12-18) RC

  • capture: be less strict on parsing external m3u8 playlists (#9382).

  • cpix: allow for an empty media segment (zero duration) request. The given timespan is considered to be a point in time and may have a content key associated with it (#9388).

  • origin: fetch event duration from ESAM message for time-signal durations (#9379).

  • libfmp4: write version 1 DASHEventMessages for scheme_id 'urn:de:dtag:eit:2017'.

  • transcoding (media processing): added the x264 AVC video encoding plugin, and its prerequisite x264_encoding_service. See Media processing for further details.

  • hls: propagate query parameters hls_no_multiplex and hls_no_elementary to media playlist URLs (#9371).

  • origin: removed detection of remixed content and the following playout settings now revert to their defaults:

    Unified Remix content now defaults to 'avc1', if you'd like to keep using 'avc3' you can signal the DVB DASH --mpd.profile (#9387).

  • mp4split: convert incoming colr boxes with Apple-specific type 'nclc' to standard ISOBMFF type 'nclx', instead of asserting.

  • Added support for Windows Server 2025.

  • manifest-edit: now requires Python 3.12 on Windows.

  • libfmp4: when determining HEVC frame rate, prefer information from the VPS/SPS NAL units over the avgFrameRate in the HEVCDecoderConfigurationRecord. The latter is imprecise, and cannot accurately describe 24000/1001 and 30000/1001 frame rates. (#9384).

  • origin: added support for HLS Playlist Delta Updates, see HLS Playlist Delta Updates (#9376).

  • documentation: rewrite rules for HLS Media Playlist suggested in Example: Multi-level profile aliases for HLS playout now also work for server manifest names including an hyphen. (#9271).

  • documentation: rewrite rules for HLS Media Segments suggested in Example: Multi-level profile aliases for HLS playout now also work for WebVTT subitle tracks, when packaging with the --hls_fmp4 option. (#9270).

Virtual Channel

  • Fix consistent DASH adaptation set ID generation to incorporate all relevant properties (#272).

    • This means different adaptation set IDs compared to previous versions, which may cause DASH playback to fail when upgrading. If the player does not handle this gracefully, restarting the stream should resolve it.

  • Experimental Feature: Support frame accurate media conditioning using an external Media Processing Unit (#275)

  • Optimize database for performance, and add migration function to automatically upgrade older database versions (#268).

  • Improve housekeeping performance by bulk deleting transitions (#266).

  • Significantly improve performance for channels with many transitions (#264).

  • Only trigger transition check tasks for successful channels (#274).