A native, classic GTK/Brasero-inspired desktop studio designed to rip, recover, transcode, stitch, and inspect legacy optical media (VCD, DVD, Audio CD, BIN/CUE, and raw CD-ROM XA dumps).
Features β’ Why DiscMaster? β’ Architecture β’ Getting Started β’ AppImage
Optical media (CDs, VCDs, DVDs) produced in the 1990s and 2000s are rapidly degrading due to disc rot, surface oxidation, dye degradation, and physical wear. Millions of irreplaceable recordingsβfamily weddings, rare regional films, nostalgic music albums, and historical discoursesβare trapped on formats that modern operating systems struggle to read:
- Video CDs (
MPEGAV/*.DAT): Utilize non-standard Mode 2 Form 2 CD-ROM sectors with 2352-byte structures and desynced MPEG-1 pack timestamps that stutter, freeze, or fail entirely in modern media players. - DVD Video Discs (
VIDEO_TS/*.VOB): Fragmented across multiple 1 GB chapter files, often causing audio-video sync drift when crudely merged. - Audio CDs (CDDA): Contain virtual
.cdadescriptor links that cannot be copied via normal file managers without low-level sector reading. - Raw Disc Images (
.bin,.cue,.toc): Low-level forensic dumps require specialized track splitting and sector header demuxing to be usable.
DiscMaster provides an all-in-one, clean, native desktop application engineered specifically for disc preservation. It integrates low-level binary sector demuxing with high-efficiency FFmpeg stream pipelines to recover legacy media into pristine, modern MP4/MKV video and MP3/WAV/FLAC audio.
- Video CD (VCD): Scans mounted disc structures (
MPEGAV), parses.DATtracks, and transcodes them into standard high-compatibility H.264/AAC MP4. - DVD Video: Auto-detects DVD title chapter sequences (
VTS_01_1.VOB...VTS_01_N.VOB) and concatenates them into a single continuous MP4 movie without synchronization loss. - Audio CD (CDDA): Direct digital audio extraction to high-bitrate MP3 (320 kbps) or lossless PCM WAV (1411 kbps).
- Hardware Drive Detection: Auto-detects optical drives across Linux (
/dev/sr*,/dev/cdrom,lsblkROM devices) and Windows (PowerShell/CIM & WMIC).
- Native BIN + CUE Splitter: Directly parses
.cuesheet index timing and slices monolithic.binimages into individual tracks natively. - TOC β CUE Sheet Converter: Converts
cdrdao.toctables into standard.cuecue sheets. - Mode A (Raw CD-ROM XA Demuxing): Strips raw 2352-byte sector wrappers (Sync, Header, Subheader, EDC/ECC) from raw disc dumps to restore valid MPEG streams.
- Mode B (Timestamp Repair): Re-encodes jittery or corrupt Presentation Timestamps (PTS/DTS) to fix out-of-sync audio and frame freezes.
- Mode C (Multi-Stream Merge & Repair): Concurrently processes and joins multiple raw XA chunks into a single gapless MP4.
- Interactive playlist manager to re-order, add, and combine sequential video chapters.
- Lossless Stream Concatenation (instant) or Force Re-encode (normalizes mismatched aspect ratios, resolutions, and framerates).
- Extract soundtracks and audio streams from any video or audio container (
.mp4,.mpg,.dat,.avi,.mkv,.mov,.wav). - Supports output to MP3, WAV, FLAC, and AAC.
- Batch Processing Mode: Select an entire directory and batch-convert all contained media files concurrently.
- Embedded workspace directory browser with direct media player integration (
xdg-open/ default OS player). - Real-time
ffprobetechnical inspector displaying stream configurations, video/audio codecs, exact resolutions, framerates, channel layouts, durations, and bitrates.
DiscMaster features a classic GTK / Adwaita interface reminiscent of classic GNOME disc burning tools like Brasero and Sound Juicer:
- Neutral Adwaita Palette: High readability with dark charcoal typography on neutral desktop tones.
- Full Desktop Menu Bar: Quick access to operations, hardware refresh, and dependency diagnostics.
- Structured Group Frames: Clean layout with clear visual hierarchy and primary action buttons.
- Collapsible Activity Log: Dedicated diagnostic terminal drawer that can be toggled on/off to keep the interface uncluttered.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β DiscMaster Classic GTK Desktop UI β
β (Adwaita Theme / Desktop Menus / Thread-Safe Queues) β
ββββββββββ¬βββββββββββββββββββββββββββββββββββββββββ¬βββββββββ
β β
βΌ βΌ
ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ
β discmaster_engine.py β β FFmpeg / FFprobe β
ββββββββββββββββββββββββββ€ ββββββββββββββββββββββββββ€
β β’ CD-ROM XA Demuxer β β β’ Stream Concatenation β
β β’ 2352-byte Sector XA β β β’ H.264/AAC Transcode β
β β’ CUE/BIN Track Slicer β β β’ CDDA Audio Rip β
β β’ TOC-to-CUE Converter β β β’ Media Stream Probe β
β β’ Hardware Drive Probe β β β’ PTS/DTS Resync β
ββββββββββββββββββββββββββ ββββββββββββββββββββββββββ
A standard Video CD raw sector consists of 2352 bytes:
+----------------+----------------+-------------------+----------------------+-------------+
| Sync (12 bytes)| Header (4 byte)| Subheader (8 byte)| User Data (2324 byte)| EDC (4 byte)|
+----------------+----------------+-------------------+----------------------+-------------+
discmaster_engine scans for the sync sequence (00 FF FF FF FF FF FF FF FF FF FF 00) and the MPEG Pack Start Code (00 00 01 BA), extracting clean 2324-byte payload chunks to reconstruct standard compliant video streams that any modern video player or editing suite can read without artifacting.
- Python 3.8+
- Tkinter:
- Arch / CachyOS / Manjaro:
sudo pacman -S tk - Ubuntu / Debian:
sudo apt install python3-tk - Fedora:
sudo dnf install python3-tkinter
- Arch / CachyOS / Manjaro:
- FFmpeg & FFprobe:
- Arch / CachyOS:
sudo pacman -S ffmpeg - Ubuntu / Debian:
sudo apt install ffmpeg
- Arch / CachyOS:
- Python 3.8+ (with Tcl/Tk enabled in installer)
- FFmpeg added to your system
PATH(e.g., viawinget install Gyan.FFmpegorchoco install ffmpeg).
Download the latest DiscMaster-x86_64.AppImage from the dist/ folder:
chmod +x DiscMaster-x86_64.AppImage
./DiscMaster-x86_64.AppImagegit clone https://github.com/punitr2007/Discmaster.git
cd Discmaster
chmod +x run.sh
./run.shpython3 discmaster.pyDouble-click discmaster_run.bat or run:
python discmaster.pyTo integrate DiscMaster into your Linux application launcher (GNOME, KDE Plasma, XFCE, etc.):
cp discmaster.desktop ~/.local/share/applications/To build the standalone portable Linux AppImage from source:
./build_appimage.shThe compiled AppImage will be placed in dist/DiscMaster-x86_64.AppImage.
Contributions, issues, and feature requests are welcome!
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Distributed under the Apache License 2.0. See LICENSE for more information.
