Skip to content

Releases

v0.2.5-92e93d72-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 05 Nov 22:24
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Added

  • ersatztv-channel describe prints a JSON document describing the binary; its schema is schema/describe.json and it includes:
    • Version and commit
    • Playout and channel config schema versions it accepts
    • Output file names, segment and keyframe lengths
    • Video/audio formats, accels and subtitle modes the channel config accepts
    • Headers sent to dynamic source resolvers
  • ersatztv-channel describe --probe adds what this machine can do: the ffmpeg version and hwaccels, and for each accel on this platform whether it is available and which codecs and pixel formats it decodes and encodes in hardware
    • VAAPI is tried on every render node with each driver, to show which combinations work
    • Takes optional channel configs (partial is fine) to mark the configured accel, and --ffmpeg <path> to choose the ffmpeg build
  • Dynamic source requests send x-etv-playout-schema, the newest playout schema version the channel accepts (playout schema 0.0.8)

Changed

  • Require ErsatzTV-ffmpeg 8.1.2-4089c130-develop or later
  • A dynamic source response with an invalid probe_hint plays without its hints, as a playout file item does, instead of showing the fallback

Fixed

  • Vulkan: fix hardware decode being chosen for formats the driver can't decode, such as H.264 10-bit on Intel GPUs on Windows
    • Vulkan support is now checked the way ffmpeg checks it, including whether the driver has an image format for it
  • Vulkan: never select a CPU (llvmpipe) Vulkan device
  • Channel config errors name the field, e.g. normalization: missing field audio instead of missing field audio
  • Fix QSV streams failing about 10 s in with Can't allocate a surface or Failed to query an output frame on pre-Tiger Lake Intel GPUs (regression in 0.2.4)
  • Fix NVENC failing to start (Gop Length should be greater than number of B frames + 1) on very low frame rate sources, such as 1 fps slideshows
  • VAAPI: fix tonemap_opencl and pad_opencl never being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in the ErsatzTV-ffmpeg base docker image
  • Fix still-image watermarks disappearing partway through an item, or (QSV) the item ending early
    • This happened when the source's video parameters change mid-stream, such as spliced or smart-cut files
  • Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
  • Fix 4:2:2, 4:4:4 and 12-bit sources (such as ProRes, or HEVC/H.264 from cameras)
    • Hardware decode is no longer attempted; they are converted to 4:2:0 after deinterlacing and scaling
  • Fix one invalid playout item failing the whole playout file, so the channel showed failed to load playout JSON file for every item
    • An invalid item now shows the fallback (and error card, if fallback.show_error is on) for its own time only, naming the item and the invalid field
    • An item with an invalid probe_hint plays without its hints instead, with a warning in the log
    • An item without a readable id, start and finish is skipped, and its time is treated as a gap

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.8
  • ErsatzTV-ffmpeg: 8.1.2-4089c130-develop, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.4...92e93d7

v0.2.5-8cb37069-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 03 Nov 01:59
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Added

  • ersatztv-channel describe prints a JSON document describing the binary; its schema is schema/describe.json and it includes:
    • Version and commit
    • Playout and channel config schema versions it accepts
    • Output file names, segment and keyframe lengths
    • Video/audio formats, accels and subtitle modes the channel config accepts

Changed

  • Require ErsatzTV-ffmpeg 8.1.2-4089c130-develop or later

Fixed

  • Fix QSV streams failing about 10 s in with Can't allocate a surface or Failed to query an output frame on pre-Tiger Lake Intel GPUs (regression in 0.2.4)
  • Fix NVENC failing to start (Gop Length should be greater than number of B frames + 1) on very low frame rate sources, such as 1 fps slideshows
  • VAAPI: fix tonemap_opencl and pad_opencl never being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in the ErsatzTV-ffmpeg base docker image
  • Fix still-image watermarks disappearing partway through an item, or (QSV) the item ending early
    • This happened when the source's video parameters change mid-stream, such as spliced or smart-cut files
  • Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.7
  • ErsatzTV-ffmpeg: 8.1.2-4089c130-develop, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.4...8cb3706

v0.2.5-4af55f80-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 05 Nov 20:34
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Added

  • ersatztv-channel describe prints a JSON document describing the binary; its schema is schema/describe.json and it includes:
    • Version and commit
    • Playout and channel config schema versions it accepts
    • Output file names, segment and keyframe lengths
    • Video/audio formats, accels and subtitle modes the channel config accepts
    • Headers sent to dynamic source resolvers
  • ersatztv-channel describe --probe adds what this machine can do: the ffmpeg version and hwaccels, and for each accel on this platform whether it is available and which codecs and pixel formats it decodes and encodes in hardware
    • VAAPI is tried on every render node with each driver, to show which combinations work
    • Takes optional channel configs (partial is fine) to mark the configured accel, and --ffmpeg <path> to choose the ffmpeg build
  • Dynamic source requests send x-etv-playout-schema, the newest playout schema version the channel accepts (playout schema 0.0.8)

Changed

  • Require ErsatzTV-ffmpeg 8.1.2-4089c130-develop or later
  • A dynamic source response with an invalid probe_hint plays without its hints, as a playout file item does, instead of showing the fallback

Fixed

  • Channel config errors name the field, e.g. normalization: missing field audio instead of missing field audio
  • Fix QSV streams failing about 10 s in with Can't allocate a surface or Failed to query an output frame on pre-Tiger Lake Intel GPUs (regression in 0.2.4)
  • Fix NVENC failing to start (Gop Length should be greater than number of B frames + 1) on very low frame rate sources, such as 1 fps slideshows
  • VAAPI: fix tonemap_opencl and pad_opencl never being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in the ErsatzTV-ffmpeg base docker image
  • Fix still-image watermarks disappearing partway through an item, or (QSV) the item ending early
    • This happened when the source's video parameters change mid-stream, such as spliced or smart-cut files
  • Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
  • Fix 4:2:2, 4:4:4 and 12-bit sources (such as ProRes, or HEVC/H.264 from cameras)
    • Hardware decode is no longer attempted; they are converted to 4:2:0 after deinterlacing and scaling
  • Fix one invalid playout item failing the whole playout file, so the channel showed failed to load playout JSON file for every item
    • An invalid item now shows the fallback (and error card, if fallback.show_error is on) for its own time only, naming the item and the invalid field
    • An item with an invalid probe_hint plays without its hints instead, with a warning in the log
    • An item without a readable id, start and finish is skipped, and its time is treated as a gap

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.8
  • ErsatzTV-ffmpeg: 8.1.2-4089c130-develop, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.4...4af55f8

v0.2.5-3ca158e7-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 01 Nov 23:28
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Fixed

  • Fix QSV streams failing about 10 s in with Can't allocate a surface or Failed to query an output frame on pre-Tiger Lake Intel GPUs (regression in 0.2.4)
    • Requires ErsatzTV-ffmpeg 8.1.2-8115e89c-develop or later

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.7
  • ErsatzTV-ffmpeg: 8.1.2-8115e89c-develop, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.4...3ca158e

v0.2.5-2ec28d7b-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 05 Nov 12:50
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Added

  • ersatztv-channel describe prints a JSON document describing the binary; its schema is schema/describe.json and it includes:
    • Version and commit
    • Playout and channel config schema versions it accepts
    • Output file names, segment and keyframe lengths
    • Video/audio formats, accels and subtitle modes the channel config accepts

Changed

  • Require ErsatzTV-ffmpeg 8.1.2-4089c130-develop or later

Fixed

  • Fix QSV streams failing about 10 s in with Can't allocate a surface or Failed to query an output frame on pre-Tiger Lake Intel GPUs (regression in 0.2.4)
  • Fix NVENC failing to start (Gop Length should be greater than number of B frames + 1) on very low frame rate sources, such as 1 fps slideshows
  • VAAPI: fix tonemap_opencl and pad_opencl never being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in the ErsatzTV-ffmpeg base docker image
  • Fix still-image watermarks disappearing partway through an item, or (QSV) the item ending early
    • This happened when the source's video parameters change mid-stream, such as spliced or smart-cut files
  • Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
  • Fix 4:2:2, 4:4:4 and 12-bit sources (such as ProRes, or HEVC/H.264 from cameras)
    • Hardware decode is no longer attempted; they are converted to 4:2:0 after deinterlacing and scaling
  • Fix one invalid playout item failing the whole playout file, so the channel showed failed to load playout JSON file for every item
    • An invalid item now shows the fallback (and error card, if fallback.show_error is on) for its own time only, naming the item and the invalid field
    • An item with an invalid probe_hint plays without its hints instead, with a warning in the log
    • An item without a readable id, start and finish is skipped, and its time is treated as a gap

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.7
  • ErsatzTV-ffmpeg: 8.1.2-4089c130-develop, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.4...2ec28d7

v0.2.5-28bcbf7d-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 03 Nov 16:42
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Added

  • ersatztv-channel describe prints a JSON document describing the binary; its schema is schema/describe.json and it includes:
    • Version and commit
    • Playout and channel config schema versions it accepts
    • Output file names, segment and keyframe lengths
    • Video/audio formats, accels and subtitle modes the channel config accepts

Changed

  • Require ErsatzTV-ffmpeg 8.1.2-4089c130-develop or later

Fixed

  • Fix QSV streams failing about 10 s in with Can't allocate a surface or Failed to query an output frame on pre-Tiger Lake Intel GPUs (regression in 0.2.4)
  • Fix NVENC failing to start (Gop Length should be greater than number of B frames + 1) on very low frame rate sources, such as 1 fps slideshows
  • VAAPI: fix tonemap_opencl and pad_opencl never being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in the ErsatzTV-ffmpeg base docker image
  • Fix still-image watermarks disappearing partway through an item, or (QSV) the item ending early
    • This happened when the source's video parameters change mid-stream, such as spliced or smart-cut files
  • Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
  • Fix 4:2:2, 4:4:4 and 12-bit sources (such as ProRes, or HEVC/H.264 from cameras)
    • Hardware decode is no longer attempted; they are converted to 4:2:0 after deinterlacing and scaling

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.7
  • ErsatzTV-ffmpeg: 8.1.2-4089c130-develop, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.4...28bcbf7

v0.2.5-03c05228-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 02 Nov 02:25
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Fixed

  • Fix QSV streams failing about 10 s in with Can't allocate a surface or Failed to query an output frame on pre-Tiger Lake Intel GPUs (regression in 0.2.4)
    • Requires ErsatzTV-ffmpeg 8.1.2-8115e89c-develop or later
  • Fix NVENC failing to start (Gop Length should be greater than number of B frames + 1) on very low frame rate sources, such as 1 fps slideshows
  • VAAPI: fix tonemap_opencl and pad_opencl never being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in the ErsatzTV-ffmpeg base docker image

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.7
  • ErsatzTV-ffmpeg: 8.1.2-8115e89c-develop, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.4...03c0522

v0.2.5-02a2f12d-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 06 Nov 17:54
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Added

  • ersatztv-channel describe prints a JSON document describing the binary; its schema is schema/describe.json and it includes:
    • Version and commit
    • Playout and channel config schema versions it accepts
    • Output file names, segment and keyframe lengths
    • Video/audio formats, accels and subtitle modes the channel config accepts
    • Headers sent to dynamic source resolvers
  • ersatztv-channel describe --probe adds what this machine can do: the ffmpeg version and hwaccels, and for each accel on this platform whether it is available and which codecs and pixel formats it decodes and encodes in hardware
    • VAAPI is tried on every render node with each driver, to show which combinations work
    • Takes optional channel configs (partial is fine) to mark the configured accel, and --ffmpeg <path> to choose the ffmpeg build
  • Dynamic source requests send x-etv-playout-schema, the newest playout schema version the channel accepts (playout schema 0.0.8)

Changed

  • Require ErsatzTV-ffmpeg 8.1.2-8
  • A dynamic source response with an invalid probe_hint plays without its hints, as a playout file item does, instead of showing the fallback

Fixed

  • Vulkan: fix hardware decode being chosen for formats the driver can't decode, such as H.264 10-bit on Intel GPUs on Windows
    • Vulkan support is now checked the way ffmpeg checks it, including whether the driver has an image format for it
  • Vulkan: never select a CPU (llvmpipe) Vulkan device
  • Channel config errors name the field, e.g. normalization: missing field audio instead of missing field audio
  • Fix QSV streams failing about 10 s in with Can't allocate a surface or Failed to query an output frame on pre-Tiger Lake Intel GPUs (regression in 0.2.4)
  • Fix NVENC failing to start (Gop Length should be greater than number of B frames + 1) on very low frame rate sources, such as 1 fps slideshows
  • VAAPI: fix tonemap_opencl and pad_opencl never being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in the ErsatzTV-ffmpeg base docker image
  • Fix still-image watermarks disappearing partway through an item, or (QSV) the item ending early
    • This happened when the source's video parameters change mid-stream, such as spliced or smart-cut files
  • Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
  • Fix 4:2:2, 4:4:4 and 12-bit sources (such as ProRes, or HEVC/H.264 from cameras)
    • Hardware decode is no longer attempted; they are converted to 4:2:0 after deinterlacing and scaling
  • Fix one invalid playout item failing the whole playout file, so the channel showed failed to load playout JSON file for every item
    • An invalid item now shows the fallback (and error card, if fallback.show_error is on) for its own time only, naming the item and the invalid field
    • An item with an invalid probe_hint plays without its hints instead, with a warning in the log
    • An item without a readable id, start and finish is skipped, and its time is treated as a gap

Known issues

  • VAAPI on Intel Meteor Lake and Arrow Lake with the free intel-media-va-driver package (Debian, Ubuntu): channels with a watermark run far below realtime
    • Install intel-media-va-driver-non-free, or set ffmpeg.disabled_filters to ["overlay_vaapi"] in the channel config
    • The docker image is not affected

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.8
  • ErsatzTV-ffmpeg: 8.1.2-8, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.4...02a2f12

v0.2.4-c4b1e5b8-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 25 Oct 02:05
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Added

  • VAAPI: tonemap with libplacebo when a Vulkan device on the same GPU is available
    • libplacebo is preferred over tonemap_opencl and tonemap_vaapi, and shows Dolby Vision profile 5 with correct colors
    • Padding right after the tonemap is drawn by libplacebo in the same pass instead of by a separate (or, on AMD, software) pad
    • Requires ErsatzTV-ffmpeg 8.1.2-6
  • Channel config 0.1.3:
    • normalization.video.vaapi_low_power (auto or never, default auto)
    • fallback.background_image, a still image shown instead of black when there is nothing to play or an item fails
      • Black is used for the rest of the session if the image fails to play

Changed

  • VAAPI: encode HEVC with the low-power entrypoint when the GPU also has the default entrypoint and low-power supports bitrate rate control
    • Set normalization.video.vaapi_low_power to never to keep the previous behavior

Fixed

  • Fix VAAPI stream failing to start on AMD when an OpenCL runtime (e.g. NVIDIA, rusticl) is installed
    • pad_opencl and tonemap_opencl are now only used with an Intel VAAPI driver and an OpenCL device that supports cl_intel_va_api_media_sharing

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.7
  • ErsatzTV-ffmpeg: 8.1.2-6, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.3...c4b1e5b

v0.2.4-8a2e0408-develop

Choose a tag to compare

@ersatztv-releaser ersatztv-releaser released this 30 Oct 18:16
Immutable release. Only release title and notes can be modified.
8d9aca2

Release Notes

Added

  • VAAPI: tonemap with libplacebo when a Vulkan device on the same GPU is available
    • libplacebo is preferred over tonemap_opencl and tonemap_vaapi, and shows Dolby Vision profile 5 with correct colors
    • Padding right after the tonemap is drawn by libplacebo in the same pass instead of by a separate (or, on AMD, software) pad
    • Requires ErsatzTV-ffmpeg 8.1.2-6
  • Channel config 0.1.3:
    • normalization.video.vaapi_low_power (auto or never, default auto)
    • fallback.background_image, a still image shown instead of black when there is nothing to play or an item fails
      • Black is used for the rest of the session if the image fails to play
  • /channels.m3u includes each channel's number as tvg-chno and channel-number
    • Clients that number channels from the playlist (e.g. Channels DVR) no longer assign their own numbers

Changed

  • VAAPI: encode HEVC with the low-power entrypoint when the GPU also has the default entrypoint and low-power supports bitrate rate control
    • Set normalization.video.vaapi_low_power to never to keep the previous behavior
  • AMF: decode MPEG-2 in software
    • Software decode is as fast or faster than AMF's MPEG-2 decoder, and avoids a hang on older (Polaris) GPUs

Fixed

  • Fix output being tagged with the source's non-square sample aspect ratio when the probe hint reports square pixels at the output size
    • Players showed the whole stream, watermark included, at the wrong aspect ratio (e.g. 16:9 squished to 4:3)
  • Fix burning the wrong embedded text subtitle when a file has more than one subtitle stream
    • The first subtitle stream in the file was burned regardless of the selected stream index
  • Fix VAAPI stream failing to start on AMD when an OpenCL runtime (e.g. NVIDIA, rusticl) is installed
    • pad_opencl and tonemap_opencl are now only used with an Intel VAAPI driver and an OpenCL device that supports cl_intel_va_api_media_sharing
  • Fix QSV stream failing to start on Linux when the VPL runtime reports a decoder the VA driver has disabled (e.g. VC-1 and VP8 on Arc)
    • Those formats are now decoded in software
  • Fix brief heavy blocking in VAAPI H.264 output with the i965 driver after static scenes
    • H.264 encodes on i965 now use a minimum QP of 24
  • Fix QSV stream failing with Can't allocate a surface on pre-Tiger Lake Intel GPUs for files that store audio far behind video (e.g. some WMV)
  • Fix QSV VC-1 streams failing or hanging on Windows with pre-Tiger Lake Intel GPUs (e.g. Haswell, Kaby Lake)
    • VC-1 is now decoded in software on those GPUs
  • Fix QSV MPEG-2 streams starting very slowly or failing to start in time due to improper segmentation
  • Fix AMF streams starting very slowly or failing to start in time due to improper segmentation
  • Fix AMF streams hanging with loudness normalization when video is not scaled or converted on the GPU

Compatibility

  • Channel config: reads versions 0.1.0 to 0.1.3
  • Lineup config: reads versions 0.0.0 to 0.0.1
  • Playout: reads versions 0.0.0 to 0.0.7
  • ErsatzTV-ffmpeg: 8.1.2-411d3241-develop, bundled in the docker images and recommended for the native binaries

Full changes: ErsatzTV/next@v0.2.3...8a2e040