Repository navigation
Linux Build
Previous Page Home
Next Page Workflow Guide
Decode Launcher Universal GUI - 2026
TBC-Tools tbc-analyse 2026 with Diamler Chrysler NTSC SP demo tape.
Self Contained .AppImage binaries
There is also alternative decoders with Rust and Dotnet ports which lag behind in features but are vastly faster on modern hardware.
Note
AppImage files need read/write and self execution permissions.
To give the AppImage's permissions open terminal in the directory and use:
chmod +x decode.AppImage tbc-tools.AppImage
If the files are not named the above just rename them before running the command, all 3 binary packages should be in the same decode folder.
Linux Compatibility Doc - May be outdated
Decode launcher will open by default, if no CLI interaction is given.
Open a terminal and use the following commands :
Workflow assumes you have the decoder/tools/export in the same folder and at least FFmpeg installed systemwide this normally should be under User/Home/decode.
Run ./decode.AppImage with vhs, ld, cvbs, hifi at the start.
Example: ./decode.AppImage vhs calls vhs-decode, commands are universal.
Run ./tbc-tools.AppImage like any normal GUI app to open tbc-analyse, the ld-xxxx tools are used just like Linux via CLI but within the decode folder.
Today all post capture compression and resampling has moved to the cross-platform FLAC-Chop
If you encounter uncompressed data or legacy 10-bit packed .lds or wish to "chop" parts or start/ends of captures then this is the AIO tool for that task all modern captures should be made via MISRC GUI directly to FLAC and appropriate sample rates for the format being ingested.
Manual Install Docs
To build for contribution or testing builds should run though an GitHub actions workflow file, this replicates a real-world release, there is a nightly release profile for making easy quick test releases on your forks for sharing and development.
This is the workflow to manually build the decoders and toolchain.
The vhs-decode repository also has hifi-decode, cvbs-decode & ld-decode included.
As of 2026 this is more aimed at users who which to develop and tinker with decode vs use in a fixed production way as that should be based around the bianry releases.
[!TIP] If your having installation problems or want automated installation assistance, use Agent mode with Warp terminal, If it manages to solve an installation issue please make an issue ticket, and post your entire start to finish process dialogue on the terminal so documentation can be updated.
Install all dependencies required by LD-Decode and VHS-Decode:
sudo apt install curl git qtbase5-dev libqwt-qt5-dev libfftw3-dev libavformat-dev libavcodec-dev libavutil-dev ffmpeg pv pkg-config make cmake sox pipx g++ python3-dev python3-pip
Install vhs-decode repository:
Download decode suite:
git clone https://github.com/oyvindln/vhs-decode.git vhs-decode
Enter into decode directory :
cd vhs-decode
Install Rust Compiler (required for decode v0.3.5 onwards)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
Verify Rust Compiler
source "$HOME/.cargo/env" && echo "Rust version: $(rustc --version)" && echo "Cargo version: $(cargo --version)"
Ubuntu 22.04/Linux Mint 21/Debian may also need this library installed if one wants to use the GUI version of hifi-decode:
sudo apt install libxcb-cursor0
For Arch Linux
pacman -S base-devel git qt5-base qwt fftw ffmpeg pv cmake sox python python-pipx
[!NOTE] NixOS Linux has pre-made nur-packages for vhs-decode, cxadc and outer tools within the projects.
Set up pipx
pipx ensurepath
Install TBC-Video-Export
pipx install tbc-video-export
(There is also self-contained builds if install issues arise)
Optional dependencies for GPU (Nvidia Cards) FLAC compression support:
sudo apt install make ocl-icd-opencl-dev mono-runtime
Also Requires FlaLDF Download & Install via .deb for Linux
[!NOTE] Debian/ubuntu does not have a qt6 version of qwt in repositories as of yet so you have to inform the build script to use Qt5 if both qt5 and qt6 are installed with
-DUSE_QT_VERSION=5as it might otherwise try to compile with qt6 instead and failing to locate qwt. The option is otherwise not needed.
[!NOTE] HiFi-Decode preview function - the python library sounddevice requires portaudio (libportaudio2 on ubuntu) this is not included in the self-contained binaries and has to be installed locally if not already installed. (included with most desktop environments)
The vhs-decode repository also has hifi-decode, cvbs-decode, ld-decode included.
Build and install vhs-decode via pipx, using one of the below scripts.
pipx install .
pipx install .[hifi_gui_qt6]
pipx install .[intel]
If updating or reinstalling, you may need to add the --force flag to overwrite/update the previous installation.
pipx install .[intel,hifi_gui_qt6] --force
You may wish to use the updated tbc-tools over the legacy ld-tools which have ceased upstream dev work in favor for decode-orc as it is no longer under the main source repos.
There are binary releases which is the preferred way going forward for post-decode tooling.
To update your local repository enter git pull into the terminal while inside the vhs-decode directory, and then do pipx install .[hifi_gui_qt6] --force it will overwrite your previous installation and deploy the current version of the decoders.
To update the tools to the latest version, the steps under "Compile and Install ld-tools suite: (Required)" has to be re-ran after a git pull. The tools are not updated very often.
[!NOTE]
debian/ubuntu does not have a qt6 version of qwt in repositories as of yet, so you have to inform the build script to use Qt5 if both qt5 and qt6 are installed with-DUSE_QT_VERSION=5as it might otherwise try to compile with qt6 instead and failing to locate qwt. The option is otherwise not needed.
Go back to the main directory with
cd ..
To update the decoders and tools do git pull while inside the vhs-decode directory, and repeat the above build & compile steps.
[!WARNING] You may have to add
--forcewhen git pull updating i.gpipx install .[hifi_gui_qt6] --force
Binary versions, there is no automatic updates simply check back on the releases page from time to time.
Older builds may have use for testing or understanding, deprecated or older revisions of functions.
Between 2021-2024 there was 2 notable turning points in the building process.
Pre-Pipx switchover
Pre-Cmake switchover
To have standalone files which can be run without any Python on a destination system the following steps have to be taken.
first install pyinstaller
pip install pyinstaller
Within the vhs-decode directory:
Before pyinstaller can be used we have to compile the Cython based part of the project run
python setup.py build_ext --inplace
After that there should be new modules in the vhsdecode subdirectory, for Python3.11 it should look like this
hilbert.cpython-311-x86_64-linux-gnu.solinear_filter.cpython-311-x86_64-linux-gnu.sosync.cpython-311-x86_64-linux-gnu.so
Create binary for vhs-decode by using pyinstaller
pyinstaller vhs-decode
(or if you want it in one file: pyinstaller --onefile vhs-decode)
Create binary for hifi-decode by using pyinstaller
pyinstaller hifi-decode
(or if you want it in one file: pyinstaller --onefile hifi-decode)
Pyinstaller is platform dependent. So compiling on a Windows machine will only give Windows executables. Compiling on Linux only give Linux x86 executable, same applies to Apple X86 and Apple ARM.
Previous Page Home
- FAQ - Frequently Asked Questions
- Diagram Breakdowns
- Visual-Comparisons
- VCR Reports / RF Tap Examples
- Download & Contribute Data
- Speed Testing
- Hardware Installation Guide
- Finding RF Tap Locations
- Amplifier Setup Guide
- The Tap List Example VCR's
- Visual VBI Data Guide
- Closed Captioning
- Teletext
- WSS Wide - Screen Signalling
- VITC Timecode
- VITS Signals
- XDS Data (PBS)
- Video ID IEC 61880
- Auto Audio Align
- FLAC Chop
- Vapoursynth TBC Median Stacking Guide
- Ruxpin-Decode & TV Teddy Tapes
- Tony's GNU Radio For Dummies Guide
- Tony's GNU Radio Scripts