Release notes version 1.14.*

Version 1.14.4 (2024-09-23) GA

  • origin: if a base URL is specified for HLS, keep the 'absolute' part of the virtual path for 'keyframes' request (#9366).

  • libfmp4: keep embedded captions signaling in "kind" box when creating a progressive mp4 file (#9364).

  • live: added number_timeline as an option for MPEG DASH manifests to use $Number$ template with a SegmentTimeline element instead of a @duration attribute (#9363).

  • remix: use timescale of video tracks for text tracks (#9361).

Version 1.14.3 (2024-08-29)

  • mp4split, unified_remix, unified_capture, unified_transcode: replace the --auto, --hw, --sw and --thumbnail_quality command line options by attribute settings in the transcoders file. See here.

  • origin: fixed downloading of a progressive subclip with vbegin/vend specified (introduced in 1.13.2). The clip points are now also aligned first with the video sync-frames, giving better audio alignment (#9357).

  • live: purge media segments from the the archive every time a new media segment is ingested. Now we purge only a few media segments instead of purging many media segments once every archive_segment_length.

  • live: set max-age-ms to zero when it becomes negative (#9277).

  • libfmp4: handle incorrectly ordered out/in splice_insert() cues (#9344).

  • libfmp4: limit the maximum movie timescale to 10MHz (#9354).

  • hls: signal the duration of EXT-X-GAP to keep the timeline continuous (#9351).

  • origin: no longer log abrupt client connection terminations as an error with HTTP status code 500, but as an info message with (unofficial) HTTP status 499, similar to nginx's 499 Client Closed Request.

  • origin: prefer to set the system bitrate in the database from an incoming uuid LiveServerManifestBox, if it is available, over the system bitrate from a following moov box. Fixes regression from 1.14.1 (#9355).

  • mp4split: fixed "Invalid data found when processing input" issue when using the FFmpeg plugins to decode an AVC bitstream with multiple PPSes (#9360).

  • origin: fixed ingest/egress performance degradation over time with long running POST requests (#9356).

  • origin: bumped level of "took N seconds" messages to 'info'. This makes it easy to gather ingest statistics: change the VirtualHost's LogLevel from the default 'warn' to 'info'. (Note that the message will still be logged at 'warn' level when the threshold is exceeded, so that behavior is unchanged.)

Version 1.14.2 (2024-06-21) GA

  • mp4split: fixed regression (introduced in 1.14.1) when creating dref-ed files from MP4 files larger than 4GB (#9352).

  • apache: added experimental max-age millisecond accurate cache control header (USP-Cache-Control) (#9277).

  • fixed: support reading ContentProtectionData in CPIX when both a "pssh" and "vodrm" element is present (#9345).

  • added: CMSD-Static header with "at" and "ept" values.

  • added: Alpine Linux 3.20, removed: Alpine Linux 3.18.

  • soon to be discontinued: Debian 12.

  • manifest-edit: added --verbose_manifest option to reduce verbosity by deactivating full pipeline configuration dump in manifest comments.

  • mp4split: added explicit error messages when a AV1 Codec Configuration Box does not have exactly one Sequence Header OBU, as required by AV1-ISOBMFF (#9346).

Version 1.14.1 (2024-05-22)

  • fixed specifying suppress_query_parameters as a query parameter (#9342).

  • added support for Ubuntu Linux 24.04 LTS.

Version 1.14.0 (2024-04-25)

  • live: allow $Bandwidth$ in segment templates of Ingest-MPD (#9091).

  • live: calculate the live edge using all the streams (instead of just the streams of one switching set) (#9337) (#9338) and (#9340).

  • libfmp4: fixed XMLMetaDataSampleEntry bitrate signalling (#9341).

  • Updated FFmpeg to 7.0.

Windows

  • Changed installation instructions, installation directory layout, and manifest_edit deployment for Windows. See this document.

Virtual Channel

  • Fix inefficiencies in channel and transition delete API (#258).