ErsatzTV

Stream custom live channels using your own media

ZLIB License

Stars
1.2K

Bot releases are hidden (Show)

ErsatzTV - v0.4.2-alpha

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Add improved but experimental transcoder logic, which can be toggled on and off in Settings
  • Fix HLS Segmenter bug when source video packet contains no duration (N/A)
  • Fix green line at the bottom of some content scaled using QSV acceleration

Added

  • Add configurable channel group (M3U) and categories (XMLTV)
  • Add Shuffle Schedule Items option to schedule configuration
    • When this is enabled, schedule items will be shuffled rather than looped in order
    • To support this, all playouts will be rebuilt (one time) after upgrading to this version

Changed

  • Disable framerate normalization by default and on all ffmpeg profiles
    • If framerate normalization is desired (not typically needed), it can be re-enabled manually
  • Show watermarks over songs
  • Hide unused local libraries
ErsatzTV - v0.4.1-alpha

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Normalize smart quotes in search queries as they are unsupported by the search library
  • Fix incorrect watermark time calculations caused by working ahead in HLS Segmenter
  • Fix ui crash adding empty path to local library
  • Fix ui crash loading collection editor
  • Properly flag items as File Not Found when local library path (folder) is missing from disk
  • Fix playback bug with unknown pixel format
  • Fix playback of interlaced mpeg2video on NVIDIA, VAAPI

Added

  • Include Series category tag for all episodes in XMLTV
  • Include movie, episode (show), music video (artist) genres as category tags in XMLTV
  • Add framerate normalization to HLS Segmenter and MPEG-TS streaming modes
  • Add HLS Segmenter Initial Segment Count setting to allow segmenter to work ahead before allowing client playback

Changed

  • Intermittent watermarks will now fade in and out
  • Show collection name in some playout build error messages
  • Use hardware-accelerated filter for watermarks on NVIDIA
  • Use hardware-accelerated deinterlace for some content on NVIDIA
ErsatzTV - v0.4.0-alpha

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix m3u mode query param to properly override streaming mode for all channels
    • segmenter for HLS Segmenter
    • hls-direct for HLS Direct
    • ts for MPEG-TS
    • ts-legacy for MPEG-TS (Legacy)
    • omitting the mode parameter returns each channel as configured
  • Link File Not Found health check to Trash page to allow deletion
  • Fix HLS Segmenter streaming mode with multiple ffmpeg-based clients
    • Jellyfin (web) and TiviMate (Android) were specifically tested

Added

  • Hide console window on macOS and Windows; tray menu can be used to access UI, logs and to stop the app
  • Also write logs to text files in the logs config subfolder
  • Add added_date to search index
    • This requires rebuilding the search index and search results may be empty or incomplete until the rebuild is complete
  • Add added_inthelast, added_notinthelast search field for relative added date queries
    • Syntax is a number and a unit (days, weeks, months, years) like 1 week or 2 years
ErsatzTV - v0.3.8-alpha

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix issue preventing some versions of ffmpeg (usually 4.4.x) from streaming MPEG-TS (Legacy) channels at all
    • The issue appears to be caused by using a thread count other than 1
    • Thread count is now forced to 1 for all streaming modes other than HLS Segmenter
  • Fix bug with HLS Segmenter in cultures where . is a group/thousands separator
  • Fix search results page crashing with some media kinds
  • Always use MPEG-TS or MPEG-TS (Legacy) streaming mode with HDHR (Plex)
    • Other configured modes will fall back to MPEG-TS when accessed by Plex

Changed

  • Upgrade ffmpeg from 4.4 to 5.0 in all docker images
    • Upgrading from 4.4 to 5.0 is recommended for all installations
ErsatzTV - develop

Published by jasongdove over 2 years ago

This release contains the latest "unreleased" code that has been merged to the main branch, or the equivalent of the docker develop tags.

Release notes can be found at https://github.com/jasongdove/ErsatzTV/blob/main/CHANGELOG.md#unreleased

ErsatzTV - v0.3.7-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix local folder scanners to properly detect removed/re-added folders with unchanged contents
  • Fix double-click startup on mac
  • Fix trakt list sync when show does not contain a year
  • Properly unlock libraries when a scan is unable to be performed because ffmpeg or ffprobe have not been found

Added

  • Add trash system for local libraries to maintain collection and schedule integrity through media share outages
    • When items are missing from disk, they will be flagged and present in the Media > Trash page
    • The trash page can be used to permanently remove missing items from the database
    • When items reappear at the expected location on disk, they will be unflagged and removed from the trash
  • Add basic Mac hardware acceleration using VideoToolbox

Changed

  • Local libraries only: when items are missing from disk, they will be added to the trash and no longer removed from collections, etc.
  • Show song thumbnail in song list
ErsatzTV - v0.3.6-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Properly index minutes field when adding new items during scan (vs when rebuilding index)
  • Fix some nvenc edge cases where only padding is needed for normalization
  • Properly overwrite environment variables for ffmpeg processes (LIBVA_DRIVER_NAME, FFREPORT)

Added

  • Add music video artist to search index
    • This requires rebuilding the search index and search results may be empty or incomplete until the rebuild is complete

Changed

  • Remove HLS Hybrid streaming mode; all channels have been reconfigured to use the superior HLS Segmenter streaming mode
  • Update MPEG-TS streaming mode to internally use the HLS segmenter
    • This improves compatibility with many clients and also improves performance at program boundaries
  • Renamed existing MPEG-TS mode as MPEG-TS (Legacy)
    • This mode will be removed in a future release
ErsatzTV - v0.3.5-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix bundled ffmpeg version in base docker image (NOT nvidia or vaapi) which prevented playback since v0.3.0-alpha
  • Use software decoding for mpeg4 content when VAAPI acceleration is enabled
  • Fix hardware acceleration health check to recognize QSV on non-Windows platforms

Changed

  • Treat setsar as a hardware filter, avoiding unneeded hwdownload and hwupload steps when padding isn't required
ErsatzTV - v0.3.4-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix other video and song scanners to include videos contained directly in top-level folders that are added to a library
  • Allow saving ffmpeg troubleshooting reports on Windows
ErsatzTV - v0.3.3-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix bug with saving multiple blurhash versions for cover art; all cover art will be automatically rescanned
  • Fix song detail margin when no cover art exists and no watermark exists
  • Fix synchronizing virtual shows and seasons from Jellyfin
  • Properly sort channels in M3U

Changed

  • Use blurhash of ErsatzTV colors instead of solid colors for default song backgrounds
  • Use select control instead of autocomplete control in many places
    • The autocomplete control is not intuitive to use and has focus bugs
ErsatzTV - v0.3.2-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix artwork upload on Windows
  • Fix unicode song metadata on Windows
  • Fix unicode console output on Windows
  • Fix TV Show NFO metadata processing when year is missing
  • Fix song detail outline to help legibility on white backgrounds
  • Optimize song artwork scanning to prevent re-processing album artwork for each song

Changed

  • Use custom log database backend which should be more portable (i.e. work in osx-arm64)
  • Use cover art blurhashes for song backgrounds instead of solid colors or box blur
ErsatzTV - v0.3.1-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix song page links in UI
  • Show song artist in playout detail
  • Include song artist and cover art in channel guide (xmltv)
  • Use subtitles to display errors, which fixes many edge cases of unescaped characters
  • Properly split song genre tags
  • Properly display all songs that have an identical album and title
  • Fix channel logo and watermark uploads
  • Fix regression introduced with v0.2.4-alpha that caused some filler edge cases to crash the playout builder

Added

  • Add song genres to search index
  • Use embedded song cover art when sidecar cover art is unavailable

Changed

  • Randomly place song cover art on left or right side of screen
  • Randomly use a solid color from the cover art instead of blurred cover art for song background
  • Randomly select song detail layout (large title/small artist or small artist/title/album)
ErsatzTV - v0.3.0-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Properly fix database incompatibility introduced with v0.2.4-alpha and partially fixed with v0.2.5-alpha
    • The proper fix requires rebuilding all playouts, which will happen on startup after upgrading
  • Fix local library locking/progress display when adding paths
  • Fix grouping duration items in EPG when custom title is configured

Added

  • Add experimental Songs local libraries
    • Like Other Videos, Songs require no metadata or particular folder layout, and will have tags added for each containing folder
    • For Example, a song at rock/band/1990 - Album/01 whatever.flac will have the tags rock, band and 1990 - Album, and the title 01 whatever
    • Songs will also have basic metadata read from embedded tags (album, artist, title)
    • Video will be automatically generated for songs using metadata and cover art or watermarks if available
  • Add support for .webm video files
ErsatzTV - v0.2.5-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Include other video title in channel guide (xmltv)
  • Fix bug introduced with 0.2.4-alpha that caused some playouts to build from year 0
  • Use less memory matching Trakt list items

Added

  • Build osx-arm64 packages on release

Changed

  • No longer warn about local Plex guids; they aren't used for Trakt matching and can be ignored
ErsatzTV - v0.2.4-alpha

Published by jasongdove almost 3 years ago

Release Notes

Changed

  • Upgrade to dotnet 6
  • Use scale_cuda instead of scale_npp for NVIDIA scaling in all cases
ErsatzTV - v0.2.3-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix bug with audio filter in cultures where . is a group/thousands separator
  • Fix bug where flood playout mode would only schedule one item
    • This would happen if the flood was followed by another flood with a fixed start time

Added

  • Support empty .etvignore file to instruct local movie scanner to ignore the containing folder
ErsatzTV - v0.2.2-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix EPG entries for Duration schedule items that play multiple items
  • Fix EPG entries for Multiple schedule items that play more than one item

Added

  • Add fallback filler settings to Channel and global FFmpeg Settings
    • When streaming is attempted during an unscheduled gap, the resulting video will be determined using the following priority:
      • Channel fallback filler
      • Global fallback filler
      • Generated Channel Is Offline error message video

Changed

  • Allow per-episode folders for local show libraries
    • e.g. Show Name\Season #\Episode #\Show Name - s#e#.mkv
ErsatzTV - v0.2.1-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix saving dynamic start time on schedule items

v0.2.0-alpha Release Notes

Fixed

  • Fix generated streams with mpeg2video
  • Fix incorrect row count in playout detail table
  • Fix deleting movies that have been removed from Jellyfin and Emby
  • Fix bug that caused large unscheduled gaps in playouts
    • This was caused by schedule items with a fixed start of midnight

Added

  • Add new filler system
    • Pre-Roll Filler plays before each media item
    • Mid-Roll Filler plays between media item chapters
    • Post-Roll Filler plays after each media item
    • Tail Filler plays after all media items, until the next media item
    • Fallback Filler loops instead of default offline image to fill any remaining gaps
  • Store chapter details with media statistics; this is needed to support mid-roll filler
    • This requires re-ingesting statistics for all media items the first time this version is launched
  • Add switch to show/hide filler in playout detail table
  • Add minutes field to search index
    • This requires rebuilding the search index and search results may be empty or incomplete until the rebuild is complete
ErsatzTV - v0.2.0-alpha

Published by jasongdove almost 3 years ago

Release Notes

Fixed

  • Fix generated streams with mpeg2video
  • Fix incorrect row count in playout detail table
  • Fix deleting movies that have been removed from Jellyfin and Emby

Added

  • Add new filler system. See user guide for details and sample configurations.
    • Pre-Roll Filler plays before each media item
    • Mid-Roll Filler plays between media item chapters
    • Post-Roll Filler plays after each media item
    • Tail Filler plays after all media items, until the next media item
    • Fallback Filler loops instead of default offline image to fill any remaining gaps
  • Store chapter details with media statistics; this is needed to support mid-roll filler
    • This requires re-ingesting statistics for all media items the first time this version is launched
  • Add switch to show/hide filler in playout detail table
  • Add minutes field to search index
    • This requires rebuilding the search index and search results may be empty or incomplete until the rebuild is complete

Changed

  • Change some debug log messages to info so they show by default again
  • Remove tail collection options from Duration playout mode
  • Show localized start time in schedule items tables
ErsatzTV - v0.1.5-alpha

Published by jasongdove about 3 years ago

Release Notes

Fixed

  • Fix double scheduling; this could happen if the app was shutdown during a playout build
  • Fix updating Jellyfin and Emby TV seasons
  • Fix updating Jellyfin and Emby artwork
  • Fix Plex, Jellyfin, Emby worker crash attempting to sync library that no longer exists
  • Fix bug with Duration mode scheduling when media items are too long to fit in the requested duration
  • Fix bug with Duration mode scheduling with Filler tail mode where other duration items in the schedule would be skipped

Added

  • Include music video thumbnails in channel guide (xmltv)

Changed

  • Automatically find working Plex address on startup
  • Change default log level from Debug to Information
    • The Debug log level can be enabled in the appsettings.json file for non-docker installs
    • The Debug log level can be enabled by setting the environment variable Serilog:MinimumLevel=Debug for docker installs
Related Projects