Olaf improvement for README.pkgs + fixes and Andrea replacing improved images + fixes
[goodguy/cin-manual-latex.git] / parts / FFmpeg.tex
index 42aa0cd2f5d95fef3e210a629a2a2bf55823113e..f9c6269562dc5cc0a9b3eee2cfd83665432b702e 100644 (file)
@@ -6,27 +6,27 @@
 \section{FFmpeg Early Probe Explanation}%
 \label{sec:ffmpeg_early_probe_explanation}
 
-When you open media, a series of libraries and codec functions are used to \textit{probe} the data, to see if it can determine the type of file format and codec parameters needed to correctly decode the file.  If ffmpeg probes early -- \textit{Try FFMpeg first} is in effect for the FF button -- it will usually find some way to try to decode just about any contemporary media file.  But there are some times that the built in codecs are actually a better choice.  A lot of this may fall into the category of personal preference.  For example, some may prefer the mpeg library in the \CGG{} code over the ffmpeg code because it has more decoding capability and seems to be more robust when the media is damaged.  In that case you will want the FF button to read \textit{Try FFMpeg last}.
+When you open media, a series of libraries and codec functions are used to \textit{probe} the data, to see if it can determine the type of file format and codec parameters needed to correctly decode the file.  If ffmpeg probes early -- \textit{Try FFMpeg first} is in effect for the FF button (green icon) -- it will usually find some way to try to decode just about any contemporary media file.  But there are some times that the built in codecs are actually a better choice.  A lot of this may fall into the category of personal preference.  For example, some may prefer the mpeg library in the \CGG{} code over the ffmpeg code because it has more decoding capability and seems to be more robust when the media is damaged.  In that case you will want the FF button to read \textit{Try FFMpeg last}.
 
 To summarize, if ffmpeg probes early, you will never get to use the built in libraries, and if you want to skip over buggy old libraries, use ffmpeg early probe enabled so that the newest code will be tried first.
-The FF button is located in the upper right hand corner of the main window.
+The green icon is located in the upper right hand corner of the main window.
 
-When the icon is red, ffmpeg probes early is enabled and you will see it reads
- \textit{Currently: Try FFMpeg first} when moving over the FF button in the upper 
-right hand corner of the screen.  When the icon is black, ffmpeg probes early is disabled so that 
+When the icon is green, ffmpeg probes early is enabled and you will see it reads
+ \textit{Currently: Try FFMpeg first} when moving over the icon button in the upper 
+right hand corner of the screen.  When the icon is capital "C", ffmpeg probes early is disabled so that 
 ffmpeg probes late and it reads \textit{Currently: Try FFMpeg last}.  The initial default state of 
 the icon is on, that is, ffmpeg probes first. Suggestion is to leave it on except in a few special 
-cases where it may be better to have early probes disabled.  When you mouse over the main menu FF 
+cases where it may be better to have early probes disabled.  When you mouse over the main menu icon 
 toggle button, the text displays ffmpeg's \textit{Currently} set position.  Just left mouse click to change to the other setting.
-The ffmpeg early probe state is saved between sessions and is also affected by choices made in Probe Order (refer to section \ref{sub:probe_order_loading_media}). It is important to note that the various file indexes may need to be rebuilt if you change which codec is being used to decode the file.  There is a warning popup to remind you when you change the default ffmpeg early probe state (unless you have checked the box to no longer show the warning).  You can easily rebuild the index for a specific media file by going to the Resources window, right mouse click on that media, and choose \texttt{Rebuild Index} from the popup choices.
+The ffmpeg early probe state is saved between sessions and is also affected by choices made in Probe Order (refer to section~\ref{sub:probe_order_loading_media}). It is important to note that the various file indexes may need to be rebuilt if you change which codec is being used to decode the file.  There is a warning popup to remind you when you change the default ffmpeg early probe state (unless you have checked the box to no longer show the warning).  You can easily rebuild the index for a specific media file by going to the Resources window, right mouse click on that media, and choose \texttt{Rebuild Index} from the popup choices.
 
-Figure~\ref{fig:ff} shows (1) reddish colored FF in upper right hand corner of main window indicating
-that ffmpeg early probes is enabled; (2) \textit{Try FFMpeg last}  indicator message for ffmpeg early probes enabled (note that the color is different because you highlighted the icon); and (3) black colored FF indicates ffmpeg will be used last and you are changing the behavior so that \CGG{} warns you accordingly.
+Figure~\ref{fig:ff} shows (1) greenish colored icon in upper right hand corner of main window indicating
+that ffmpeg early probes is enabled; (2) \textit{Try FFMpeg last}  indicator message for ffmpeg early probes enabled (note that the icon is different because you highlighted the icon); and (3) "C"  icon indicates ffmpeg will be used last and you are changing the behavior so that \CGG{} warns you accordingly.
 
 \begin{figure}[htpb]
     \centering
-    \includegraphics[width=0.7\linewidth]{ff.png}
-    \caption{The three colors of \textit{Probe}}
+    \includegraphics[width=0.9\linewidth]{ff.png}
+    \caption{The three icons of \textit{FF Probe}}
     \label{fig:ff}
 \end{figure}
 
@@ -112,8 +112,8 @@ There are 4 special id's recognized by \CGG{} which cause special processing.  T
 
 \begin{description}
     \item[duration] overrides the probe duration when opening media for decoding
-    \item[video\_filter] adds a video stream filter, eg. edgedetect,\dots at the stream level
-    \item[audio\_filter] adds an audio stream filter, eg. echo,\dots at the stream level
+    \item[video\_filter] adds a video stream filter, eg.\ edgedetect,\dots at the stream level
+    \item[audio\_filter] adds an audio stream filter, eg.\ echo,\dots at the stream level
     \item[loglevel] sets the library logging level, as quiet, panic, \dots verbose, debug
 \end{description}
 
@@ -272,30 +272,45 @@ Then to use and to get 10 bit depth and preserve depth from decode to encode:
     \item check OK, and watch for messages in the terminal window
 \end{enumerate}
 
-\subsection{Viewing \& Modifying FFmpeg Format Options inside \CGG{}}%
-\label{sub:viewing_modifying_ffmpeg_cinelerra}
+\subsection{Modifying FFmpeg Format Options inside \CGG{}}%
+\label{sub:modifying_ffmpeg_cinelerra}
 
 There are thousands of options for using ffmpeg.  Now it is possible to \textit{view} the available options for a particular video and audio choice by using the \textit{wrench icon} and then clicking on the \textit{view} box.  FFmpeg has to be the selected file format for this feature to be visible.  It makes it a lot easier since only the applicable options show up as opposed to everything that ffmpeg can do.  These options are just \textit{Hints} and some may be missing due to the way that ffmpeg options are coded -- \CGG{} shows the option data ffmpeg has exposed.
 
-As an example, instead of reading the entire 264 library information, you only have to look at the shown available options.  Both the video and the audio are browsable. The options visible in the \textit{Audio/Video Preset} textbox are the final values which are used when rendering once you have checked OK.  For assistance in choosing the options you want, use the view popup to see the objects that go with the selected format tool, highlight the option, modify the parameter value in the box at the top of the \textit{Options} window based on what you want, and then click apply.  Updated parameter values or new parameters will be appended at the bottom.  Note that when you highlight an option, a tooltip will show up when available in the lower right hand corner which describes the option.  Also note that the Format and Codec types are shown on the top line of the Options window.
+As an example, instead of reading the entire 264 library
+information, you only have to look at the shown available options.
+Both the video and the audio are browsable. The options visible in
+the \textit{Audio/Video Preset} textbox are the final values which
+are used when rendering once you have checked OK\@.  For assistance
+in choosing the options you want, use the view popup to see the
+objects that go with the selected format tool, highlight the option,
+modify the parameter value in the box at the top of the
+\textit{Options} window based on what you want, and then click
+apply.  Updated parameter values or new parameters will be appended
+at the bottom.  Note that when you highlight an option, a tooltip
+will show up when available in the lower right hand corner which
+describes the option.  Also note that the Format and Codec types are
+shown on the top line of the Options window.
 
 Parameters exist in 3 layers: ffmpeg, codec, and an interface layer.  You can apply parameters to each layer.  The top 2 layers are accessed with the Kind popup menu. The ffmpeg layer is topmost, and is selected as Kind: ffmpeg.  It can specify many of the more common parameters, such as the bitrate, quality, and so on.  The middle layer is selected as Kind: codec.  These options can specialize your choices, and frequently includes presets and profiles useful for coding well known parameter sets, like \textit{profile=high422}, \textit{preset=medium}, or \textit{tune=film}, etc.   The interface layer may or may not be available.  It is usually accessible only by an \textit{opts} parameter, like \texttt{x264-params key=value:key=value}:\dots  These options are passed directly to the low level codec library.
 
-Figure~\ref{fig:video-preset} shows \textit{ffmpeg} video as the Kind. Note the x264opts (should actually be x264-params now) in the Video Preset window immediately below.
+With the \textit{format} button we can access further parameters, called \textit{Private Options}. A window opens that contains a new view button. More details in the section: \nameref{sub:extra_cin_option_ffmpeg}
+
+Figure~\ref{fig:video-preset} shows \textit{ffmpeg} video as the Kind. Note the x264opts (should actually be x264-params now) in the Video Preset window immediately below. There is also the \textit{format} window with private options.
 
 \begin{figure}[htpb]
     \centering
-    \includegraphics[width=0.8\linewidth]{video-preset.png}
-    \caption{FFmpeg wrench, video preset and view options}
+    \includegraphics[width=1.0\linewidth]{video-preset.png}
+    \caption{FFmpeg wrench, video preset, view and format options}
     \label{fig:video-preset}
 \end{figure}
 
-Figure~\ref{fig:audio-preset02} shows \textit{ffmpeg} video for the Kind. Note the yellow tooltip in the lower right hand corner describing the highlighted option.  Also note the allowed \textit{Range} values above the box provided for keyins.
+Figure~\ref{fig:audio-preset02} shows \textit{ffmpeg} video for the Kind. Note the yellow tooltip in the lower right hand corner describing the highlighted option.  Also note the allowed \textit{Range} values above the box provided for keyins. There is also the \textit{format} window with private options.
 
 \begin{figure}[htpb]
     \centering
-    \includegraphics[width=0.8\linewidth]{audio-preset02.png}
-    \caption{FFmpeg wrench, audio preset and view options}
+    \includegraphics[width=1.0\linewidth]{audio-preset02.png}
+    \caption{FFmpeg wrench, audio preset, view and format options}
     \label{fig:audio-preset02}
 \end{figure}