\index{appimage}
The main way to install \CGG{} is to use the AppImage. This is updated regularly and works for every distro, since it already contains the necessary dependencies.
-A big advantage of using the AppImage format is that it is only 1/3 the size of the normal install,
-and since each release is named differently, you can keep a number of versions in a directory,
-and when testing from a terminal you just have to type CinGG, then hit tab, and complete it to
-the desired date release.
-For 64-bit systems you can choose between an image with up-to-date libraries or one that supports older libraries, which you should use only if the first image gives you problems with unsupported libs. There is also a 32-bit older distro available that has \textit{i686} as part of the filename that currently works on older distros but may not work on the newest distros
-(most of the popular Linux distributions such as Arch, Ubuntu, and Fedora have dropped support for this older architecture). In any case, if you are using a 32-bit Linux distro, you should compile your sources from git or use a precompiled binary\protect\footnote{Remember that a 32-bit distro does not address more than 4GB of memory, so you may have stability and performance problems with large, high-resolution mediafiles.}. And there is a 8/10/12 bit newer distro that handles 8 or 10 or 12 bits that has \textit{multibit} as part of the filename. Installing the appimage is simple:
+A big advantage of using the AppImage format is that it is only 1/3 the size of the normal install, and since each release is named differently, you can keep a number of versions in a directory, and when testing from a terminal you just have to type CinGG, then hit tab, and complete it to the desired date release. A small disadvantage of using the AppImage format is that some of the options to make minor text type changes are not available and any graphics board speedups most likely will not work. In many cases, rendering has been found to take a small percentage longer than if you do your own build or use a package RPM as documented at \nameref{sec:distro_with_cinelerra_included}. It is assumed that general processing will be slightly slower also.
-Download the file from:
+For 64-bit systems you can choose between an image with up-to-date libraries or one that supports older libraries (named \textit{older-distro}), which you should use only if the first image gives you problems with unsupported libs.
+
+There are also 32-bit distros available that have \textit{i386} as part of the filename that currently works on older distros but may not work on the newest distros
+(most of the popular Linux distributions such as Arch, Ubuntu, and Fedora have dropped support for this older architecture). In any case, if you are using a 32-bit Linux distro, you might want to compile your sources from git or use a precompiled binary\protect\footnote{Remember that a 32-bit distro does not address more than 4GB of memory, so you may have stability and performance problems with large, high-resolution mediafiles.}.
+
+Installing the appimage is simple, download the file from:
\url{https://cinelerra-gg.org/download/images/}
-Some example file names are as follows - where 8 digits represent yyyymmdd:
+Some example file names are as follows - where 8 digits represent yyyymmdd and i386 are 32-bit:
\begin{lstlisting}[style=sh]
- CinGG-20220131-x86_64.AppImage
+ CinGG-20241231-x86_64.AppImage
(currently based on Fedora 32, linux kernel 5.8.15, libc version 2.31)
- CinGG-20220131-x86_64-older-distros.AppImage
+ CinGG-20241231-x86_64-older-distros.AppImage
+ (currently based on Ubuntu 16.04, libc version 2.23)
+ CinGG-20240731-x86_64-older-distros-multibit.AppImage
+ (currently based on Fedora 29 - runs on RHEL8 - linux kernel 4.19.9, libc version 2.28)
+ CinGG-20241231-alternative_shortcuts.AppImage
(currently based on Ubuntu 16.04, libc version 2.23)
- CinGG-20220131-i686.AppImage
+ CinGG-20241231-i386.AppImage
(currently based on Debian 9, linux kernel 4.9, use "newer" for Debian 11.0)
- CinGG-20220131-i686-newer-distros.AppImage
+ CinGG-20241231-i386-newer-distros.AppImage
(currently based on Debian 11, linux kernel 5.10)
- CinGG-20220131-x86_64-multibit.AppImage
- (currently based on Fedora 32, libc version 2.31)
- CinGG-20220131-x86_64-older-distros-multibit.AppImage
- (currently based on Fedora 29 - runs on RHEL8 - linux kernel 4.19.9, libc version 2.28)
+ CinGG-20241120-x86_64-IntelHW.AppImage
+ (currently hardware bells and whistles for Intel to include QSV/AV1/oneVPL)
\end{lstlisting}
Make the file executable with the proper execute permissions either from the GUI of the Desktop Environment used (link to the file) or from a terminal window. Make sure you are already in the directory containing the appimage:
\begin{lstlisting}[style=sh]
- $ chmod u+x CinGG-yyyymmdd.AppImage
+ \$ chmod u+x CinGG-yyyymmdd.AppImage
\end{lstlisting}
Finally start the program from a window in the directory where the image is stored:
\begin{lstlisting}[style=sh]
- $ ./CinGG-yyyymmdd.AppImpage
+ \$ ./CinGG-yyyymmdd.AppImpage
\end{lstlisting}
or create a convenient desktop icon with a link to the run action, or do a \textit{Desktop Integration} manually or with external programs. There is a
drivers for your Operating System graphics board because libGLU.so and other OpenGL libraries are
not included in the AppImage.
-Using AppImage means you can't have the installation folder and work on the files. To unpack the AppImage and get its structure in folders and files see \nameref{sub:managing_appimage} To create, edit and manage appimages see \nameref{sub:built_appimage_scratch}.
+Using AppImage means you do not have the installation folder and work on the files. To unpack the AppImage and get its structure in folders and files see \nameref{sub:managing_appimage} To create, edit and manage appimages see \nameref{sub:built_appimage_scratch}.
+
+\subsection{AppImage with Standard Shortcuts}
+\label{sec:appimage_standard_shortcuts}
+
+In video editing it is important to learn how to use shortcuts to speed up your work. \CGG{} uses shortcuts different from those considered standard in both the Linux world and video editing. For example, \texttt{"s"} is used instead of \texttt{Ctrl+S}, \texttt{"q"} instead of \texttt{Ctrl+Q}, and even the classic editing keys \texttt{J, K, L} are different.
+In addition, in \CGG{} the keys are fixed and not customizable. A new user may have a hard time getting used to a new combination of shortcuts. To make it a little easier, an appimage containing a patch that makes use of some of the more frequently used classic key combinations is available. It can be downloaded \href{https://cinelerra-gg.org/download/images/CinGG-20230930-alternative_shortcuts.AppImage}{here} (note that the file contains the month and last day of the month, but you will want to go up a directory and download the latest date instead to include the current changes). A table showing the changes from \CGG{} mode to standard mode can be found here: \nameref{sec:alternative_shortcuts}.
\section{Download Already Built \CGG{}}%
\label{sec:download_already_built_cinelerra_gg}
\begin{lstlisting}[style=sh]
# This is where you need the 6.0GB of disk space:
cd /<build_path>/
-git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5
+git clone --depth 1 git://git.cinelerra-gg.org/goodguy/cinelerra.git cinelerra5
# Change to the cloned directory:
cd cinelerra5/cinelerra-5.1
\end{lstlisting}
\begin{lstlisting}[style=sh]
./blds/bld_prepare.sh <os> # where <os> represents the
# Operating System of
- # centos, fedora, suse, ubuntu, mint, debian, arch, debian-testing, ubuntu-testing.
+ # centos, fedora, suse, ubuntu, mint, debian, arch, debian-older, ubuntu-older.
./autogen.sh
./configure --prefix=/usr # optional parameters can be added here
make 2>&1 | tee log # make and log the build
\end{lstlisting}
-\texttt{bld\_prepare.sh} works for debian-testing, ubuntu-testing, and arch with some additional information. For Arch linux, a README file containing many more dependencies is maintained. For Gentoo, a README file lists other dependencies that have to be installed manually.
+Where <os> represents the Operating System supported by \CGG{}, such
+as centos, fedora, suse, ubuntu, mint, or debian.
+\texttt{bld\_prepare.sh} works for Arch and Gentoo with some additional information. For Arch linux, a README file containing many more dependencies is maintained. For Gentoo, a README file lists other dependencies that have to be installed manually.
\begin{list}{}{}
\item \href{https://cinelerra-gg.org/download/README.arch}{https://cinelerra-gg.org/download/README.arch}
\item \href{https://cinelerra-gg.org/download/README.gentoo}{https://cinelerra-gg.org/download/README.gentoo}
\end{list}
- \texttt{bld\_prepare.sh} option of debian-testing and ubuntu-testing is currently for perhaps the absolute latest versions and future distros and
- will be changed to more relevant names when they are released.
+ \texttt{bld\_prepare.sh} option of debian-older and ubuntu-older is currently for older operating system versions since before about 06/2022.
\item Check for obvious build errors:
\begin{lstlisting}[style=sh]
\begin{lstlisting}[style=sh]
make install
\end{lstlisting}
-Where <os> represents the Operating System supported by \CGG{}, such
-as centos, fedora, suse, ubuntu, mint, or debian.
The ``with-single-user'' parameter makes it so.
% Make and log build (
Check for errors before proceeding.
\begin{lstlisting}[style=sh]
# This is where you need the 6GB of disk space
cd /<build_path>/
-git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5
+git clone --depth 1 git://git.cinelerra-gg.org/goodguy/cinelerra.git cinelerra5
# Toplevel directory:
cd cinelerra5/cinelerra-5.1
\end{lstlisting}
A working example of how to build in Arch as a normal user:
\begin{lstlisting}[style=sh]
-$ git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5
-$ cd /home/USER/cinelerra5/cinelerra-5.1
-$ ./autogen.sh
-$ ./configure --with-single-user --with-booby
-$ make 2>&1 | tee /tmp/cin5.log && make install
+\$ git clone --depth 1 git://git.cinelerra-gg.org/goodguy/cinelerra.git cinelerra5
+\$ cd /home/USER/cinelerra5/cinelerra-5.1
+\$ ./autogen.sh
+\$ ./configure --with-single-user --with-booby
+\$ make 2>&1 | tee /tmp/cin5.log && make install
+\$ mv Makefile Makefile.cfg
+\$ cp Makefile.devel Makefile
\end{lstlisting}
+\subsection{8-bit build for x265 encoding}%
+\label{sub:8_bit_build}
+
+The standard versions of AppImage, the pre-compiled binary and any build you do yourself, is the \textit{multibit} version by default, which allows rendering of the x265 codec at all supported bit-depths. If instead you prefer to compile the 8-bit only version, there is the option to do so. The 8-bit version does not have 10/12-bit encoding of x265; the 8-bit version works on 8-bit bytes which is the standard word size for computers, while the multibit version has to use 2 words to contain all 10/12 bits so you might expect rendering to be slower. Various tests show that there is little or no difference in performance between the two versions, especially on modern systems, so the standard multibit version is the recommended one. If you have a need to compile the 8-bit version first perform the following steps:
+
+\begin{enumerate}
+\item Move to the thirdparty directory: cd /path\_to/cinelerra-5.1/thirdparty
+\item Edit the file "Makefile" by changing these 3 lines to switch the \# comment character like this:\\
+ \begin{tabular}{ll}
+ \#x265.cfg\_vars?=chmod +x ./configure; chmod +x ./multilib.sh;\\
+ x265.cfg\_vars?=\$(call cmake\_config,source)\\
+ x265.cfg\_params?= -DENABLE\_SHARED=no -DENABLE\_CLI=no\\
+ \end{tabular}
+\item Then delete or rename the 3 patch files in thirdparty/src with names of x265-xxxxx.patchx.
+\end{enumerate}
+
+Using the 8-bit version will result in an error if you use the Render formats \textit{h265-10bit} and \textit{h265-12bit}. Error message on the startup window is something like this:
+\begin{lstlisting}[style=sh]
+[libx265 @ 0x7fa00e643880] Specified pixel format yuv422p1xle is not supported by the libx265 encoder.
+\end{lstlisting}
\subsection{Notable Options and Caveats}%
\label{sub:notable_options_and_caveats}
success. Included in this section are some of the build variations
easily available for normal builds.
+You can, during compilation, use a patch that changes the main non-standard shortcuts of \CGG{} to standard ones (\texttt{Ctrl+S} and \texttt{J, K, L}, etc.).
+A table showing the changes from \CGG{} mode to standard mode can be found here: \nameref{sec:alternative_shortcuts}.
+The instructions for the build with the patch are as follows. After downloading the sources from the git repository in the usual way, you apply the patch:
+
+\begin{lstlisting}[style=sh]
+ cd cinelerra-5.1
+ patch -p1 -i alt_shortcuts.patch
+ ./bld.sh
+\end{lstlisting}
+
To see the full list of features use:
\begin{lstlisting}[style=sh]
have already installed libraries which are normally in the
thirdparty build, getting them to be recognized means you have to
install the \textit{devel} version so the header files which match
-the library interfaces exist. Below is the list of thirdparty
+the library interfaces exist. If you want to build using only the
+thirdparty libraries installed in your system, just include
+"--without-thirdparty" to your configure script. For example:
+\begin{lstlisting}[style=sh]
+./confgure --with-single-user --disable-static-build --without-thirdparty
+\end{lstlisting}
+Below is the list of thirdparty
builds, but this list may have changed over time.
% It's list of Table?
\texttt{a52dec}, set \texttt{a52dec} to auto and see if that
problem is solved by retrying the build with:
\begin{lstlisting}[style=sh]
-./confgure --with-single-user -enable-a52dec=auto .
+./confgure --with-single-user -enable-a52dec=auto
\end{lstlisting}
+If you have a problem with libdpx (DPX image format encoding/decoding library), resolve that by changing the configure line as shown to build without it:
+\begin{lstlisting}[style=sh]
+./confgure --with-single-user --without-libdpx
+\end{lstlisting}
+
+If you have some of your thirdparty libraries installed in non-standard
+locations or if you want to use a specific version, consider setting CFLAGS=-I/<path> to pass that location to the compiler so it knows where to find it.
With persistence, you can get results, but it may take several tries
to stabilize the build. If you need help, email the \texttt{log}
\begin{lstlisting}[style=sh]
cd /<repo\_path>/
-git clone "git://git.cinelerra-gg.org/goodguy/cinelerra" cin5
+git clone git://git.cinelerra-gg.org/goodguy/cinelerra cin5
Cloning into "cin5"...
remote: Counting objects: 20032, done.
Some other commands that are useful.
\begin{lstlisting}[style=sh]
-git clone "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cin5
+git clone git://git.cinelerra-gg.org/goodguy/cinelerra.git cin5
git pull # pull remote changes to the local version
git status # shows changed files
git clean -i # interactive clean, use answer 1 to "clean"
If you have a problem with the current GIT version, you can revert
to a previous working version easily. The commands to use will be
similar to these next lines which are then explained in more detail.
+You need "history" to do this, so should not have used the "depth 1"
+parameter on your GIT.
\strut
\begin{lstlisting}[style=sh]
\begin{lstlisting}[style=sh]
cd /<repo_path>/
-git clone --depth 1 "git://git.cinelerra-gg.org/goodguy/cinelerra.git" cinelerra5
+git clone --depth 1 git://git.cinelerra-gg.org/goodguy/cinelerra.git cinelerra5
cp -a /<repo_path>/cinelerra-5.1 /tmp/
cd /tmp/cinelerra-5.1
./bld.sh
gdb ./ci
\end{lstlisting}
+When you get the gdb prompt, type the letter "r", for run, and the windows will come up.
+If there is a crash, the windows will freeze and typing "bt" for backtrace in the startup window
+after the gdb prompt, provides useful information.
+
\subsection{Unbundled Builds}%
\label{sub:unbundled_builds}
\item Download the manual in LaTeX:
\begin{lstlisting}[style=sh]
-git clone "git://git.cinelerra-gg.org/goodguy/cin-manual-latex.git" master
+git clone git://git.cinelerra-gg.org/goodguy/cin-manual-latex.git master
\end{lstlisting}
\item Included in the download is the \texttt{translate\_manual} script. After modifying this file to have execute permission, run this script from a terminal window in the \textit{master} directory where it was downloaded (be aware that this script includes several \textit{rm} commands):
\item Download cinelerra-gg:
\begin{lstlisting}[style=sh]
cd /build_path/
-git clone "git://git.cinelerra-gg.org/goodguy/cinelerra.git"
+git clone git://git.cinelerra-gg.org/goodguy/cinelerra.git
cd cinelerra-gg/cinelerra-5.1
\end{lstlisting}
\item Apply cygwin patch:
\url{https://wiki.termux.com/wiki/Package\_Management}
\newline \url{https://wiki.termux.com/wiki/Building\_packages}
-\section{Distro with \CGG{} Included}%
+\section{Pre-built Packages and Distros with \CGG{} Included}%
\label{sec:distro_with_cinelerra_included}
\index{linux distro}
There are also some special complete distribution systems
available that include \CGG{} for audio and video production
-capabilities.
+capabilities as well as some pre-built packages in a build farm.
+
+\subsection{Build Farm pre-built Deb and RPM packages}
+\label{sec:packages}
+Especially advantageous to the way some users prefer to keep CinelerraGG updated
+is the build farm for \CGG{} deb and rpm packages that is maintained regularly
+at this location \url{https://github.com/einhander/cin-gg-packages/releases}.
+It will build packages on every git change in the main repo with
+releases corresponding to a build date, not a git commit date.
+Current build hosts are \textbf{Debian 12}, \textbf{Debian 11},
+\textbf{Suse Leap 15.5}, \textbf{Fedora 38}, and \textbf{Ubuntu 22.04}.
+This build farm creates packages for the latest current versions of these
+distros with the potential for additional distros to be added in the future.
+In addition, packages for some previously built dates will still be available
+in case you want to revert to a specific package date. You might have to
+install libsuil-0-0 (library for loading and wrapping LV2 plugin UIs) but
+you will be informed by the installation process if so.
+
\subsection{AV Linux}
\label{sec:AV_Linux}
Click \href{https://www.elivecd.org/}{Elive} for more information. The \CGG{} packages for the program
and the manual are in the direcotry at
+\href{https://repo.bookworm.elive.elivecd.org/pool/multimedia/c/} {Bookworm version 12} and
\href{https://repo.bullseye.elive.elivecd.org/pool/multimedia/c/} {Bullseye version 11} and
\href{http://repo.buster.elive.elivecd.org/pool/multimedia/c/}{Buster version 10} - just download
the .deb files inside that directory and install via “dpkg -i “.
-\section{Cinx and a “Bit” of Confusion}%
-\label{sec:cinx_and_a_bit_of_confusion}
-\index{cinx}
-
-Cinx is the exact same program as Cin. The X (x) represents the
-roman numeral 10 for 10-bit as opposed to 8-bit standard. The
-third-party library used for x265 must be specially compiled with
-\texttt{--bit-depth=10} in order to produce 10-bit rendered
-output. A cinx version can be built for most other distros if
-rendering at 10-bit is desirable instead of 8-bit.
-%
-This build will not be able to output 8-bit depth which means you
-have to retain the Cin version also.
-%
-Whatever build ffmpeg is linked to will determine what bit depth
-it can output. This is why there have to be separate builds. If
-you install both packages, Cin and CinX, you may get \textit{file
- conflicts of same file name} --- just continue.
-
-Keep in mind that the regular 8-bit version works on 8-bit bytes
---- the standard word size for computers, but the 10-bit version
-has to use 2 words to contain all 10 bits so you can expect
-rendering to be as much as twice as slow.
-%
-There is also a 12-bit version for consideration but currently the
-results are simply the same as 10-bit with padding to make 12-bit
-so it is of no value.
-
-\section{Multibit build for x265-8/10/12-bit}%
-\label{sec:multibit_build}
-\index{multibit}
-
-To build a version that can handle 8 bit, or 10 bit, or 12 bit videos, a patch is provided in the \texttt{thirdparty} subdirectory that needs to be applied to do so. Be aware that the compile may take more time and seems to be about twice as long. To apply the required patch:
-
-\begin{lstlisting}[style=sh]
-cd /path/to/cinelerra-5.1/thirdparty
-patch < compile_multibit_X265.txt
-mv x265_3.5.patch* src/.
-\end{lstlisting}
-Render formats \textit{h265-10bit} and \textit{h265-12bit} have been provided and will
-be operational after the applied patch is compiled in.
-
-%%% Local Variables:
-%%% mode: latex
-%%% TeX-master: "../CinelerraGG_Manual"
-%%% End: