|
1 | | -# Supported Operating Systems |
2 | | - |
3 | | -ld-decode and the various included tools are designed for (and tested on) Ubuntu 22.04 LTS (20.04 LTS no longer works). |
4 | | - |
5 | | -It is possible to compile and run ld-decode in other Linux environments however this is not regularly tested by the projects. But do read the [Linux Compatability Doc](https://docs.google.com/document/d/132ycIMMNvdKvrNZSzbckXVEPQVLTnH_YX0Oh3lqtkkQ/edit). |
6 | | - |
7 | | -For first-time users using a self contained combined build will be the most simple, just like installing or deploying any other piece of portable software this maintained from the [vhs-decode repository](https://github.com/oyvindln/vhs-decode/releases) which also contains hifi-decode and a cross code developed composite decoder cvbs-decode. |
8 | | - |
9 | | -### Self Contained Builds |
| 1 | +# Installation of ld-decode (from source code) |
10 | 2 |
|
| 3 | +# Supported Operating Systems |
11 | 4 |
|
12 | | -- [Linux Builds](https://github.com/oyvindln/vhs-decode/wiki/Linux-Build) |
| 5 | +ld-decode and the various included tools are developed and tested on Ubuntu 22.04 LTS. The tool-chain is a combination of python3 and Qt6/C++ applications providing the possibility of cross-platform deployment to many Linux flavours as well as non-OSS environments such as Windows and Apple MacOS. |
13 | 6 |
|
14 | | -- [Windows Builds](https://github.com/oyvindln/vhs-decode/wiki/Windows-Build) |
| 7 | +It is possible to compile and run ld-decode in other Linux environments; however this is not regularly tested by the project. There is a community maintained [Linux Compatibility Document](https://docs.google.com/document/d/132ycIMMNvdKvrNZSzbckXVEPQVLTnH_YX0Oh3lqtkkQ/edit) available. |
15 | 8 |
|
16 | | -- [MacOS Builds](https://github.com/oyvindln/vhs-decode/wiki/MacOS-Build) |
| 9 | +For first-time users using a pre-built binary build will be the most straight-forward way to get going. Please see the section on pre-built binaries below. |
17 | 10 |
|
18 | 11 | # System requirements |
19 | 12 |
|
20 | | - |
21 | 13 | ld-decode performs complex mathematics on huge datasets and therefore requires a fairly high-end PC for any expedient use, with AVX2 support notably helpful. |
22 | 14 |
|
23 | 15 | A Haswell (or newer) i9/i7 or Ryzen with 16-64Gb of RAM and 2TB of soild state & 8TB of hard-drive storage is recommended, however the minimum requirements are a Sandy Bridge i5 with 8Gb RAM and 512Gb of hard-drive. |
24 | 16 |
|
25 | | -Blu-Ray BDXL Optical discs 100-128GB (M-Disc/DataLifePlus) and LTO5 tapes can be recommended as relatively affordable long term archival storage formats. |
26 | | - |
27 | 17 | Decoding in simple terms is single core bias, so faster higher speed integrated CPUs like those found in the Apple M1 Max, and AMDs x3D line and newer are today's fastest chips, the decoders today wont be more efficient past 6 threads. (excluding the chroma-decoder and hifi-decode) |
28 | 18 |
|
29 | 19 |
|
30 | | -# Dedicated Install |
31 | | - |
32 | | - |
33 | | -For dedicated stations it is *highly* recommended that you install the recommended environment; if a bare-metal installation is not available, you can use tools such as virtualbox or VMware to install ld-decode in a virtual machine or container. |
34 | | - |
35 | | - |
36 | | -There is also the project combined builds found in the |
37 | | - |
38 | | - |
39 | | -# Pre-installation |
40 | | - |
41 | | - |
42 | | -Before attempting to directly install and deploy ld-decode ensure you have a sane (preferably fresh) Ubuntu installation that is up to date. |
43 | | - |
44 | | -Use the following commands to ensure you have the latest software packages: |
45 | | - |
46 | | - sudo apt update; sudo apt upgrade |
47 | | - |
48 | | -`SoX` can also be quite useful to install for use with scripts and secondary tools. |
49 | | - |
50 | | - sudo apt install sox |
51 | | - |
52 | | -[Windows SoX Install](https://sourceforge.net/projects/sox/files/sox/14.4.2/) |
53 | | - |
54 | | -Install [tbc-video-export](https://github.com/JuniorIsAJitterbug/tbc-video-export) for a quicker export experience. |
55 | | - |
56 | | - pipx install tbc-video-export |
57 | | - |
58 | | -To update uninstall and re-install, there is also self-contained binaries for this tool. |
59 | | - |
60 | | - |
61 | | -# Installation |
62 | | - |
63 | | - |
64 | | -## Ubuntu 22.04 LTS |
65 | | - |
66 | | - |
67 | | -To install ld-decode's associated tools enter the following commands into a command terminal in the order shown (you will need root access to the machine via the sudo command to perform the installation): |
68 | | - |
69 | | -(note: previously this apt line included Python packages, but using system Python installs is now deprecated.) |
70 | | - |
71 | | - sudo apt install git qt5-qmake qtbase5-dev libqwt-qt5-dev libqt5svg5-dev libfftw3-dev python3-tk libavformat-dev libavcodec-dev libavutil-dev ffmpeg openssl pv pkg-config cmake make |
72 | | - |
73 | | -Download the soruce repository |
74 | | - |
75 | | - git clone https://github.com/happycube/ld-decode ld-decode |
76 | | - |
77 | | ------ |
78 | | - |
79 | | - git submodule update --init |
80 | | - |
81 | | -Configure cmake for building |
82 | | - |
83 | | - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .` |
84 | | - |
85 | | ------ |
86 | | - |
87 | | - make |
88 | | - |
89 | | ------ |
90 | | - |
91 | | - sudo make install |
92 | | - |
93 | | - |
94 | | -The `make` stage will take the most time. You can speed this up considerably by giving a `-j` argument to parallelise the build (e.g. `make -j8` to use 8 CPU cores). |
95 | | - |
96 | | - |
97 | | -## Ubuntu 25.04 |
98 | | - |
99 | | - |
100 | | -First install dependencies |
101 | | - |
102 | | - sudo apt install git qt5-qmake qtbase5-dev libqwt-qt5-dev libqt5svg5-dev libfftw3-dev python3-tk libavformat-dev libavcodec-dev libavutil-dev ffmpeg openssl pv pkg-config cmake make python3-setuptools |
103 | | - |
104 | | -Go to the directory you wish to install ld-decode into normally username/home |
105 | | - |
106 | | - git clone https://github.com/happycube/ld-decode ld-decode |
107 | | - |
108 | | ------ |
109 | | - |
110 | | - git submodule update --init |
111 | | - |
112 | | ------ |
113 | | - |
114 | | - cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo .` |
115 | | - |
116 | | ------ |
117 | | - |
118 | | - make |
119 | | - |
120 | | ------ |
121 | | - |
122 | | - sudo make install |
123 | | - |
124 | | - |
125 | | -## Python virtualenv installation |
126 | | - |
127 | | - |
128 | | -To run ld-decode itself, you need to create a virtualenv (or similar) to run Python and ld-decode's dependancies. |
129 | | - |
130 | | -Once you have a Python you want to use, run: |
131 | | - |
132 | | - |
133 | | - python -mvenv $VIRTUALENV_DIR # ./ if a local copy` |
134 | | - |
135 | | ------ |
136 | | - |
137 | | - source $VIRTUALENV_DIR/bin/activate # or windows equivalent` |
138 | | - |
139 | | ------ |
140 | | - |
141 | | - install numpy numba scipy |
142 | | - |
143 | | -Then go to your ld-decode directory, use source when needed, then run ld-decode normally. |
144 | | - |
145 | | -## Fedora 43 installation |
146 | | - |
147 | | -### Install required DNF packages |
148 | | -``` |
149 | | -sudo dnf install -y \ |
150 | | - qt5-qtbase-devel \ |
151 | | - qt5-qtsvg-devel \ |
152 | | - qwt-qt5-devel \ |
153 | | - fftw-devel \ |
154 | | - python3-tkinter \ |
155 | | - ffmpeg \ |
156 | | - ffmpeg-free-devel \ |
157 | | - libavformat-free-devel \ |
158 | | - libavcodec-free-devel \ |
159 | | - libavutil-free-devel \ |
160 | | - openssl-devel \ |
161 | | - pv \ |
162 | | - pkgconf-pkg-config \ |
163 | | - cmake \ |
164 | | - make \ |
165 | | - python3-setuptools |
166 | | -``` |
167 | | - |
168 | | -### Install required Python version (3.12) |
169 | | -``` |
170 | | -sudo dnf install python3.12 python3.12-devel python3.12-libs |
171 | | -``` |
172 | | - |
173 | | -### Set up a Python virtual environment |
174 | | - |
175 | | -#### Set VDIR to your target directory |
176 | | -``` |
177 | | -export VDIR=~/venvs/ld-decode-venv |
178 | | -``` |
179 | | - |
180 | | -#### Create a Python 3.12 venv |
181 | | -``` |
182 | | -python3.12 -m venv "$VDIR" |
183 | | -source "$VDIR/bin/activate" |
184 | | -python -m pip install -U pip setuptools wheel |
185 | | -``` |
186 | | - |
187 | | -#### Clone ld-decode and install ld-decode into the venv |
188 | | -``` |
189 | | -cd $VDIR |
190 | | -git clone https://github.com/happycube/ld-decode.git |
191 | | -cd ld-decode |
192 | | -git submodule update --init |
193 | | -pip install -e . |
194 | | -pip install numba numpy scipy |
195 | | -```` |
196 | | -
|
197 | | -### Build ld-decode |
198 | | -``` |
199 | | -cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo . |
200 | | -make -j8 |
201 | | -sudo make install |
202 | | -``` |
203 | | -
|
204 | | -### Notes |
205 | | -To leave the venv type the following command: |
206 | | -``` |
207 | | -deactivate |
208 | | -``` |
209 | | -
|
210 | | -You will need to join the virtual environment before running any python-based ld-decode applications: |
211 | | -``` |
212 | | -export VDIR=~/venvs/ld-decode-venv |
213 | | -source "$VDIR/bin/activate" |
214 | | -``` |
215 | | -
|
216 | | -
|
217 | | -# Post-installation |
218 | | -
|
219 | | -
|
220 | | -For basic use instructions please see the [basic usage](../How-to-guides/Basic-usage-of-ld-decode.md) instructions on this wiki. For more advanced topics please browse the wiki contents using the navigation pane on the right of this page. |
221 | | -
|
222 | | -
|
223 | | -# Upgrading the existing installation |
224 | | -
|
225 | | -
|
226 | | -In order to upgrade your source tree to the latest code from the 'master' branch, issue the following commands: |
227 | | -
|
228 | | -Go into install |
229 | | -
|
230 | | - cd ~/ld-decode |
231 | | -
|
232 | | -Pull current changes |
233 | | -
|
234 | | - git pull |
235 | | -
|
236 | | -You can then compile and install using the same commands as above: |
237 | | -
|
238 | | - cmake . |
239 | | -
|
240 | | ------ |
241 | | -
|
242 | | - make |
243 | | -
|
244 | | ------ |
245 | | -
|
246 | | - sudo make install |
247 | | -
|
248 | | -There is usually no need to explicitly delete any existing files when upgrading - `make` will work out what needs to be rebuilt automatically. If you find that ld-decode does fail to compile after an upgrade, though, you should first try the command: |
249 | | -
|
250 | | - make clean |
251 | | -
|
252 | | -to remove the compiled files, then repeat the compilation commands above. |
253 | | -
|
254 | | -
|
255 | | -# Development branches |
256 | | -
|
257 | | -
|
258 | | -The installation above will install the 'master' github branch. This reflects the latest version of the code that's being actively worked on with new features and bug fixes. While the development version of ld-decode usually works well for most purposes, you should be aware that it may contain new bugs as well - if you find problems with it, please let us know! |
| 20 | +# Compiling from source |
259 | 21 |
|
260 | | -If you'd like a version of ld-decode that should definitely work - and especially if you're packaging ld-decode for a distribution - then you should use one of the numbered releases instead. We provide a new major release (with new features) about once a year, with occasional minor releases (with just bug fixes). |
| 22 | +For the most up-to-date instructions please see the build instructions found in [The main project repository](https://github.com/happycube/ld-decode) |
261 | 23 |
|
262 | | -New features are often developed on separate development branches. If you wish to use a development branch (and you know what it is for and how to handle active software development), you can clone it with a command such as the following: |
263 | 24 |
|
264 | | - git clone --single-branch --branch great-fix-dev https://github.com/happycube/ld-decode |
| 25 | +# Pre-built binaries |
265 | 26 |
|
266 | | -This example command will clone the great-fix-dev branch onto your local machine. |
| 27 | +If you are looking for pre-built binaries please see the page on [Windows Builds](Windows-Build.md) or [MacOS Builds](MacOS-Build.md) |
0 commit comments