Skip to content

Repository files navigation

πŸ’Ώ DiscMaster β€” Optical Media Copy, Recovery & Processing Studio

DiscMaster Icon

Platform Python UI Style Engine Package License

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


πŸ“– The Optical Preservation Challenge

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 .cda descriptor 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.


✨ Features at a Glance

1. πŸ’Ώ Live Optical Disc Ripper

  • Video CD (VCD): Scans mounted disc structures (MPEGAV), parses .DAT tracks, 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, lsblk ROM devices) and Windows (PowerShell/CIM & WMIC).

2. πŸ”„ Image & Stream Converter

  • Native BIN + CUE Splitter: Directly parses .cue sheet index timing and slices monolithic .bin images into individual tracks natively.
  • TOC β†’ CUE Sheet Converter: Converts cdrdao .toc tables into standard .cue cue 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.

3. 🎬 Video Stitcher

  • 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).

4. 🎡 Audio Extractor

  • 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.

5. πŸ“ File Library & Technical Inspector

  • Embedded workspace directory browser with direct media player integration (xdg-open / default OS player).
  • Real-time ffprobe technical inspector displaying stream configurations, video/audio codecs, exact resolutions, framerates, channel layouts, durations, and bitrates.

🎨 Clean GTK / Brasero Desktop Aesthetics

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.

πŸ› οΈ Technical Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              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       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Low-Level CD-ROM XA Mode 2 Form 2 Sector Parsing

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.


πŸš€ Getting Started

Prerequisites

Linux (Arch / CachyOS / Ubuntu / Debian / Fedora)

  • Python 3.8+
  • Tkinter:
    • Arch / CachyOS / Manjaro: sudo pacman -S tk
    • Ubuntu / Debian: sudo apt install python3-tk
    • Fedora: sudo dnf install python3-tkinter
  • FFmpeg & FFprobe:
    • Arch / CachyOS: sudo pacman -S ffmpeg
    • Ubuntu / Debian: sudo apt install ffmpeg

Windows

  • Python 3.8+ (with Tcl/Tk enabled in installer)
  • FFmpeg added to your system PATH (e.g., via winget install Gyan.FFmpeg or choco install ffmpeg).

πŸ“₯ Installation & Running

Option 1: Standalone Linux AppImage (Portable)

Download the latest DiscMaster-x86_64.AppImage from the dist/ folder:

chmod +x DiscMaster-x86_64.AppImage
./DiscMaster-x86_64.AppImage

Option 2: Run via Launcher Script

git clone https://github.com/punitr2007/Discmaster.git
cd Discmaster
chmod +x run.sh
./run.sh

Option 3: Python directly

python3 discmaster.py

Option 4: On Windows

Double-click discmaster_run.bat or run:

python discmaster.py

πŸ–₯️ Desktop Integration (Linux)

To integrate DiscMaster into your Linux application launcher (GNOME, KDE Plasma, XFCE, etc.):

cp discmaster.desktop ~/.local/share/applications/

πŸ“¦ Building the AppImage

To build the standalone portable Linux AppImage from source:

./build_appimage.sh

The compiled AppImage will be placed in dist/DiscMaster-x86_64.AppImage.


🀝 Contributing

Contributions, issues, and feature requests are welcome!

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“œ License

Distributed under the Apache License 2.0. See LICENSE for more information.

Preserve your memories. Don't let your nostalgic media fade away into disc rot.

About

Classic GTK/Brasero-style desktop studio for ripping, recovering, transcoding, and stitching legacy optical media (VCD, DVD, Audio CD, BIN/CUE, and raw CD-ROM XA dumps).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages