TBC Tools

June 11, 2026 ยท View on GitHub

This is the complete suite of tools for processing TBC (Time Base Corrected) files from the decode projects, vhs-decode, cvbs-decode, ld-decode.

This is an cross-platform (experimental) highly subject to change feature addtion focused branch based off the orignal ld-tools, directly after the cut-off for decode-orc development.

These tools are for analyzing decoded analog video sources, handling the 4fsc video data, sound, metadata and final tweaks in framing, chroma-decoding and video levels before converting to YUV digital video files.

Please see the releases page for ready to use self-contained binarys for production usage.

Images

Screenshot from 2026-04-04 19-16-33 Screenshot from 2026-04-04 19-12-14 Screenshot from 2026-05-02 07-02-52 Screenshot from 2026-05-02 07-03-24 Screenshot from 2026-05-02 07-01-35

Tool Categories

Core Processing Tools

  • ld-analyse - GUI tool for TBC file visual analysis & adjustment handler. Supports drag-and-drop loading of .tbc, .ytbc, .ctbc, .tbcy, .tbcc, .db, and .json files into the main window.
  • ld-process-vbi - Decode Vertical Blanking Interval data (Closed Captions, VITC - Vertical Interval Time Code, XDS Data)
  • ld-process-vits - Process Vertical Interval Test Signals
  • ac3-decoder - Decode AC3 data from demodulated AC3-RF QPSK symbols

EFM Decoder Suite

Replaces deprecated ld-process-efm with staged decoding and stacking capabilities

  • efm-handler - GUI handling tool for stages automatic use.
  • efm-decoder-f2 - Convert EFM T-values to F2 sections
  • efm-decoder-d24 - Convert F2 sections to Data24 format
  • efm-decoder-audio - Convert EFM Data24 sections to 16-bit stereo PCM audio
  • efm-decoder-data - Convert EFM Data24 sections to ECMA-130 binary data
  • efm-stacker-f2 - Combine multiple F2 captures for improved quality

Tools

  • ld-discmap - TBC and VBI alignment and correction tool
  • ld-dropout-correct - Advanced dropout detection and correction
  • ld-chroma-decoder - Color decoder for TBC LaserDisc video to RGB/YUV conversion
  • ld-disc-stacker - Combine multiple TBC captures for improved quality

Export and Conversion Tools

  • tbc-export-metadata - Export TBC metadata to external formats
  • ld-lds-converter - Convert between 10-bit packed and 16-bit data formats for DomesDay Duplicator captures.
  • tbc-metadata-converter - Convert between JSON & SQLite metadata formats
  • tbc-video-export - Direct to video export task handler for .tbc files.

Utility Scripts

  • ld-compress - Compress TBC files for storage (in scripts/)
  • filtermaker - Create custom filtering profiles (in scripts/)
  • tbc-video-export-legacy - Legacy TBC to video conversion (archived)

Getting Started

Analyse & Adjust: Use ld-analyse to assess capture quality and identify issues such as off-set active picture area or chroma phase/gain & video levels corrections.

Align: Using Auto Audio Align, your can align your source capture to your metadata and load in the audio for perfect cut.

Export: Convert to final formats using the export page to chroma-decode and encode via FFmpeg profile to a main and or proxy video file.

Linux Dependencies and Installation (Multi-Distro)

Use the Nix-based install/build instructions in INSTALL.md and BUILD.md:

  • Install to profile: nix profile install .#
  • Build locally: nix develop -c cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release && nix develop -c ninja -C build

Native distro packages (manual build)

Before building, ensure submodules are present (required for ezpwd):

git submodule update --init --recursive

Install dependencies for your distro family:

Package names can vary slightly by distro release; if one package name differs, install the equivalent Qt6/FFTW/SQLite/FFmpeg development package for your release.

Debian/Ubuntu (including Linux Mint)

sudo apt update
sudo apt install -y build-essential cmake ninja-build pkg-config qt6-base-dev qt6-tools-dev qt6-tools-dev-tools libqt6svg6-dev libfftw3-dev libsqlite3-dev ffmpeg libgl1-mesa-dev python3 python3-numpy

Fedora

sudo dnf install -y gcc-c++ cmake ninja-build pkgconf-pkg-config qt6-qtbase-devel qt6-qtsvg-devel fftw-devel sqlite-devel ffmpeg ffmpeg-devel mesa-libGL-devel python3 python3-numpy

Arch Linux / EndeavourOS / Manjaro

sudo pacman -S --needed base-devel cmake ninja pkgconf qt6-base qt6-svg fftw sqlite ffmpeg mesa python python-numpy

openSUSE Tumbleweed/Leap

sudo zypper install -y gcc-c++ cmake ninja pkgconf-pkg-config qt6-base-devel libqt6-qtsvg-devel fftw3-devel sqlite3-devel ffmpeg Mesa-libGL-devel python3 python3-numpy

Build and install:

cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release
cmake --build build -j"$(nproc)"
sudo cmake --install build

If you do not want to install system-wide, run tools directly from build/bin/.

Local CI parity checks

To keep local validation aligned with GitHub Actions, run the same guardrails and full build/test flow locally before pushing:

bash ci/run_local_ci_parity.sh

Useful scoped modes:

bash ci/run_local_ci_parity.sh --guardrails-only
bash ci/run_local_ci_parity.sh --build-test-only

Important Notes

  • Metadata Formats: SQLite (.tbc.db) is the 2026-present metadata format, JSON metadata (2017-2026) being still supported by the tools and used by many older builds for the decode suite.
  • File Extensions: TBC files use .tbc extension; metadata is commonly .tbc.json & .tbc.db (SQLite)
  • Dependencies: Most tools require FFmpeg and other multimedia libraries.
  • Performance: Many tools support multi-threading for fast real-time or faster processing.

Documentation

Each tool directory contains detailed README.md files with:

  • Basic usage instructions
  • Complete option references
  • Usage examples
  • Input/output format specifications
  • Troubleshooting Refrences

See individual tool directories for specific tool documentation.