Document the hardsub/auto-split fork

Add FORK_NOTES.md describing the new features, a README pointer, and keep
the known-good baseline encoder as contrib/dvd-safe-converter.sh (the
reference the Compatibility profile is modelled on).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Luna 2026-06-02 12:54:37 -07:00
parent 4f1ecb55ee
commit 128e0f087d
3 changed files with 120 additions and 0 deletions

66
FORK_NOTES.md Normal file
View file

@ -0,0 +1,66 @@
# DeVeDe-NG — Hardsub & Auto-split Fork
This is a fork of [DeVeDe-NG](https://gitlab.com/rastersoft/devedeng) that adds
three things aimed at producing burn-ready NTSC DVDs from arbitrary video files:
1. **Embedded subtitle detection + hardsubbing (burn-in).**
2. **Selectable DVD encode profiles** (Compatibility / High quality / Custom).
3. **Automatic splitting of over-long projects across multiple ISOs / DVD-Rs.**
The baseline encode is modelled on the known-good script in
[`contrib/dvd-safe-converter.sh`](contrib/dvd-safe-converter.sh).
## 1. Hardsubbing embedded subtitles
The analyzer (`ffprobe` / `avprobe`) now detects embedded subtitle tracks and
classifies each as **text** (SubRip/ASS/mov_text/WebVTT) or **image**
(PGS/VOBSUB/DVD subtitle). In a movie's *Subtitles* properties page a
**"Burn in embedded subtitle"** dropdown lets you pick one track to render
permanently into the picture.
- **Text** subs are burned with ffmpeg's `subtitles=` (libass) filter, applied
after scaling to the DVD size.
- **Image** subs are composited with an `overlay` filtergraph *before* scaling,
so bitmap positioning stays aligned with the source frame. (OCR-to-text is an
optional future enhancement; the default overlays the bitmap directly.)
Burned-in subtitles are part of the video; the existing *soft* subtitle support
(spumux subpicture streams from external files) is unchanged.
## 2. Encode profiles
A project-level **Encode profile** selector (next to the disc-size control,
DVD only):
| Profile | Video | Audio | Notes |
| --- | --- | --- | --- |
| **Compatibility (4500k)** | CBR 4500k | AC3 192k | Old-player safe baseline (~133 min / single-layer disc). |
| **High quality (fill disc)** | VBR, fills disc | AC3 448k | Best quality per disc. |
| **Custom** | user kbps | user kbps | Advanced; clamped to stay within DVD spec. |
NTSC DVD audio is AC3 for all profiles (the upstream default was MP2 for NTSC),
matching the baseline script and maximising player compatibility.
## 3. Splitting long projects across discs
Usable disc capacity is taken from the selected disc size (with the existing
~10% safety margin). When a project does not fit on one disc at the chosen
quality, you are asked whether to:
- **Split into N discs** — keep the quality and author one DVD/ISO per disc
(`name-disc1.iso`, `name-disc2.iso`, …), **or**
- **Reduce bitrate** — squeeze everything onto a single disc (the original
behaviour).
Multiple titles are distributed across discs whole. A single movie that is
itself larger than one disc is split by time at the **chapter boundary nearest**
each disc's capacity (falling back to an even time cut when the movie has no
chapters). Split discs are authored without a menu — each disc plays its
segment(s) directly.
### Limitations
- Split discs have no DVD menu.
- Burning is per-disc: the app produces the ISOs; burn each in turn.
- Image-subtitle burn-in is supported by the ffmpeg backend; the avconv backend
handles text subtitles only.