Repository navigation
v0.2.1
Immutable
release. Only release title and notes can be modified.
Release Notes
Added
- Channel config version
0.1.2addsnormalization.video.filters.scale.flagsto choose the software scaling algorithm (e.g.bicubic,lanczos,fast_bilinear)- Applies to the main picture, graphics and image subtitles wherever software scaling runs
- Playout version
0.0.6addsretry_budget_msandretry_backoff_mstodynamicsources, to retry a failed request with backoff- Transport errors, timeouts and 5xx responses are retried; 4xx responses and an invalid body are not
- Retry is off when
retry_budget_msis absent or0
- Channel config version
0.1.2addsfallback.duration_secondsto set how long the fallback plays before the channel tries again (default 60)- After a failed
dynamicsource, the fallback lasts at least the source'sretry_budget_ms
- After a failed
Changed
- Software scaling now defaults to
bicubicinstead offast_bilinear, which reduces aliasing when downscaling- Set
normalization.video.filters.scale.flagstofast_bilinearto keep the previous output
- Set
ersatztv-channelnow logs throughtracingand includes the channel number (channel{number=7}) in all messages- Set
ETV_LOG_FORMAT=jsonfor one JSON object per line with the channel number inspan.number
- Set
Fixed
- 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
- Fix CUDA streams failing with a watermark in
yuva420p(e.g. lossy WebP with transparency) and opacity below 100% - Fix CUDA streams with a watermark failing when encoding with software (e.g.
mpeg2video) - Fix VideoToolbox
h264streams failing on content with embedded (A53) closed captions - Fix VAAPI
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
- Reject
normalization.video.filtersoptions that contain filter graph syntax when the channel config loads, instead of failing every item - Fix
cropscaling mode cropping a zoomed-in window from content that is at least as large as the output (e.g. 4K on a 1080p channel) instead of scaling it to cover the output first- Anamorphic content is also converted to square pixels before the crop
- Play silence for sources without an audio stream, instead of the fallback for the whole item
- Applies to every source kind, and to a probe hint with no audio streams
ersatztv-channelnow stops after 90 seconds without a client even when.heartbeatwas never created, and counts from when the channel became ready- Previously a worker spawned directly (not by
ersatztv) whose client never requested a segment transcoded forever - Troubleshooting runs no longer stop on a stale
.heartbeat
- Previously a worker spawned directly (not by
- Disk errors in
ersatztv-channelnow name what failed and which file, instead of all readingunable to load channel config (io)- e.g.
failed to scan the segment folder .../5: No such file or directory - A missing playout folder is no longer reported as a channel config problem
- e.g.
- No longer fail to black when an old segment that
ersatztv-channelwas trimming was already deleted from disk - Fix green output with legacy Intel QSV encoders
Compatibility
- Channel config: reads versions
0.1.0to0.1.2 - Lineup config: reads versions
0.0.0to0.0.1 - Playout: reads versions
0.0.0to0.0.6 - ErsatzTV-ffmpeg:
8.1.2-4, bundled in the docker images and recommended for the native binaries