Skip to content

v2.10.0

Choose a tag to compare

@infidelus infidelus released this 04 Oct 12:44
· 2 commits to main since this release

Snipwright 2.10.0

Advert detection learns more about each channel and puts programme edges closer to where you'd cut them, subtitles now survive a re-encoded join, and audio description is no longer lost from some HD recordings.

📺 Advert detection

  • Programme starts and ends are placed more closely. Many channels show the same frame just before or after every programme - a sponsor card, a continuity board. Chalkline now learns these from the projects you correct and uses them to pull the start and end of the programme in to the right place. In testing, programme edges within two seconds of the hand-placed cut rose from 25 of 67 to 30, none got worse, and scanning is no slower. It only refines edges Chalkline has already found, and only learns from recordings whose padding you've trimmed.
  • Learning can be switched off per channel. The Remembered logos window has a new Learn column. Untick it for a channel that already detects well: what it has learned is still used, but saving a corrected project no longer starts a learning pass, which could take several minutes on a long recording.
  • Channels without a logo now appear in Remembered logos. A channel recognised only by the ident around its breaks, such as Film4, gets its own row with a picture of that ident, and can be paired and joined like any other - so idents learned from one recorder's recordings work for the other's too. A new Idents column shows how many each channel has learned.
  • Learning messages name the channel, not its service number, once that number is paired with a name.

💬 Subtitles survive a re-encoded join

Joining scenes that don't match - an SD and an HD recording, say - re-encodes them, and until now their broadcast subtitles were dropped. They are now carried into the joined video, each on the right picture. Where a scene's subtitles were drawn for a different picture size, they are redrawn to fit, words and colours unchanged, so they show in every player - including a web browser through Jellyfin. A Blu-ray's subtitles are converted to the same kind, so recordings and disc rips share one subtitle track. Anything that still can't be carried, such as teletext, is named in the summary at the end.

🔊 Audio description kept on more recordings

On some HD channels, BBC Three HD among them, the audio description track gives no clue to its format during the first minutes of a recording, and the export left it out ("1 audio track could not be carried over"). Recordings are now read deeply enough to see such a track properly from the start, so it is kept whole. The last step of a .ts export, which restores the channel name and track labels, no longer fails on these tracks either.

ℹ️ What Snipwright is running on

The About box now lists your system, Python and each library Snipwright uses - including the FFmpeg inside PyAV, which does the decoding - plus the FFmpeg and MKVToolNix programs. A library that isn't the version Snipwright was tested with is shown in amber with the tested version beside it, and "Copy details" puts the whole list on the clipboard for a bug report.

🧹 Uninstallers

src/packaging now has uninstallers for Linux and Windows beside the installers. They remove what the installer set up - menu entries or shortcuts, file types, the Watcher's start-on-login entry and the Python environment - and ask before deleting your settings, so learned channel logos can be kept for a reinstall. They never touch recordings, exported videos, projects or logs.

🐛 Fixes

  • The Linux installer is executable again. In 2.9.1 it had lost its executable permission, so running ./install-linux.sh directly gave "Permission denied". The documented chmod +x step covered it.

Bug reports are welcome, especially with a sample recording — a short clip cut with ffmpeg -ss … -t 60 -i recording.ts -c copy sample.ts is usually enough. If an export comes out with audio missing or out of sync, or with a subtitle track missing, the log from that run is the single most useful thing you can attach. The full changelog is in CHANGELOG.md.