ErsatzTV

Stream custom live channels using your own media

ZLIB License

Stars
1.2K

Bot releases are hidden (Show)

ErsatzTV - v0.6.7-beta

Published by jasongdove about 2 years ago

Release Notes

Fixed

  • When all audio streams are selected with HLS Direct, explicitly copy them without transcoding
    • This only happens when the channel does not have a Preferred Audio Language
  • Fix scanner crash caused by invalid mtime
  • VAAPI: Downgrade libva from 2.15 to 2.14
  • Fix bug with XMLTV that caused some filler to display with primary content details
  • Multiple fixes for content scaling with Nvidia, Qsv and Vaapi accelerations
  • Properly scale image-based subtitles
  • Fix bug where a schedule containing a single item (fixed start and flood) would never finish building a playout
    • Logic was also added to detect infinite playout build loops in the future and stop them
  • Fix bug where Other Videos wouldn't be included in scheduling mode Shuffle In Order

Added

  • Add Preferred Audio Title feature
    • Preference can be configured in channel settings and overridden on schedule items
    • When a title is specified, audio streams that contain that title (case-insensitive search) will be prioritized
    • This can be helpful for creating channels that use commentary tracks
    • External tooling exists to easily update title/name metadata if your audio streams don't already have this metadata
  • Add Amf hardware acceleration option for AMD GPUs on Windows
  • Add QSV Extra Hardware Frames parameter for tuning QSV acceleration
    • Performance may improve on some systems after doubling or halving the default value of 64
ErsatzTV - v0.6.6-beta

Published by jasongdove about 2 years ago

Release Notes

Fixed

  • Use MIME Type application/x-mpegurl for all playlists instead of application/vnd.apple.mpegurl
  • Replace setsar filter with setdar filter
    • setsar caused issues scaling between two different aspect ratios
      • For example, some 4:3 content would appear stretched when scaled to a 16:9 resolution
    • setdar is now only used when aspect ratios match
  • Prioritize aspect ratio from container when video stream contains conflicting aspect ratio
    • This is usually caused by bad authoring, but the change should improve scaling behavior for edge cases

Added

  • Support DSD audio file formats (DFF and DSF) in local song libraries
  • Support OGG audio file formats (OGG, OPUS, OGA, OGX, SPX) in local song libraries

Changed

  • Always return playlist after a maximum of 8 seconds while starting up an HLS Segmenter session
  • Use multi-variant playlists instead of redirects for HLS Segmenter sessions
  • Upgrade ffmpeg from 5.0 to 5.1 in most docker images (not ARM variants)
    • Upgrading from 5.0 to 5.1 is also recommended for other installations (Windows, Linux)
ErsatzTV - v0.6.5-beta

Published by jasongdove about 2 years ago

Release Notes

Fixed

  • Fix database initializer; fresh installs with v0.6.4-beta are missing some config data and should upgrade
ErsatzTV - v0.6.4-beta

Published by jasongdove about 2 years ago

Release Notes

Fixed

  • Fix subtitle stream selection when subtitle language is different than audio language
  • Fix bug with unsupported AAC channel layouts
  • Fix NVIDIA second-gen maxwell capabilities detection
  • Return distinct search results for episodes and other videos that have the same title
    • For example, two other videos both named Trailer would previously have displayed as one item in search results
  • Fix schedules that would begin to repeat the same content in the same order after a couple of days
    • Playouts will stop repeating over the first couple days after upgrading, or they can be reset to immediately fix

Added

  • Add 640x480 resolution
ErsatzTV - v0.6.3-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Maintain stream continuity when playout is rebuilt for a channel that is actively being streamed
  • Properly apply changes to episode title, sort title, outline and plot from Plex
  • Fix search index for other videos and songs
    • In previous versions, some libraries would incorrectly display only one item
  • Properly display old versions of renamed items in trash

Added

  • Add Minimum Log Level option to Settings page
    • Other methods of configuring the log level will no longer work
ErsatzTV - v0.6.2-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix content repeating for up to a minute near the top of every hour
  • Check whether hardware-accelerated codecs are supported by the NVIDIA card
    • Software codecs will be used if they are unsupported by the NVIDIA card
  • Fix sorting of channel contents in EPG
  • Fix Jellyfin admin user id sync
    • Ignore disabled admins and admins who do not have access to all libraries

Added

  • Add 32-bit arm docker tags (develop-arm and latest-arm)

Changed

  • Regularly delete old segments from transcode folder while content is actively transcoding
    • This should help reduce required disk space
    • To further minimize required disk space, set Work-Ahead HLS Segmenter Limit to 0 in Settings
ErsatzTV - v0.6.1-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix Jellyfin show library paging
  • Properly locate and identify multiple Plex servers
  • Properly restore Unavailable/File Not Found items when they are located on disk

Added

  • Add basic music video credits subtitle generation
    • This can be enabled in channel settings
ErsatzTV - v0.6.0-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Additional fix for duplicate Other Videos entries; trash may need to be emptied one last time after upgrading
  • Fix watermark opacity in cultures where , is a decimal separator
  • Rework playlist filtering to avoid empty playlist responses
  • Fix some QSV/VAAPI memory errors by always requesting 64 extra hardware frames

Added

  • Enable QSV hardware acceleration for vaapi docker images

Changed

  • Use paging to synchronize all media from Plex, Jellyfin and Emby
    • This will reduce memory use and improve reliability of synchronizing large libraries
  • Disable low power mode for h264_qsv and hevc_qsv encoders
ErsatzTV - v0.5.8-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix error display with HLS Segmenter and MPEG-TS streaming modes
  • Remove erroneous log messages about normalizing framerate on channels where framerate normalization is disabled
  • Fix unscheduled filler gaps that sometimes happen as playouts are automatically extended each hour

Added

  • Clean transcode cache folder on startup and after HLS Segmenter session terminates for any reason

Changed

  • Remove thread limitation for scenarios where it is not required
    • This should give a performance boost to installations that don't use hardware acceleration
  • Use hardware acceleration to display error messages where configured
ErsatzTV - v0.5.7-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Reduce memory use due to library scan operations
  • Fix some instances of filler getting "stuck" when a filler item is encountered that's too long for the gap
  • Properly ignore Plex Other Videos libraries (movie libraries where agent is com.plexapp.agents.none)
  • Fix Custom Title for schedule items with One, Multiple and Flood playout modes
  • Fix scheduling bug where flood items would sometimes fail to continue after midnight

Added

  • Add metadata_kind field to search index to allow searching for items with a particular metdata source
    • Valid metadata kinds are fallback, sidecar (NFO), external (from a media server) and embedded (songs)
  • Add autocomplete functionality to search bar to quickly navigate to channels, ffmpeg profiles, collections and schedules by name
  • Add global setting to skip missing (file-not-found or unavailable) items when building playouts
  • Add filler preset option to allow watermarks to overlay on top of filler (disabled by default)
    • This option is applied when new items are added to a playout; rebuilding is needed if you want the change to take effect immediately
  • Read track field from music video NFO metadata and use it for chronological sorting (after release date)
  • Add Random Start Point option to schedules
    • When this option is enabled, all Chronological or Shuffle In Order content groups will have their start points randomized
    • When this option is disabled, all Chronological or Shuffle In Order content groups will start with the chronologically earliest item

Changed

  • Replace invalid (control) characters in NFO metadata with replacement character before parsing
  • Store partial (incomplete) NFO metadata results when invalid XML is encountered
    • Previously, no metadata would be stored if the XML within the NFO failed to validate
ErsatzTV - v0.5.6-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix processing local movie NFO metadata without a year value
  • Fix processing local movie fallback metadata
  • Fix search edge case where very recently added items (hours) would not be returned by relative date queries
  • Fix search index validation on startup; improper validation was causing a rebuild with every startup
  • Block library scanning until search index has been recreated/upgraded
  • Fix occasional erroneous log messages when HLS channel playback times out because all clients have left
  • Fix fallback filler playback
  • Fix stream continuity when error messages are displayed
  • Fix duplicate scanning within Other Video libraries (i.e. folders would be scanned multiple times)

Added

  • Add show_genre and show_tag to search index for seasons and episodes
  • Use aired value to source release date from music video nfo metadata
  • Add NFO metadata support to Other Video libraries
    • Other Video NFO metadata must be in the movie NFO metadata format
ErsatzTV - v0.5.5-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix adding episodes with no title to the search index
    • This behavior was preventing some items from being removed from the trash
  • Support combination NFO metadata for movies, shows, artists and music videos
    • Note that ErsatzTV does not scrape any metadata; any URLs after the XML will be ignored
  • Fix bug causing some Jellyfin and Emby content to incorrectly show as unavailable
  • Fix extracting embedded mov_text subtitles
  • Properly extract embedded subtitles on playouts where subtitles are only enabled on schedule items (and not on the channel itself)

Added

  • Add experimental arm64 docker tags (develop-arm64 and latest-arm64)
  • Use Sort Title from Movie NFO metadata if available
  • Support multiple Artist entries in music video NFO metadata
ErsatzTV - v0.5.4-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Cleanly stop all library scans when service termination is requested
  • Fix health check crash when trash contains a show or a season
  • Fix ability of health check crash to crash home page
  • Remove and ignore Season 0/Specials from Plex shows that have no specials
  • Automatically delete and rebuild the search index on startup if it has become corrupt
  • Automatically scan Jellyfin and Emby libraries on startup and periodically
  • Properly remove un-synchronized Plex, Jellyfin and Emby items from the database and search index
  • Fix synchronizing movies within a collection from Jellyfin

Changed

  • Update Plex, Jellyfin and Emby movie and show library scanners to share a significant amount of code
    • This should help maintain feature parity going forward
  • Optimize search-index rebuilding to complete 100x faster
  • No longer use network paths to source content from Jellyfin and Emby
    • If you previously used path replacements to convert network paths to local paths, you should remove them

Added

  • Add unavailable state for Jellyfin and Emby movie and show libraries
  • Add height and width to search index for all videos
  • Add season_number and episode_number to search index for all episodes
  • Add season_number to search index for seasons
  • Add show_title to search index for seasons and episodes
ErsatzTV - v0.5.3-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Cleanly stop Plex library scan when service termination is requested
  • Fix bug introduced with v0.5.2-beta that prevented some Plex content from being played
  • Fix spammy subtitle error message
  • Fix generating blur hashes for song backgrounds in Docker

Changed

  • No longer remove Plex movies and episodes from ErsatzTV when they do not exist on disk
    • Instead, a new unavailable media state will be used to indicate this condition
    • After updating mounts, path replacements, etc - a library scan can be used to resolve this state
ErsatzTV - v0.5.2-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix unlocking libraries when scanning fails for any reason
  • Fix software overlay of actual size watermark

Added

  • Add support for burning in embedded and external text subtitles
    • This requires a one-time full library scan, which may take a long time with large libraries.
  • Sync Plex, Jellyfin and Emby collections as tags on movies, shows, seasons and episodes
    • This allows smart collections that use queries like tag:"Collection Name"
    • Note that Emby has an outstanding collections bug that prevents updates when removing items from a collection
  • Sync Plex labels as tags on movies and shows
    • This allows smart collections that use queries like tag:"Plex Label Name"
  • Add Deep Scan button for Plex libraries
    • This scanning mode is slow but is required to detect some changes like labels

Changed

  • Improve the speed and change detection of the Plex library scanners
ErsatzTV - v0.5.1-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix subtitles edge case with NVENC
  • Only select picture subtitles (text subtitles are not yet supported)
    • Supported picture subtitles are hdmv_pgs_subtitle and dvd_subtitle
  • Fix subtitles using software encoders, videotoolbox, VAAPI
  • Fix setting VAAPI driver name
  • Fix ffmpeg troubleshooting reports
  • Fix bug where filler would behave as if it were configured to pad even though a different mode was selected
  • Fix bug where mid-roll count filler would skip scheduling the final chapter in an episode

Added

  • Add Empty Trash button to Trash page
ErsatzTV - v0.5.0-beta

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix HLS Segmenter bug where it would drift off of the schedule if a playout was changed while the segmenter was running
  • Ensure clients that use HDHomeRun emulation (like Plex) always get an MPEG-TS stream, regardless of the configured streaming mode
  • Fix scheduling bug that caused some days to be skipped when fixed start times were used with fallback filler

Added

  • Add Preferred Subtitle Language and Subtitle Mode to channel settings
    • Preferred Subtitle Language will filter all subtitle streams based on language
    • Subtitle Mode will further filter subtitle streams based on attributes (forced, default)
    • If picture-based subtitles are found after filtering, they will be burned into the video stream
  • Detect non-zero ffmpeg exit code from HLS Segmenter and MPEG-TS, log error output and display error output on stream
  • Add Watermark setting to schedule items; this allows override the channel watermark. Watermark priority is:
    • Schedule Item
    • Channel
    • Global

Changed

  • Remove legacy transcoder logic option; all channels will use the new transcoder logic
  • Renamed channel setting Preferred Language to Preferred Audio Language
  • Reworked playout build logic to maintain collection progress in some scenarios. There are now three build modes:
    • Continue - add new items to the end of an existing playout
      • This mode is used when playouts are automatically extended in the background
    • Refresh - this mode will try to maintain collection progress while rebuilding the entire playout
      • This mode is used when a schedule is updated, or when collection modifications trigger a playout rebuild
    • Reset - this mode will rebuild the entire playout and will NOT maintain progress
      • This mode is only used when the Reset Playout button is clicked on the Playouts page
    • This requires rebuilding all playouts, which will happen on startup after upgrading
  • Use ffmpeg to resize images; this should help reduce ErsatzTV's memory use
  • Use ffprobe to check for animated logos and watermarks; this should help reduce ErsatzTV's memory use
  • Allow two decimals in channel numbers (e.g. 5.73)
ErsatzTV - v0.4.5-alpha

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix streaming mode inconsistencies when mode parameter is unspecified
  • Fix startup on Windows 7

Added

  • Add option to automatically deinterlace video when transcoding
    • Previously, this was always enabled; the purpose of the option is to allow disabling any deinterlace filters
    • Note that there is no performance gain to disabling the option with progressive content; filters are only ever applied to interlaced content

Changed

  • Change FFmpeg Profile video codec and audio codec text fields to select fields
    • The appropriate video encoder will be determined based on the video format and hardware acceleration selections
  • Remove FFmpeg Profile Transcode, Normalize Video and Normalize Audio settings
    • All content will be transcoded and have audio and video normalized
    • The only exception to this rule is HLS Direct streaming mode, which directly copies video and audio streams
  • Always try to connect to Plex at http://localhost:32400 even if that address isn't advertised by the Plex API
    • If Plex isn't on the localhost, all other addresses will be checked as with previous releases
ErsatzTV - v0.4.4-alpha

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix HLS Direct streaming mode
  • Fix bug with HLS Segmenter (and MPEG-TS) on Windows that caused errors at program boundaries

Added

  • Perform additional duration analysis on files with missing duration metadata
  • Add nouveau VAAPI driver option
ErsatzTV - v0.4.3-alpha

Published by jasongdove over 2 years ago

Release Notes

Fixed

  • Fix song sorting with Chronological and Shuffle In Order playback orders
  • Fix watermark on scaled and/or padded video with NVIDIA acceleration
  • Fix playback of interlaced mpeg2video content with NVIDIA acceleration
  • Fix playback of all interlaced content with QSV acceleration
  • Fix adding songs to collections from search results page
  • Fix bug scheduling mid-roll filler with content that contains one chapter
    • No mid-roll filler will be inserted for content with zero or one chapters
  • Fix thread sync bug with HLS Segmenter (and MPEG-TS) streaming modes
  • Fix path replacement bug when media server path is left blank

Added

  • Add automated error reporting via Bugsnag
    • This can be disabled by editing the appsettings.json file or by setting the Bugsnag:Enable environment variable to false
  • Add album_artist to song metadata and to search index
  • Display album_artist on some song videos when it's different than the artist

Changed

  • Framerate normalization will never normalize framerate below 24fps
    • Instead, content with a lower framerate will be normalized up to 24fps
  • Shuffle In Order will group songs by album artist instead of by track artist
Related Projects