Skip to content

Linux Build

Harry Munday edited this page Dec 12, 2024 · 11 revisions

Linux Installation

The README in the main GitHub repository will always be kept up-to-date for current builds and basic user guide help.

Linux Compatibility Doc

Downloads

Self Contained Binary's: Linux x86

Note

AppImage files need read/write and self execution permissions.

To give the AppImage permissions open terminal in the directory and use:

chmod +x decode.AppImage tbc-tools.AppImage 

Tip

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.

Binary Usage

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 ld-analyse, the ld-xxxx tools are used just like Linux via CLI but within the decode folder.

Run ./tbc-video-export --appimage tbc-tools.AppImage for 100% self contained use (requires FFmpeg installed system wide)

Manual Building

This is the workflow to manually build the decoders and toolchain.

The vhs-decode repository also has hifi-decode, cvbs-decode & ld-decode included.

Install all dependencies

sudo apt install clang python3-setuptools python3-numpy python3-scipy python3-matplotlib git qt5-default libqwt-qt5-dev libfftw3-dev python3-tk python3-numba libavformat-dev libavcodec-dev libavutil-dev ffmpeg openssl pv python3-setuptools make cython3 cmake pipx

For Ubuntu 22.04 that is:

sudo apt install git qtbase5-dev libqwt-qt5-dev libfftw3-dev libavformat-dev libavcodec-dev libavutil-dev ffmpeg pv pkg-config make cmake pipx

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

(Alternatively, a python virtual environment can be used instead of using pipx)

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=5 as 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)

When installing from source, if you want the gui you have hifi_gui and hifi_gui_qt6

QT5

pipx install .[hifi_gui]

QT6

pipx install .[hifi_gui_qt6]

Build VHS-Decode & LD-Tools Suite

Download VHS-Decode:

git clone https://github.com/oyvindln/vhs-decode.git vhs-decode

Install VHS-Decode:

cd vhs-decode

Build and install vhs-decode via pipx

pipx install .[hifi_gui_qt6]

Compile and Install ld-tools suite: (Required)

mkdir build2
cd build2
cmake .. -DCMAKE_BUILD_TYPE=Release -DUSE_QT_VERSION=5
make -j4
sudo make install

Go back to the main directory with

cd .. 

Updating

To update the decoders and tools do git pull while inside the vhs-decode directory, and repeat the above build & compile steps.

Binary versions, there is no automatic updates simply check back on the releases page from time to time.

Legacy Building

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

Manually Building Binaries

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.so
  • linear_filter.cpython-311-x86_64-linux-gnu.so
  • sync.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.

Page End

Previous Page Home

Clone this wiki locally