Repository navigation
Releases
v26.13.0-e51ac60c-develop
Release Notes
Fixed
- Fix classic schedule duration items with
Discard To Fill Attemptsrunning past their duration and skipping later schedule items once the attempts are used up
ErsatzTV Next: v0.2.5
Full changes: ErsatzTV/legacy@v26.12.0...e51ac60
v26.12.0-fbb3685b-develop
Release Notes
Changed
- Use an ErsatzTV-ffmpeg develop build (
8.1.2-4089c130-develop, newer than8.1.2-7) in docker images, Windows packages and macOS packages- Fix QSV streams failing about 10 seconds in with
Can't allocate a surfaceorFailed to query an output frameon pre-Tiger Lake Intel GPUs (regression in 26.11.6) - Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
- Fix QSV streams failing about 10 seconds in with
Removed
- Remove the legacy streaming engine; all channels now stream with the next engine
- Channels still using the legacy engine are moved to the next engine on startup
MPEG-TS (Legacy)channels are moved toMPEG-TS, andHLS Directchannels are moved toHLS Segmenter- Existing
ts-legacyandhls-directplaylist and lineup URLs are redirected to the next engine - Playback troubleshooting can still use the legacy engine for comparison; if a channel works on legacy but not on next, please report it with the ID from
Upload Results
Fixed
- Next engine:
- 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_openclandpad_openclnever being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in docker - 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 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 changes to watermarks, decos, etc. not reaching channels until the next hourly playout build
- Reduce disk writes when syncing playouts; unchanged days are no longer rewritten every hour
- Fix NVENC failing to start (
ErsatzTV Next: v0.2.5-28bcbf7d-develop
Full changes: ErsatzTV/legacy@v26.11.6...fbb3685
v26.12.0-fb542e55-develop
Release Notes
Changed
- Use an ErsatzTV-ffmpeg develop build (
8.1.2-4089c130-develop, newer than8.1.2-7) in docker images, Windows packages and macOS packages- Fix QSV streams failing about 10 seconds in with
Can't allocate a surfaceorFailed to query an output frameon pre-Tiger Lake Intel GPUs (regression in 26.11.6) - Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
- Fix QSV streams failing about 10 seconds in with
Removed
- Remove the legacy streaming engine; all channels now stream with the next engine
- Channels still using the legacy engine are moved to the next engine on startup
MPEG-TS (Legacy)channels are moved toMPEG-TS, andHLS Directchannels are moved toHLS Segmenter- Existing
ts-legacyandhls-directplaylist and lineup URLs are redirected to the next engine - Playback troubleshooting can still use the legacy engine for comparison; if a channel works on legacy but not on next, please report it with the ID from
Upload Results
Fixed
- Next engine:
- 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_openclandpad_openclnever being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in docker - 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 NVENC failing to start (
ErsatzTV Next: v0.2.5-8cb37069-develop
Full changes: ErsatzTV/legacy@v26.11.6...fb542e5
v26.12.0-fb247350-develop
Release Notes
Changed
- Next engine:
- Watermark-only graphics canvases render just the area the watermarks cover instead of the full frame
- This reduces CPU use and GPU upload for animated or opacity-expression watermarks
- This is currently limited to local watermarks; remote/URL watermarks will still send the full frame
- Watermark-only graphics canvases render just the area the watermarks cover instead of the full frame
Fixed
- Next engine:
- Fix active channels falling behind schedule when the playout is updated
- Fix image subtitles (e.g. PGS) missing or misplaced with hardware acceleration when the subtitle size differs from the video size (e.g. cropped video)
ErsatzTV Next: v0.2.3-28632bc8-develop
Full changes: ErsatzTV/legacy@v26.11.3...fb24735
v26.12.0-fb0e2bc1-develop
Release Notes
Added
- Add
Upload Resultsbutton to playback troubleshooting- Results are encrypted on your ErsatzTV server so only the ErsatzTV maintainer can read them
- The upload returns an ID (e.g.
etv-xxxx-xxxxxx) to paste into a GitHub issue or Discord thread - Uploads are deleted from the upload server after 7 days
Download Resultsstill works when ErsatzTV can't reach the upload server
- Detect DolbyVision content from media server libraries
- This enables the next engine to use the appropriate tonemapping filter
Changed
- Next engine:
- Watermark-only graphics canvases render just the area the watermarks cover instead of the full frame
- This reduces CPU use and GPU upload for animated or opacity-expression watermarks
- This is currently limited to local watermarks; remote/URL watermarks will still send the full frame
- Watermark-only graphics canvases render just the area the watermarks cover instead of the full frame
- Use ErsatzTV-ffmpeg
8.1.2-5in docker images, Windows packages and macOS packages- Fix transcoding speed drop when burning in image subtitles, especially with TrueHD audio
- Fix macOS VideoToolbox encoding failure when video contains A53 closed captions
- Add RKMPP accel support to arm64 docker image and native package; Jellyfin ffmpeg is no longer required
Fixed
- Next engine:
- Fix active channels falling behind schedule when the playout is updated
- Fix image subtitles (e.g. PGS) missing or misplaced with hardware acceleration when the subtitle size differs from the video size (e.g. cropped video)
- Fix QSV stream failing when no Intel device is found; the channel now uses a software pipeline
- Fix QSV green padding on Windows with certain HDR content
- Fix slow transcoding of high-resolution video with PGS subtitles until the first subtitle appears
- Fix RKMPP stream failing with loudness normalization
- Fix Jellyfin external audio files being added as audio streams with negative indexes
- These broke playback of the whole playout file with the next engine (
expected u32) - Affected Jellyfin movies and episodes will be rescanned automatically
- These broke playback of the whole playout file with the next engine (
- Fix channel troubleshooting
Playbutton being disabled with no explanation- Date and time now defaults to the current time and shows an error when it can't be parsed
- Fix some extracted ASS subtitles never being displayed
- Affected subtitles that were already extracted will be repaired automatically on startup
ErsatzTV Next: v0.2.3-74253c2c-develop
Full changes: ErsatzTV/legacy@v26.11.3...fb0e2bc
v26.12.0-f5b5e9aa-develop
Release Notes
Changed
- Graphics engine: decode image and watermark elements with SkiaSharp instead of ImageSharp
- TIFF, TGA, PBM and QOI images are no longer supported
- Next engine:
- Software scaling now defaults to
bicubicinstead offast_bilinear, which reduces aliasing when downscaling- This can be changed using
normalization.video.filters.scale.flagsin a channel config overlay
- This can be changed using
- Log messages from next channels now include the channel number, e.g.
[next::channel 7]
- Software scaling now defaults to
- Warn that the legacy streaming engine will be removed in ErsatzTV 26.12
- The Channels page lists channels that still use the legacy engine
- The channel editor shows a warning when the legacy engine is selected
- Starting a legacy engine stream logs a warning
Fixed
- Fix sequential schedules silently skipping nested
sequenceinstructions inside pre-roll, mid-roll and post-roll sequences - Fix local show libraries ignoring episode NFO tag and genre changes after the first scan
- Fix playback from Jellyfin-compatible servers (e.g. Silo) that require authentication for media streams
- The Jellyfin API key is now included on stream and subtitle requests
- Jellyfin itself does not require it but continues to play successfully with the API key included
- Next engine:
- Linux/macOS: fix channels failing to locate playout items after the config folder is copied or restored with a tool that replaces symlinks with real folders (e.g.
cp -L,rsync -L)- Failures to link the current playout folder are now logged instead of silently ignored
- VAAPI: fix playback freezing at the end of some items on channels with an
Intermittentwatermark- Most common with music videos, whose audio often runs slightly longer than their video
- The log showed
channel ... terminated after ffmpeg stall
- VAAPI: fix
hevcstreams hanging on content with embedded (A53) closed captions with Mesa before 26.2.3- Captions are left out of
hevcoutput on those Mesa versions; update Mesa to keep them
- Captions are left out of
- Always encode 4:2:0 output, which many clients require
- Still images and song backgrounds were previously encoded as 4:4:4 by software encoders
- NVIDIA: fix streams failing with a watermark in
yuva420p(e.g. lossy WebP with transparency) and opacity below 100% - NVIDIA: fix streams with a watermark failing when encoding with software (e.g.
mpeg2video) - VideoToolbox: fix streams failing to encode to h264 when they contain embedded (A53) closed captions
- QSV: fix completely green output with legacy Intel encoders
- Fix fallback filler playback with filler content that has no audio
- Fix
cropscaling mode so it always scales to cover the output before cropping, even when the source content is larger than the target resolution
- Linux/macOS: fix channels failing to locate playout items after the config folder is copied or restored with a tool that replaces symlinks with real folders (e.g.
- Fix errors logged when quickly navigating to search results
- The log showed
Navigation failed when changing the location to search?query=... - Searches from the search bar and smart collection targets no longer reload the whole page
- The log showed
ErsatzTV Next: v0.2.1-73a72616-develop
Full changes: ErsatzTV/legacy@v26.11.1...f5b5e9a
v26.12.0-eadb613b-develop
Release Notes
Changed
- Use an ErsatzTV-ffmpeg develop build (
8.1.2-4089c130-develop, newer than8.1.2-7) in docker images, Windows packages and macOS packages- Fix QSV streams failing about 10 seconds in with
Can't allocate a surfaceorFailed to query an output frameon pre-Tiger Lake Intel GPUs (regression in 26.11.6) - Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
- Fix QSV streams failing about 10 seconds in with
Removed
- Remove the legacy streaming engine; all channels now stream with the next engine
- Channels still using the legacy engine are moved to the next engine on startup
MPEG-TS (Legacy)channels are moved toMPEG-TS, andHLS Directchannels are moved toHLS Segmenter- Existing
ts-legacyandhls-directplaylist and lineup URLs are redirected to the next engine - Playback troubleshooting can still use the legacy engine for comparison; if a channel works on legacy but not on next, please report it with the ID from
Upload Results
Fixed
- Next engine:
- 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_openclandpad_openclnever being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in docker - 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 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 changes to watermarks, decos, etc. not reaching channels until the next hourly playout build
- Reduce disk writes when syncing playouts; unchanged days are no longer rewritten every hour
- Fix channels failing with
failed to load playout JSON file: missing field codec- This happens when the playout includes a file with a stream ffprobe can't identify (e.g. spatial audio in some phone videos)
- Fix one invalid playout item failing the whole playout file, so the channel showed
failed to load playout JSON filefor every item- An invalid item now shows the fallback for its own time only, naming the item and the invalid field
- Fix NVENC failing to start (
ErsatzTV Next: v0.2.5-2ec28d7b-develop
Full changes: ErsatzTV/legacy@v26.11.6...eadb613
v26.12.0-e17cfe84-develop
Release Notes
Changed
- Graphics engine: decode image and watermark elements with SkiaSharp instead of ImageSharp
- TIFF, TGA, PBM and QOI images are no longer supported
- Next engine:
- Software scaling now defaults to
bicubicinstead offast_bilinear, which reduces aliasing when downscaling- This can be changed using
normalization.video.filters.scale.flagsin a channel config overlay
- This can be changed using
- Software scaling now defaults to
Fixed
- Next engine:
- Linux/macOS: fix channels failing to locate playout items after the config folder is copied or restored with a tool that replaces symlinks with real folders (e.g.
cp -L,rsync -L)- Failures to link the current playout folder are now logged instead of silently ignored
- VAAPI: fix playback freezing at the end of some items on channels with an
Intermittentwatermark- Most common with music videos, whose audio often runs slightly longer than their video
- The log showed
channel ... terminated after ffmpeg stall
- Always encode 4:2:0 output, which many clients require
- Still images and song backgrounds were previously encoded as 4:4:4 by software encoders
- NVIDIA: fix streams failing with a watermark in
yuva420p(e.g. lossy WebP with transparency) and opacity below 100% - NVIDIA: fix streams with a watermark failing when encoding with software (e.g.
mpeg2video) - VideoToolbox: fix streams failing to encode to h264 when they contain embedded (A53) closed captions
- Fix fallback filler playback with filler content that has no audio
- Linux/macOS: fix channels failing to locate playout items after the config folder is copied or restored with a tool that replaces symlinks with real folders (e.g.
ErsatzTV Next: v0.2.1-fd86a84a-develop
Full changes: ErsatzTV/legacy@v26.11.1...e17cfe8
v26.12.0-de40b158-develop
Release Notes
Changed
- Use ErsatzTV-ffmpeg
8.1.2-8in docker images, Windows packages and macOS packages- Fix QSV streams failing about 10 seconds in with
Can't allocate a surfaceorFailed to query an output frameon pre-Tiger Lake Intel GPUs (regression in 26.11.6) - Fix QSV, VAAPI and CUDA items failing when the source's color tags change mid-stream
- Fix QSV streams failing about 10 seconds in with
- Troubleshooting: replace the separate accel-specific tabs with one
Hardwaretab showing what the next engine can use on the machine- Each accel shows whether it works, why not, and what it can decode and encode
- FFmpeg profile editor:
- Show when the selected accel, device and driver won't work on the machine
- Show when the format and bit depth will encode in software given the selected accel
- Merge the
Hardware AccelerationandVAAPI Driverhealth checks into one check, based on what the next engine can use on the machine
Removed
- Remove the legacy streaming engine; all channels now stream with the next engine
- Channels still using the legacy engine are moved to the next engine on startup
MPEG-TS (Legacy)channels are moved toMPEG-TS, andHLS Directchannels are moved toHLS Segmenter- Existing
ts-legacyandhls-directplaylist and lineup URLs are redirected to the next engine - Playback troubleshooting can still use the legacy engine for comparison; if a channel works on legacy but not on next, please report it with the ID from
Upload Results
Fixed
- Next engine:
- 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_openclandpad_openclnever being used on Intel GPUs when only the OpenCL runtime (libOpenCL.so.1) is installed, such as in docker - 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: never select a CPU (llvmpipe) Vulkan device
- 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 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 changes to watermarks, decos, etc. not reaching channels until the next hourly playout build
- Reduce disk writes when syncing playouts; unchanged days are no longer rewritten every hour
- Fix channels failing with
failed to load playout JSON file: missing field codec- This happens when the playout includes a file with a stream ffprobe can't identify (e.g. spatial audio in some phone videos)
- Fix one invalid playout item failing the whole playout file, so the channel showed
failed to load playout JSON filefor every item- An invalid item now shows the fallback for its own time only, naming the item and the invalid field
- Fix fallback filler showing the previous clip's subtitles, or the fallback error screen for the rest of a gap after one clip ended early
- Fix NVENC failing to start (
Known issues
- VAAPI on Intel Meteor Lake and Arrow Lake with the free
intel-media-va-driverpackage (Debian, Ubuntu): channels with a watermark run far below realtime- Install
intel-media-va-driver-non-free, or add"ffmpeg": { "disabled_filters": ["overlay_vaapi"] }to a channel config overlay in ErsatzTV's config folder /next/channel-config-overlays(default.jsonfor all channels, or{number}.jsonfor one channel) - The docker image is not affected
- Install
ErsatzTV Next: v0.2.5
Full changes: ErsatzTV/legacy@v26.11.6...de40b15
v26.12.0-de2f6043-develop
Release Notes
Fixed
- Fix startup crash
The system cannot open the device or file specifiedwhen running as a non-root user or with a read-only root filesystem- This was caused by a .NET runtime security update that changed where single-instance checks are stored
- ErsatzTV now uses a lock file in the config folder, which also prevents multiple instances (e.g. two docker containers) from sharing the same config folder
ErsatzTV Next: v0.2.3
Full changes: ErsatzTV/legacy@v26.11.4...de2f604