From 57a10c712aed39a74039379695c7f4f14015827a Mon Sep 17 00:00:00 2001 From: Good Guy Date: Sat, 3 Jun 2023 15:42:33 -0600 Subject: [PATCH] Andrea addition and clarification of Experimental builds + minor changes --- parts/DVD.tex | 6 +++++- parts/Developer.tex | 33 +++++++++++++++++++++++++-------- parts/Installation.tex | 8 +++++++- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/parts/DVD.tex b/parts/DVD.tex index 661821b..852dfdb 100644 --- a/parts/DVD.tex +++ b/parts/DVD.tex @@ -10,7 +10,8 @@ Some preliminary information follows. For NTSC, SD media is almost always $720\ Frames per seconds is usually $29.97$ for NTSC and $25$ fps for PAL. The standard SD dvd generally uses the MPEG-2 program stream with a filename extension of \texttt{m2v}. BD blu-ray media is not normally interlaced, but you can leave it interlaced. Blu-ray uses the MPEG transport stream which contains 1 or more program streams with a default filename extension of \texttt{m2ts}. Requirements for creating DVDs is the hardware device to write the media on and, obviously, the blank media for either BD or SD. When generating SD media, you will have to install \textit{dvdauthor} and for BD media, install \textit{udftools} if they are not on your system. Also, keep in mind that to mount filesystems for creating files and to burn DVDs, you will have to be root since you have to have privileges, unless special permissions have been provided for a non-root user. It is also highly recommended to -run the \CGG{} startup from a terminal window, instead of the icon, in order to see informative messages of how to actually write the output (at prompt: keyin \texttt{.AppImage}). A warning here -- writing blu-ray BDs and regular SDs can take a large amount of clock time. Keep in mind that a blu-ray can contain 25 hours of viewing, so would take multiple hours to just write one. @@ -33,6 +34,7 @@ A quick set of basic steps to create DVDs is immediately below and usually just \item If not logged in as root, you will get an error message in order to avoid doing a lot of work and then failing out because root is required for automount and to write on DVD hardware. \item Load your input source media via: \texttt{File $\rightarrow$ Load files}. \item Choose PAL or NTSC for SD/dvd or 1080P/24 for blu-ray in \texttt{Settings $\rightarrow$ Format}. + \item If DVD "Interlace Mode" of Bottom Field First is wanted, you MUST set that in \texttt{Settings $\rightarrow$ Format}. \item For blu-ray, choose BD Render or for PAL/NTSC, choose DVD \textit{Render} in \textit{File} menu. \item Designate a \textit{work path} with sufficient disk space and then Chk-OK. \item When the Batch Render window comes up, click on \textit{Start} and the batch jobs will run. @@ -127,6 +129,8 @@ Explanation of the choice boxes as seen in figure~\ref{fig:bluray_dvd} for both \begin{description} \item[Deinterlace] remove the interlace. Interlacing is a video scanning system in which alternating lines are transmitted so that half a picture is displayed each time the scanning beam moves down the screen. You lose a lot and the quality is bad when you view interlacing on a progressive TV. You might not really want to use deinterlace, because if you deinterlace non-interlaced media, it will look awful. +In the case of DVD only, for interlaced media when you do not check the Deinterlace option, it will always be done as Top Field First. +To get DVD media to be Bottom Field First, you MUST set the "Interlace Mode" in \texttt{Settings $\rightarrow$ Format}. \item[Scale] alter the spatial mapping of an image to increase or reduce the size; modifies the picture. When some programs scale from $4:3$ to $16:9$ they will automatically cut off the appropriate section of the image for you. It is necessary to keep in mind, that \textit{square pixels} is the true end goal of scaling, not the aspect ratio which could result in squished or stretched output. More information about scaling will be provided on a subsequent page with usage of the \textit{Scale Ratio} plugin. \item[Profile] for bluray only, use the default bluray.m2ts or choose bluray\_lpcm.m2ts for linear pulse code modulation for digitally encoding uncompressed audio information. \item[use tsmuxer] for bluray only, to use tsMuxer as a transport stream muxer for remuxing/muxing elementary streams, check this box. Usage of tsmuxer requires that your computer have the tsmuxer software installed along with any of its prerequisites. The default is do not use tsmuxer. diff --git a/parts/Developer.tex b/parts/Developer.tex index 5334f8d..ca0889e 100644 --- a/parts/Developer.tex +++ b/parts/Developer.tex @@ -98,18 +98,35 @@ FFmpeg is a \textit{strongly connected} component in the build linkage and widel \item \texttt{./configure} {\dots} \end{itemize} -Specific information on using the current ffmpeg GIT repository follows. You have to supply the actual URL location of the ffmpeg git as you can see in this example \texttt{bld.sh} script: +\section{Experimental Builds} +\label{sec:experimental_builds} +\index{build!experimental} + +The main compilation we have seen leads to building \CGG{} with its own internal ffmpeg, which includes its stability and feature patches. Normally ffmpeg is updated to version x.1 of each release. The reasons why it is best to use thirdparty with their static versions of the libraries and ffmpeg are explained in detail in \nameref{sec:latest_libraries} and in \nameref{sub:unbundled_builds}. + +You can still compile \CGG{} with ffmpeg-git to enjoy the latest version. This build may lead to feature variation and less stability, but in most cases will work perfectly fine. +You have to supply the actual URL location of the ffmpeg git as you can see in this example \texttt{bld.sh} script: + +\begin{lstlisting}[numbers=none] + #!/bin/bash + ./autogen.sh + ./configure --with-single-user --with-booby --with-git-ffmpeg=https://git.ffmpeg.org/ffmpeg.git + make && make install ) 2>1 | tee log + mv Makefile Makefile.cfg + cp Makefile.devel Makefile +\end{lstlisting} + +Since the procedure for obtaining the latest ffmpeg version is not always kept up-to-date and the line numbers will always change, you may have to create some patch first. Generally those line numbers are only updated by a developer when a new stable version with worthwhile features is actually included in the \CGG{} build. FFmpeg is constantly changing and many times the git version is not as stable as desired. + +Finally, it is possible to compile \CGG{} so that it uses ffmpeg which is already installed on the system. This build takes less time to compile and may increase performance in both rendering and timeline manipulation. Again, there may be variations in functionality and less stability. +Getting a build to work in a system environment is not easy. If you have already installed libraries which are normally in the thirdparty build, getting them to be recognized means you have to install the devel version +so the header files which match the library interfaces exist. If you want to build using only the thirdparty libraries installed in your system, just include \texttt{-–without-thirdparty} to your configure script. For example: \begin{lstlisting}[numbers=none] -#!/bin/bash -./autogen.sh -./configure --with-single-user --with-booby --with-git-ffmpeg=https://git.ffmpeg.org/ffmpeg.git -make && make install ) 2>1 | tee log -mv Makefile Makefile.cfg -cp Makefile.devel Makefile +./confgure --with-single-user --disable-static-build --without-thirdparty --without-libdpx \end{lstlisting} -Since the procedure for obtaining the latest ffmpeg version is not always kept up-to-date and the line numbers will always change, you may have to create that patch first. Generally those line numbers are only updated by a developer when a new stable version with worthwhile features is actually included in the \CGG{} build. FFmpeg is constantly changing and many times the git version is not as stable as desired. +The library, libdpx, is just such an example of lost functionality: this build of \CGG{} will not be able to use the DPX format. \section{Configuration Features} \label{sec:configuration_features} diff --git a/parts/Installation.tex b/parts/Installation.tex index 708409e..1b589ab 100644 --- a/parts/Installation.tex +++ b/parts/Installation.tex @@ -476,7 +476,13 @@ Getting a build to work in a custom environment is not easy. If you 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? -- 2.26.2