Skip to content

v2.8.0

Choose a tag to compare

@infidelus infidelus released this 20 Sep 13:53
· 5 commits to main since this release

Snipwright 2.8.0

Mostly about subtitles and about how Snipwright learns a channel's logo, with a good deal of editor tidying alongside it.

Two separate faults were losing subtitles on export, and neither said a word about it. Advert detection has stopped treating the first logo it learns for a channel as the last word on the subject — it keeps several now and works out which is doing the better job, from the corrections you make. And the trim at the end of a recording no longer leaves seven to ten minutes of continuity on the end, at least on the channels where there is something in the picture to go on.

There are also three ways of quietly damaging your own edit that are now refused instead.

💬 Subtitles vanishing on export

Two different faults, found a day apart, both silent.

The first showed up on a broadcast recording exported with a profile that re-encodes the audio. Whenever the export had to rebuild the audio, the rebuilt file was assembled from the video and audio alone — every rebuild step names the streams it wants, and nothing named the subtitles, so they were dropped. Four separate steps had the same gap. They all carry subtitles through now.

The second turned up on a disc rip being re-encoded to save space. A cut bound for .mkv or .mp4 is written to a transport stream first, and a transport stream can only carry broadcast subtitles — so PGS or SubRip subtitles disappeared on the way through. An .mkv export now routes those recordings through a Matroska working file instead and keeps them. A broadcast recording is untouched and follows exactly the path it always did.

Where the format genuinely has nowhere to put them — .ts and .mp4 cannot hold a disc's subtitles — the export now says so in its summary. Dropping a track the source had and saying nothing needed fixing as much as the loss itself.

The disc side was tested on what can be made here: 1080p H.264 with AC-3 audio and PGS subtitles. 10-bit, HDR and 4K sources remain largely untested, and not by choice — UK Freeview broadcasts none of them, so there is nothing off the tuner to test against. If you have such a recording and something goes wrong with it, a short sample would be genuinely useful.

🕐 A recording whose clock jumps

Some broadcasts carry a clock that leaps hours forward partway through a programme, with nothing actually missing. A 45-minute recording can claim to run for over seven hours.

Snipwright showed and cut these correctly, but the export did not: the file came out reported as hours long, every subtitle after the leap was placed hours late in MKV, and the TS route needlessly rebuilt the audio. The leap is now closed as the cut is made, so video, audio and subtitles run on without a gap, the file reports its real length, and chapter marks land where they should. The log says where the leap was, and shows scene times as they play rather than hours out.

Recordings whose timestamps run normally export exactly as before — checked packet by packet against the previous build.

🧠 Snipwright can change its mind about a channel's logo

It used to learn a channel's logo once and keep it. A logo learned from an awkward recording was stuck there, and nothing could tell a good one from a bad one.

A channel now keeps up to four, and every time you save a project you have corrected, the logos it already holds are scored against your own cuts — the logo should be out of sight through the adverts and on screen through the programme. The one that does best is the one used from then on.

Two details matter for that to be fair:

  • A logo learned from the recording you just saved has to prove itself on a later one. It was fitted to that recording, so it would flatter itself there.
  • Two logos are only compared on recordings they have both been measured against, so a logo is never punished for having been tried on a harder recording than its rival.

This only runs if "Learn channel logos from my edits" is ticked in Settings > Advert detection, and a channel whose logo is already settled is left alone when you save a detection exactly as it was proposed.

Alongside it: a learned logo that does not match the recording at all — the channel changed it, or the picture is framed differently — is now left out of that recording rather than used blindly. Joining two remembered logos under one name keeps both, instead of discarding one on a contrast figure that was never comparable between them. And the Remembered Logos list shows how many logos a channel holds, with each one's record when you rest the pointer on its row.

✂️ The end of a recording

A recorded programme ends, an advert break follows, and then comes continuity or the next programme — with the channel's logo back on screen. Snipwright cut the advert break and stopped there, leaving the rest on the end.

Where the picture's shape or aspect changes as the programme finishes and stays changed to the end of the recording, the trim now carries on to the end. The cut still starts exactly where it did before, so nothing is taken off the programme. Across thirty recordings this removed about 24 minutes of continuity that was previously left in, and changed nothing else.

Channels whose picture does not change are unaffected, and the user guide now says so: the trim at the start is reliable, the one at the end depends on the channel, and it is worth a look before you export.

🛑 Three ways to damage your own edit

All three are refused now, with a note in the status bar.

Cutting without marking OUT. The markers stay put after a cut so you can nudge a boundary, which leaves the OUT sitting on the cut you just made. Mark IN for the next break, forget the OUT, press Cut — and the range ran backwards, removing everything between the two marks. That is programme, not adverts.

Adding a scene without marking OUT. The same mistake in Scene Mode, which quietly replaced the two neighbouring scenes with one covering the gap between them.

Running two copies at once. Both shared the batch queue, and whichever saved last erased the other's jobs; removing a job could delete a working copy the other window still needed. The queue is now merged at the moment it is saved, and Snipwright runs as a single instance — opening a project from your file manager brings the window you already have to the front.

🏷️ The TV Renamer and double episodes

A recording named S01E01 S01E02 — the two episodes separated by a space — was read as episode one alone and filed as a single episode. That form is now understood, along with S01E01 & S01E02 and S01E01, S01E02.

Selecting both halves also kept the part marker from the first title, so a file covering two episodes came out numbered as two and titled as part one. The marker is dropped when a file holds more than one episode. A title that merely ends in something marker-shaped — Apollo 13, Catch-22 — is left alone.

🔊 Joining scenes that do not match

Scenes that share a format are joined without re-encoding, and that path kept every audio track. Scenes that do not match have to be re-encoded, and that path carried only the first — so an audio description or second language was lost on those joins. Every track the scenes have in common is now carried, each at its own channel layout and bitrate.

Smaller things

  • Advert detection invents fewer breaks. Where the learned logo and the general corner search disagree, the learned logo wins. It is now held to the same standard itself: a logo that is hard to make out against a busy background used to read as missing for a minute at a time, and that was proposed as a break. Five false breaks gone across the test recordings, with no real break lost.
  • Snipwright could refuse to learn a logo from a perfectly good recording, because it expected your recorder to pad the start and end. Most recorders do not (by default), and the padding was never used for the learning anyway.
  • Adjusting both ends of a cut at once moved only one of them. A marked span overlapping an existing cut now becomes that cut, both ends together.
  • The export summary printed a whole explanation as raw Python data, brackets and all, where a one-line note belonged.
  • "Show tooltips on the transport controls" turned off every tooltip in the program, including ones that carry information nothing else shows. It now does what it says.
  • The user guide understated how far cut marks can drift between Snipwright and VideoReDo: a dozen frames in either direction is closer than "a frame or two".

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.