\section{Proxy}%
\label{sec:proxy}
+\index{proxy}
Proxies was introduced to allow for a smoother timeline experience. Full HD and everything from 4K size up are usually very large in file size. In addition, some commonly used codecs (e.g. h264/5) are very compressed and interframe type, so they are more stressful for timeline playback. These files cause performance problems on weaker PCs. As a solution the developers have introduced proxies to reduce the file size. Reduced means to minimize the resolution/dimension, as usually not the full resolution is needed, because the compositor usually takes only a fraction of the computer screen. Therefore the scaling factor, which indicates how much the original resolution should be reduced.
-There is also the \textit{proxy 1:1} that maintains the original resolution but still allows you to act on the codec (lowering the bit rate, for example). See also next section: \ref{sec:transcode}.
+There is also the \textit{proxy 1:1} \index{proxy 1:1} that maintains the original resolution but still allows you to act on the codec (lowering the bit rate, for example). See also next section: \ref{sec:transcode}.
When rendering, the original setting will be used to avoid loss of image quality.
-To use the proxy in a classic way, i.e. as a scaling, select \texttt{Settings $\rightarrow$ Proxy settings} and change the Scale factor from Original size to your downsized choice. You can choose ffmpeg as the File Format and a choice of various codecs associated with that. A good choice is the default of mpeg which can usually be quite fast. In addition, to modify values for that codec, click on the wrench icon.
+To use the proxy in a classic way, i.e. as a scaling, select \texttt{Settings $\rightarrow$ Proxy settings} and change the Scale factor from Original size to your downsized choice. You can choose ffmpeg as the File Format \index{file format} and a choice of various codecs associated with that. A good choice is the default of mpeg which can usually be quite fast. In addition, to modify values for that codec, click on the wrench icon.
We can use the \textit{Proxy 1:1} in two ways: setting "1" as \textit{Scale factor}, or check the \textit{Rescaled to project size (FFMPEG only)} button. In this mode we don't have scaling, i.e. downsize, but only variations of the codec parameters that allow to maintain the original resolution. The advantage is that you can use filters that require the original size to work well. NB: if we set any scaling, by activating the \textit{Rescaled to project size (FFMPEG only)} button we automatically lose scaling and enter Proxy 1:1 mode.
When you have completed your choices, just click OK, and then the video tracks will be rendered. This may take some time, but previous proxy renders will be reused.
-The proxy videos will be added to your assets in a separate Proxy folder, and the video track edits will use the proxies.
+The proxy videos will be added to your assets in a separate Proxy folder \index{proxy folder}, and the video track edits will use the proxies.
The assets in both the Media folder and Proxy folder will look proxied when dragged to the Viewer although the scale may be different.
Proxy downsizing renders all loaded tracks, but only work on the $1^{st}$ video layer of any multi-layer media. Rendered proxy media is saved in the same directory as the original media.
However, if you proxy your session, the clips do not get proxied to the Proxy folder, but if you Drag and Drop the clip from the Clip folder to the Viewer or the Timeline, you will see that it too is proxied.
Checking the \textit{Creation of proxy on media loading} results in any additional media loads to be automatically proxy scaled. However, single frame media such as PNG or JPEG \textit{stills}, can not be scaled to \textit{stream} media. If this type of media exists, you should \textit{Proxy 1:1}.
-If you get error messages when creating proxies, check the Video wrench settings. These usually default to values that are expected to work correctly for the \textit{File Format} and codec you selected but they can be changed and may result in errors. If you get an error message of \textit{check\_frame\_rate failed} followed by \textit{Error making proxy} in the popup Errors window, do just that and check the Frame rate value by going to the Resources window, Media folder, and use the right mouse button for the Info option for that specific media in question. You can change the frame rate in this window to a more codec acceptable value. Different codecs may have different legal values.
+If you get error messages \index{proxy error} when creating proxies, check the Video wrench settings. These usually default to values that are expected to work correctly for the \textit{File Format} and codec you selected but they can be changed and may result in errors. If you get an error message of \textit{check\_frame\_rate failed} followed by \textit{Error making proxy} in the popup Errors window, do just that and check the Frame rate value by going to the Resources window, Media folder, and use the right mouse button for the Info option for that specific media in question. You can change the frame rate in this window to a more codec acceptable value. Different codecs may have different legal values.
More specific information on which plugins need to use \textit{Proxy 1:1}. is provided here next. If the keyframe data uses coordinate data that is absolute, then the Factor scale = 1 should be used. If the data is normalized (like always $0-100\%$) then the proxy can be done with downsize (i.e. classic \textit{Proxy}). The session geometry format, shown in \texttt{Settings $\rightarrow$ Format} as $width \times height$, is changed if scale factor $\neq$ 1 is used to cause all of the data to be in the reduced format. If this affects the plugin operation, then \textit{Proxy 1:1} should be used. Examples of plugins that need the \textit{Proxy 1:1} are: Title, AutoScale, Scale, ScaleRatio, and Translate. Most others are safe to use with downsize.
\section{Transcode}%
\label{sec:transcode}
+\index{transcode}
-Transcode, an option under the \textit{Settings} pulldown right next to the Proxy settings option, is a type of full resolution \textbf{1:1 Proxy}.
+Transcode, an option under the \textit{Settings} pulldown right next to the Proxy settings option, is a type of full resolution \textbf{1:1 Proxy} \index{proxy 1:1}.
The process of transcoding works directly from the resource; it is independent of the timeline.
All of the loaded asset media will be converted, that is, rendered in the selected format and loaded onto the timeline.
-Menu choices besides the usual File Format and File Type include: \textit{Tag suffix} (to add to media filename), \textit{Remove originals from project}, \textit{Into Nested Proxy directory} (an option to have the file saved here instead of the location of the original media), and \textit{Beep on done} volume.
+Menu choices besides the usual File Format \index{file format} and File Type include: \textit{Tag suffix} (to add to media filename), \textit{Remove originals from project}, \textit{Into Nested Proxy directory} (an option to have the file saved here instead of the location of the original media), and \textit{Beep on done} volume.
The settings of the project have an effect, for example the dimensions are taken into account. The resulting files are also larger than if they were created directly with ffmpeg.
Transcode works for videos with or without audio and even single frame files, like png's.
You will get an error message if you already have a transcoded file in the selected format with the same suffix name and try to transcode it again with a different selection made -- you will have to delete that file first. An example would be
an already converted file that has both video and audio and now you request video only.
-The BIGGEST gain from using this is if you have media that is not \textit{seekable}, that is, you can play it from the beginning but can not move to another spot and have the audio or video play correctly. A video file with no keyframes makes seeking next to impossible, but then a Transcode generally adds these keyframes. This is particularly useful for the \texttt{mkv} container, which often has seek problems.
+The BIGGEST gain from using this is if you have media that is not \textit{seekable} \index{seek}, that is, you can play it from the beginning but can not move to another spot and have the audio or video play correctly. A video file with no keyframes makes seeking next to impossible, but then a Transcode generally adds these keyframes. This is particularly useful for the \texttt{mkv} container, which often has seek problems.
-Another important function of Transcode is being able to convert the project's media into a high-quality \textit{mezzanine} codec (sometimes also called \textit{intermediate} codec), which makes timeline work lighter and more efficient. In fact such codecs (ffv1, ProRes, DNxHD, OpenEXR, huffyuv, etc) are generally little or not at all compressed; the type of compression is intraframe --more suitable for editing, and the image quality (4:2:2 up; 10-bit color up; floating point; etc) is suitable for \textit{Color Correction}, \textit{Chroma Key} and \textit{Rotoscoping}. The use of mezzanine codecs leads to very large files, so you need to make sure you have enough storage space.
+Another important function of Transcode is being able to convert the project's media into a high-quality \textit{mezzanine} codec \index{mezzanine codec} (sometimes also called \textit{intermediate} codec \index{digital intermediate}), which makes timeline work lighter and more efficient. In fact such codecs (ffv1, ProRes, DNxHD, OpenEXR, huffyuv, etc) are generally little or not at all compressed; the type of compression is intraframe --more suitable for editing, and the image quality (4:2:2 up; 10-bit color up; floating point; etc) is suitable for \textit{Color Correction}, \textit{Chroma Key} and \textit{Rotoscoping}. The use of mezzanine codecs leads to very large files, so you need to make sure you have enough storage space.
\section{OpenEDL}%
\label{sec:openedl}
+\index{openEDL}
-To edit EDL that is included with your project as Clips, Nested
+To edit EDL \index{EDL} that is included with your project as Clips, Nested
Clips, Referenced File, or Xml you can use the option \textit{Open
EDL} in the Resources window for the highlighted media. Then
with a simple button click you can return to your main timeline project.
parameter values. Previously to make any changes to these types of
EDL you had to remake the whole clip from scratch. The program is
actually "opening" the file as it currently exists for that particular
-media so that it can be edited separately from the project EDL.
+media so that it can be edited separately from the project EDL. In other NLEs the term \textit{sub-timeline} is used.
-Here is how this works. In the Clip or Media folder or on a timeline
+Here is how this works. In the Clip \index{clip folder} or Media folder \index{media folder} or on a timeline
EDL edit, the option \textit{Open EDL} for the highlighted clip or
nested clip is available so that when you choose this option, that
EDL will be brought up on the timeline superseding the current EDL
-that exists on the timeline. Now, once the clip is open on the
+that exists on the timeline \index{timeline}. Now, once the clip is open on the
timeline, you can edit it however you want. The previous timeline
EDL is \textit{pushed onto a stack} so it can be recalled by
\textit{popping the stack} with a click of the left mouse button in
You can follow the same steps as above by first using the option
\textit{Nest to media} in the Clip folder which nests the clip and
moves it out of the Clip folder to the Media folder. Then use
-\textit{Open EDL} on the Nested EDL in the media folder. When you
+\textit{Open EDL} on the Nested EDL \index{nested EDL} in the media folder. When you
Open EDL and edit the changes, those changes will take affect on any
and all occurrences of that nested clip on the current and/or
original timeline. The option to unnest that clip and put that back
a new name.
For additional safety, the \textit{Open EDL} feature includes
-additional backup capabilities. Automatically \CGG{} saves a backup
+additional backup capabilities. Automatically \CGG{} saves a backup \index{backup}
when certain changes are made or you can always use the shortcut `b'
to do one yourself, although keep in mind it will be overwritten
whenever \CGG{} wants to do another backup. Now there is a shortcut
\section{File by Reference}%
\label{sec:file_by_reference}
+\index{file by reference}
-It is sometimes handy to have EDL assets not as a copy, but as a
+It is sometimes handy to have EDL \index{EDL} assets not as a copy, but as a
reference that is automatically updated into your project. Suppose
you have several short videos that at the end have the same credits
which include the current year such as 2019. But now it is 2020 and
Up until the addition of this feature, \CGG{} has always used copies
and no direct reference in order to ensure original data is never
-compromised. In the usual case, subprojects as xmls are copied into
+compromised (No Destructive editing). In the usual case, subprojects as xmls are copied into
a master project where subprojects had been inserted, so that if you
change something in a subproject or delete a subproject, it would
have no affect on the master project. But now with \textit{File by
\section{Trimming}%
\label{sec:trimming}
+\index{trimming}
With some edits on the timeline it is possible to do trimming. By
-trimming you shrink or grow the edit boundaries by dragging them. In
+trimming you shrink or grow the edit boundaries (\textit{head} or \textit{tail}) by dragging them. In
drag and drop mode or cut and paste mode, move the cursor over an
-edit boundary until it changes shape. The drag handle shows as a
+edit boundary until it changes shape. The drag handle \index{drag handles} shows as a
left or right facing fat arrow when you cursor near the clip start
or end. If the cursor faces left, the dragging operation affects
the beginning of the edit. If the cursor faces right, the dragging
follows.
\begin{description}
- \item[All Edits (ripple)] shorten or lengthen the start or end
+ \item[All Edits (ripple)] \index{trimmming: ripple} shorten or lengthen the start or end
of a single piece of media while moving all media to the right of
that clip up or down on the timeline correspondingly. Timeline
duration is modified. In a drag \textit{All Edits} operation, the
it forward or cuts data from the end of the edit if you move it
backward. All the following edits shift. If you drag the end of the
edit past the start of the edit, the edit is deleted.
- \item[One Edit (roll)] move the in and out point of a single
+ \item[One Edit (roll)] \index{trimming: roll} move the in and out point of a single
clip without changing the timeline duration. In a drag \textit{One
Edit} operation, nothing is cut or pasted. If you move the beginning
or end of the edit forward, the source reference in the edit shifts
forward. If you move the beginning or end of the edit backward, the
source reference shifts backward. The edit remains in the same spot
in the timeline but the source shifts.
- \item[Src Only (slip)] move the in and out point of a single
+ \item[Src Only (slip)] \index{trimming: slip} move the in and out point of a single
clip without changing the timeline duration. In a drag \textit{Src
Only} operation, nothing is cut or pasted. If you move the beginning
or end of the edit forward, the source reference in the edit shifts
forward. If you move the beginning or end of the edit backward, the
source reference shifts backward. The edit remains in the same spot
in the timeline but the source shifts.
- \item[Slide] a single clip is moved but retains its current in
+ \item[Slide] \index{trimming: slide} a single clip is moved but retains its current in
and out point; however the out point of the clip to the left changes
and the in point of the clip to the right also changes. Timeline
duration remains the same.
- \item[Edge Left/Right] moves the edge of the clips.
+ \item[Edge Left/Right] \index{trimming: edge} moves the edge of the clips.
\item[No effect] no changes are made. You might want to use
this choice to prevent accidental movements.
\end{description}
\label{fig:trim-color}
\end{figure}
-\paragraph{How to do a J-cut or L-cut} A J-cut is a split edit film
+\paragraph{How to do a J-cut or L-cut} A J-cut \index{J-cut/L-cut} is a split edit film
editing technique in which the audio from a following scene overlaps
the picture from the preceding scene, so that the audio portion of
the later scene starts playing before its picture as a lead-in to
\subsection{Split View in Compositor Using the Drag Handle with Trim}%
\label{sub:split_view_compositor_using_drag_trim}
-
+\index{trimming: split view}
The Trim Feature using the drag handle provides some good ways to
view your video while editing. The playback position in the
compositor is updated live and the view in the compositor can be
\section{Nesting clips and assets}%
\label{sec:nesting_clips_and_assets}
+\index{nested EDL}
\subsection{Nested Assets}%
\label{sub:nested_assets}
+\index{nested assets}
A nested asset is an EDL session that
embeds an existing EDL session, all tracks, all plugins, editing,
\subsection{Nested Clips}%
\label{sub:nested_clips}
+\index{nested clips}
It is also possible to create
\textit{clips} and convert them to \textit{nested edl}. This is
\begin{itemize}
\item The creation of the nested clip is based on the settings in \texttt{Settings $\rightarrow$ Format}. Be sure that the number of audio tracks and channels is the same as we want to have in the nested clip. In addition, it is better to make each audio track independent from the others (which could be linked in more than one channel) using the option: \texttt{Audio $\rightarrow$ Map 1:1}
- \item You can do any editing on the nested clip once it is loaded to the timeline. For example we can start an OpenEDL session to make the changes. Once out of the OpenEDL session it may be that the changes made are not visible in the original nested clip. You can fix this by doing RMB on the nested clip in the \textit{Resources/Media} window and choosing \texttt{Rebuild index}. This process may take some time depending on the size of
+ \item You can do any editing on the nested clip once it is loaded to the timeline. For example we can start an OpenEDL \index{openEDL} session to make the changes. Once out of the OpenEDL session it may be that the changes made are not visible in the original nested clip. You can fix this by doing RMB on the nested clip in the \textit{Resources/Media} window and choosing \texttt{Rebuild index}. This process may take some time depending on the size of
the media; because of the additional time required to do this, it is not done automatically in order to allow the user to make the decision as to when they are done editing enough and need to see the exact results
in order to save time.
\item Because of the way the timeline thumbnails are displayed, after editing using OpenEDL of a
\section{Multi-Camera / Mixer}%
\label{sec:multicamera_mixer}
+\index{multi-camera}
+\index{mixers}
Use the Mixer Viewer to see multiple media playing simultaneously in re-sizable mini-viewers. This can be used in various ways and is useful to edit videos shot by multiple cameras from different viewpoints that were simultaneously recorded in order to create a single good video. Everything will have to be initially synced so you can decide which one of the camera angles is best suited at any time.
\item From the \textit{File} pulldown, create a \textit{New project} with the desired format for Audio and Video output (or you can just use the default).
\item \texttt{File $\rightarrow$ Load} the media files you want to work with using \textit{Create new resources only}.
\item In the Resources window, with the Media folder, highlight the list of media you want to \textit{Mix}. This is done using a ctrl or shift mouse button press as you would in a standard listbox selection.
- \item Right click the mouse on the media selection and choose \textit{open mixers}. This opens multiple mixer viewer windows, one for each media item that was highlighted. You can
+ \item Right click the mouse on the media selection and choose \textit{open mixers} \index{mixer: open mixers}. This opens multiple mixer viewer \index{mixer viewer} windows, one for each media item that was highlighted. You can
do them 1 at a time instead. This also adds the source media tracks to the main window.
- \item Now use the timeline to play and you will see all viewers/cameras playing. Stop when you get to the
+ \item Now use the timeline \index{timeline} to play and you will see all viewers/cameras playing. Stop when you get to the
end of the \textit{good} camera playback.
\item Simply double click the \textit{good} mixer viewer and from where you first started playing to the playback insertion pointer is the source section, which will be pasted in the destination video/audio tracks at the top of the new project.
\item Repeat steps 6-7. Start playing again, stop when you want, double click the desired mini-viewer!
\subsubsection*{But, I want to use only the first set of audio tracks\dots}%
\label{ssub:but_use_only_first_audio}
-There are many cases where you may want to compose using media from several different tracks while using the the same audio tracks as associated from a specific viewer. Since mixer source tracks can be updated any time by using a mixer toggle, this makes it possible to do this.
+There are many cases where you may want to compose using media from several different tracks while using the the same audio tracks as associated from a specific viewer. Since mixer source tracks can be updated any time by using a mixer toggle \index{mixer toggle}, this makes it possible to do this.
Procedure to update the mixer audio source track list:
\item \textit{Dst tracks} should be playable and armed in the main window patchbay gui.
\end{itemize}
-Each mixer viewer maintains a list of the tracks which will be used as src. This list is made visible selecting the window with the left mouse button. When the mixer viewer is selected, a highlight is drawn around the media image. All track patchbay \textit{mixer} toggles are updated to reflect the src tracks included in the selected viewer src track list. The track patchbay toggles can be used to manage the list.
+Each mixer viewer maintains a list of the tracks which will be used as src. This list is made visible selecting the window with the left mouse button. When the mixer viewer is selected, a highlight is drawn around the media image. All track patchbay \textit{mixer} toggles are updated to reflect the src tracks included in the selected viewer src track list. The \textit{play track} patchbay toggles can be used to manage the list.
\begin{itemize}[noitemsep]
\item \textit{Turning on} a toggle (pointing up) includes the track in the src track list.
\subsubsection*{Using Proxy with \textit{Open Mixers}}%
\label{ssub:using_proxy_open_mixers}
-The best way to use proxy with your multiple cameras is to follow the steps below:
+The best way to use proxy \index{proxy} with your multiple cameras is to follow the steps below:
\begin{enumerate}
\item Load media with insertion strategy of \textit{create resources only}.
\item Choose the size and other options you want and click the checkmark OK. If you choose the option \textit{Beep when done} you will hear a short beep if all media is already proxied or a longer beep when all proxies have been created.
\item When your editing is complete, use \textit{Settings} pulldown and proxy to \textit{original size}.
\end{enumerate}
-Instead of Open Mixers, you can Insert Mixers with new tracks at the timeline insertion point.
+Instead of Open Mixers, you can Insert Mixers \index{mixer: insert mixers} with new tracks at the timeline insertion point.
\subsubsection*{Options available in the \textit{Mixer Windows}}%
\label{ssub:options_available_with_mixers}
+\index{mixer viewer RMB options}
-There are several options you will see in each Mixer window that help with using them. These
+There are several options you will see in each Mixer viewer \index{mixer viewer} that help with using them. These
are shown in figure~\ref{fig:mixer-playable}. To use these, RMB in the desired mixer window,
and choose one of the options as described here.
\begin{enumerate}
\item Fullscreen / Windowed - will bring up a fullscreen display of that window or revert to the original size.
\item Resize Window - allows for resizing the window to a choice of different sizes.
- \item Tile Mixers - makes it easy to get all of the mixers nicely tiled to a standard size.
+ \item Tile Mixers \index{mixer: tile mixers} - makes it easy to get all of the mixers nicely tiled to a standard size.
This is also available in the \textit{Window} pulldown.
\item Playable - enabled by default so that you will see a checkmark next to it in the
popup. The benefit of making a mixer window not playable is to save cpu time. When a specific
\end{figure}
\begin{description}
- \item[Mixer Viewer:] (Shift-M) opens a new empty \textit{Mixer 1} window, which will then be associated with a track. We can open as many Mixers as we like.
- \item[Drag Tile mixers:] (Alt-t) the default size of a mixer window is related to the std size of the \textit{Viewer} window. If we want to modify it at our convenience, we can build a window of the desired size with the \textit{Drag Tile mixers} function and then automatically order our mixers within it with the right click of the mouse.
- \item[Align mixers:] see \nameref{sub:audio_video_sync_waveform}
- \item[Mix masters:] this feature makes it very easy to get into the multi-camera mixer mode after tracks have already been set up and edited. Before this addition, you could only \textit{Open Mixers} from original media assets in the \textit{Resources} window.
+ \item[Mixer Viewer:] \index{mixer viewer} (Shift-M) opens a new empty \textit{Mixer 1} window, which will then be associated with a track. We can open as many Mixers as we like.
+ \item[Drag Tile mixers:] \index{mixer: drag tile mixers} (Alt-t) the default size of a mixer window is related to the std size of the \textit{Viewer} window. If we want to modify it at our convenience, we can build a window of the desired size with the \textit{Drag Tile mixers} function and then automatically order our mixers within it with the right click of the mouse.
+ \item[Align mixers:] \index{mixer: align mixers} see \nameref{sub:audio_video_sync_waveform}
+ \item[Mix masters:] \index{mixer: mix masters} this feature makes it very easy to get into the multi-camera mixer mode after tracks have already been set up and edited. Before this addition, you could only \textit{Open Mixers} from original media assets in the \textit{Resources} window.
\item[Entries:] If the mixers of several sources have been opened, the entries of each assets will appear, useful for recalling a specific mixer window.
\end{description}
\subsection{Recover Mixer Windows}%
\label{sub:recover_mixer_windows}
+\index{mixer: recover mixer window}
It is a hazard that you might accidentally \textit{undo} (\texttt{z or Ctrl-z}) too far and lose your mixer windows. Here are the steps to recover. It is recommended that you make a backup of your project before performing the recovery steps just in case there are other problems.
\section{Audio/Video sync via Waveforms/Timecodes}%
\label{sec:audio_video_sync}
+\index{audio/video sync}
\subsection{Audio/Video sync via Waveform}%
\label{sub:audio_video_sync_waveform}
+\index{audio/video sync via waveform}
-Multi-camera footage of a single event can have various shots starting and ending at different times. So when the footage start times are different, you can use the mixer audio to synchronize the clips on the timeline. The program algorithm attempts to find and align automatically the waveforms of the media.
+Multi-camera \index{multi-camera} footage of a single event can have various shots starting and ending at different times. So when the footage start times are different, you can use the mixer audio to synchronize the clips on the timeline. The program algorithm attempts to find and align automatically the waveforms of the media.
Synchronizing multiple camera videos based on audio tracks can be done with \CGG{} easily enough with the \texttt{Window $\rightarrow$ Mixers$\dots$ $\rightarrow$ Align mixers} option. Align mixers brings up a window displaying your mixers, the currently selected Master Track, and a list of all of the Audio Tracks (figure~\ref{fig:mixer-align01}). There is a limit of 32 audio tracks per each mixer (that should be enough!)
\subsection{Align Timecodes}%
\label{sub:align_timecodes}
+\index{audio/video sync via timecodes}
+\index{align timecodes}
Align Timecodes is especially useful in the case where you create video with multiple cameras capable of recording a timecode in the metadata of each file. Let’s say we have recorded three videos at the same time at a concert with each camera set up at unique positions and at different angles. All of the cameras start recording at various times but were synchronized with the same master clock (\textit{Timecode Sync Generator} or \textit{Jam Sync timecode}) so that the recordings are timestamped with that synchronized time. For example, the 3 cameras have embedded metadata as follows: \quad \textbf{camera 1} = 00:00:00:01 \quad \textbf{camera 2} = 00:00:10:07 \quad \textbf{camera 3} = 00:00:17:22
\label{fig:timecode-01}
\end{figure}
-Timecode synchronization is performed by the program when you choose the option \textit{Align Timecodes} and works in 2 steps. The first automatic step is to locate the earliest timecode and the second step is to align the edits on the armed tracks using that time on the timeline.
+Timecode synchronization is performed by the program when you choose the option \textit{Align Timecodes} and works in 2 steps. The first automatic step is to locate the earliest timecode \index{timecode} and the second step is to align the edits on the armed tracks using that time on the timeline.
When you load in the three files to different tracks, they'll be placed on a timeline that starts from $00:00:00:00$ as usual. But, by middle mouse clicking (MMB) on any of the video tracks, you can view the timecode embedded at that point in that file.
\chapter{Keyframes}%
\label{cha:keyframes}
+\index{keyframes}
-The word \textit{keyframe} has at least 3 contextual meanings in the NLE environment. First, the oldest meaning, is the \textit{I-Frame} definition used in codecs algorithms. These are \textit{key} frames that begin a new sequence of pictures, and are anchor points for repositioning (seeks). Next are the automation parameter data points. These are usually input to primitive math forms, like translation and zoom. And last are blobs of data that are chunks of parameters to plugins that can do almost anything. The data can be a simple value, like a fader value, or more complex like a group of points and colors in a sketcher plugin keyframe. The word keyframe has changed a lot in meaning. In the context of \CGG{}, keyframes are data values that have been associated to media on the timeline which affect the media presentation. So a keyframe no longer refers to a frame, but to a position on the timeline.
+The word \textit{keyframe} has at least 3 contextual meanings in the NLE environment. First, the oldest meaning, is the \textit{I-Frame} definition used in codecs algorithms. These are \textit{key} frames that begin a new sequence of pictures (GOP= Group Of Pictures), and are anchor points for repositioning (seeks) \index{seek}. Next are the automation parameter data points. These are usually input to primitive math forms, like translation and zoom. And last are blobs of data that are chunks of parameters to plugins that can do almost anything. The data can be a simple value, like a fader value, or more complex like a group of points and colors in a sketcher plugin keyframe. The word keyframe has changed a lot in meaning. In the context of \CGG{}, keyframes are data values that have been associated to media on the timeline which affect the media presentation. So a keyframe no longer refers to a frame, but to a position on the timeline (timecode).
In \CGG{}, there are two general types of keyframe data,
\textit{automation keyframes} (autos) which are drawn as colored
\section{Automation Keyframes /\,Autos}%
\label{sec:automation_keyframes_autos}
+\index{keyframes: autos}
The \textit{autos} are created by clicking on an \textit{automation curve} to establish the time position for the new keyframe anchor point. The basic nature of these simple auto values make them primitive operations that are easy to apply when needed.
-There are many automation curve types, and most are not normally visible or clickable. To make them visible, use the \texttt{View} pulldown, or open the \texttt{Window $\rightarrow$ Show Overlays}. This window allows toggling of the parameters in the \textit{View} pulldown but is more convenient because you can leave the window up to change values quickly. If all of the automation curves are turned on, the timeline will be quite cluttered, and so usually only the parameters of interest are enabled during use. When keyframes are selected, they are drawn on the timeline over the tracks to which they apply. The keyframe is represented on the timeline as a little square on the curve, for example as in fade, or as a symbol as in a mask. This square, timeline attachment point, can be used for positioning by clicking on a keyframe anchor and using drag and drop to set the new position.
+There are many automation curve types, and most are not normally visible or clickable. To make them visible, use the \texttt{View} pulldown, or open the \texttt{Window $\rightarrow$ Show Overlays} \index{show ovelays window}. This window allows toggling of the parameters in the \textit{View} pulldown but is more convenient because you can leave the window up to change values quickly. If all of the automation curves are turned on, the timeline will be quite cluttered, and so usually only the parameters of interest are enabled during use. When keyframes are selected, they are drawn on the timeline over the tracks to which they apply. The keyframe is represented on the timeline as a little square on the curve, for example as in fade, or as a symbol as in a mask. This square, timeline attachment point, can be used for positioning by clicking on a keyframe anchor and using drag and drop to set the new position.
The automation keyframes include:
\section{Using Autos}%
\label{sec:using_autos}
-The first click on the curve, creates a keyframe which you can click drag on to reposition. The second click at a later position, generates the smoothing by creating a smooth ramp. Ctrl-dragging on a keyframe round control point handle changes the value of either the input control or the output control. This affects the sharpness of the curve. While the input control and the output control can be moved horizontally as well as vertically, the horizontal movement is only for legibility and is not used in the curve value. When you Shift-drag on a timeline curve, the keyframe snaps to the value of either the next or previous keyframe, depending on which exists. It will snap up or down depending on direction of movement. This lets you set a constant curve value without having to copy the next or previous keyframe.
+The first click on the curve, creates a keyframe which you can click drag on to reposition. The second click at a later position, generates the smoothing by creating a smooth ramp. Ctrl-dragging on a keyframe round control point handle \index{control point handle} changes the value of either the input control or the output control. This affects the sharpness of the curve. While the input control and the output control can be moved horizontally as well as vertically, the horizontal movement is only for legibility and is not used in the curve value. When you Shift-drag on a timeline curve, the keyframe snaps to the value of either the next or previous keyframe, depending on which exists. It will snap up or down depending on direction of movement. This lets you set a constant curve value without having to copy the next or previous keyframe.
-To make it easier to navigate curve keyframes, since there is not much room on the timeline for a wide range of curve values, you need to zoom the curves in and out vertically to have any variability. This is done by 2 tools: the automation fit button, Alt-f, and automation zoom menu which is seen at the bottom of the main window (figure~\ref{fig:automation}). The automation fit button scales and offsets the vertical range so the selected curve area appears in the timeline. If a region of the timeline is highlighted by the cursor, only that region is scaled. In/out points do not affect the zoomed region. The automation zoom menu manually changes the vertical scaling of the curves in multiples of 2. Click on its tumbler to change the zoom. Alt$-\uparrow$ and Alt$-\downarrow$ change the automation zoom from the keyboard.
+To make it easier to navigate curve keyframes, since there is not much room on the timeline for a wide range of curve values, you need to zoom the curves in and out vertically to have any variability. This is done by 2 tools: the automation fit button, Alt-f, and automation zoom \index{zoom panel} menu which is seen at the bottom of the main window (figure~\ref{fig:automation}). The automation fit button scales and offsets the vertical range so the selected curve area appears in the timeline. If a region of the timeline is highlighted by the cursor, only that region is scaled. In/out points do not affect the zoomed region. The automation zoom menu manually changes the vertical scaling of the curves in multiples of 2. Click on its tumbler to change the zoom. Alt$-\uparrow$ and Alt$-\downarrow$ change the automation zoom from the keyboard.
\begin{figure}[htpb]
\centering
\label{fig:automation}
\end{figure}
-\noindent Other mouse actions have the following effects:
+Other mouse actions have the following effects:
\begin{itemize}
\item Double left mouse click on a curve Fade or Speed line will create ganged keyframes so that there is a
\end{enumerate}
\end{itemize}
-You can click mouse button 3 on a keyframe box and a menu pops up with the first menu item showing the keyframe type. The top menu item can be activated for immediate access to update the automation keyframe value. Some keyframe types, which have values that can be manipulated in another way than by dragging the color coded line, now show up with a different colored background to make them more visible. Keep in mind that Zoombar ranges/values must be set to appropriate values when working with specific keyframe types, such as Fade or Speed. If you do not see the auto line in the visible area of the video track, try the key combination Alt-f or select the speed in the \textit{Automation Type} drop-down menu at the bottom of the main window. To the right of this field is \textit{Automation Range} where you can set the display ratio of these lines. Simply change the values until the lines are visible again.
+You can click mouse button 3 on a keyframe box \index{keyframes MMB options} and a menu pops up with the first menu item showing the keyframe type. The top menu item can be activated for immediate access to update the automation keyframe value. Some keyframe types, which have values that can be manipulated in another way than by dragging the color coded line, now show up with a different colored background to make them more visible. Keep in mind that Zoombar \index{zoom panel} ranges/values must be set to appropriate values when working with specific keyframe types, such as Fade or Speed. If you do not see the auto line in the visible area of the video track, try the key combination Alt-f or select the speed in the \textit{Automation Type} drop-down menu at the bottom of the main window. To the right of this field is \textit{Automation Range} where you can set the display ratio of these lines. Simply change the values until the lines are visible again.
Figure~\ref{fig:overlays1} and figure~\ref{fig:fade} shows several color coded lines for different key\-fra\-mes and specifically the slider bar for the Fade keyframe. It is in the same color as the color coded keyframe type line which is the same color which would be shown in the \textit{Show overlays} window figure~\ref{fig:overlays_window}.
\label{fig:fade}
\end{figure}
-In the \textit{Editing} section of \texttt{Settings $\rightarrow$ Preferences, Interface} tab there is \textit{Keyframe reticle} with options of Never, Dragging, or Always. This is used to help in checking edit alignment across tracks. (A reticle is a sighting line used to line up visual items, like cross hairs in a eyepiece.) The appearance and function of sighting lines can be changed when dragging auto keyframes. To see the effect, create some fader autos and drag a few to see the reticles drawn --- you will see something similar to the next screencast (figure~\ref{fig:always}). \textit{Always} renders a line over all plugins, and \textit{dragging} only over the drag icon. \textit{Never} draws nothing. The default is \textit{dragging}.
+In the \textit{Editing} section of \texttt{Settings $\rightarrow$ Preferences, Interface} tab there is \textit{Keyframe reticle} \index{keyframes reticle} with options of Never, Dragging, or Always. This is used to help in checking edit alignment across tracks. (A reticle is a sighting line used to line up visual items, like cross hairs in a eyepiece.) The appearance and function of sighting lines can be changed when dragging auto keyframes. To see the effect, create some fader autos and drag a few to see the reticles drawn --- you will see something similar to the next screencast (figure~\ref{fig:always}). \textit{Always} renders a line over all plugins, and \textit{dragging} only over the drag icon. \textit{Never} draws nothing. The default is \textit{dragging}.
\begin{figure}[htpb]
\centering
\end{wrapfigure}
Control points allow for setting the slope of auto curves and then
-subsequently adjusting that slope (figure~\ref{fig:controls}). To modify a current keyframe
+subsequently adjusting that slope (figure~\ref{fig:controls}) \index{control point handle}. To modify a current keyframe
you just right mouse it and change to either Tangent or Disjoint edit.
In the screencast to the right, the Fade Auto has pink colored curves and control points are seen as dashed lines next to the keyframe box with black filled circles on each end of the line. Use the Ctrl key with the left mouse button to modify the control point lines.
\section{Speed\,/\,Fade Automation Usage and Auto Gang}%
\label{sec:speed_fade_automation_gang}
+\index{keyframes auto gang}
Speed automation resamples the data at a higher or lower playback rate. Speed automation can operate
on all tracks of the same type, either video or audio, with a single click; or all tracks, both video and
\section{Bump autos}%
\label{sec:bump_autos}
+\index{keyframes: bump autos}
Bump autos are a kind of floating point keyframe that differs from the rest
of the floating autos, like smooth and linear, in that they have two values:
- a left edge and a right edge value.
+\qquad a left edge and a right edge value.
The presence of a \textit{bump} creates boundaries
to regions on the timeline. The region begins at that bump, and extends to
\item switch to \textit{gang media} mode. Now only the Master track is visible, but every change made on its keyframes is also applied to the other tracks. (see \nameref{sub:displaying_tracks_ganged})
\end{itemize}
-In the Camera and Projector tools configuration window you will find the \textit{Bump curve}, \textit{Span} and \textit{Rigth/Left Edge} buttons. The Camera-XYZ and Projector-XYZ curves can also create and use Bump autos. (see \nameref{ssub:camera_and_projector_menu})
+In the Camera and Projector tools configuration window \index{tool info} you will find the \textit{Bump curve}, \textit{Span} and \textit{Rigth/Left Edge} buttons. The Camera-XYZ and Projector-XYZ curves can also create and use Bump autos. (see \nameref{ssub:camera_and_projector_menu})
\paragraph{Note:} do not confuse the autos bump span button with the keyframes span button of the plugins (on MenuBar); they are different and work differently (see \nameref{sec:allow_keyframes_spanning}). With the plugin keyframes, the update is done by first creating a textual \texttt{diff} on the xml values of the plugin keyframes, then applying that diff to all of the keyframes selected in the \textit{span} range. The bump FloatAuto \texttt{bump\_update} subtracts the old and new values to create a \texttt{diff} that is added to all of the values in the [\textit{right\_edge $\dots$ auto values $\dots$ left\_edge}] region created by bump autos and media endpts.
\section{Plugin Keyframes}%
\label{sec:plugin_keyframe}
+\index{keyframes: plugin}
The Plugin keyframes are structured. The individual data values are named parameters to the keyframe function. For example, the hue plugin has keyframe parameters of hue, saturation, and value. Each plugin has its own parameters, and what they do depends on the plugin. Most of the time, it is pretty obvious what the value controls, like the audio gain plugin with the level parameter. Some of the plugins have a wide variety of controls, like the titler which can setup a wide number of controls, like formats, fonts, styles, placement, and so on.
\section{Default Keyframe}%
\label{sec:default_keyframe}
+\index{keyframes: default keyframe}
+\index{keyframes pulldown}
For plugins, there is a special hidden keyframe, called the \textit{default keyframe}, that is used when no previous keyframe exists. It is like keyframe zero on the timeline, and it is persistent and shared on
all sessions. The intent is to make a parameter set that is likely to be reused on all initial instances of the plugin. An example may be to color correct a set of media that was taken in low light, or needs resampling to be played correctly. The default keyframe is \textit{off the bar on the left side} of the plugin title bar and can not be seen. It is used when there is no \textit{previous} keyframe for its default values.
\section{Keyframe \textit{Edit Params} for Plugins}%
\label{sec:keyframe_edit_params_plugin}
+\index{keyframes: preset edit}
-Keyframe values can be set using the various plugin \textit{show controls} (magnifying glass) icon on the plugin track (figure~\ref{fig:parameters}). It is possible to see all of the keyframe data in a raw format using the \textit{Edit Params} popup menu item which you will see when you right mouse click the keyframe icon on the timeline. The keyframe data is stored in xml format, and the \textit{edit params} feature allows you to view and modify the xml data directly. This normally should not be necessary since the plugin's control gui displays the intended parameters, but this will let you view and specify just about anything that can be specified in xml. There is no validation checking of the modified data.
+Keyframe values can be set using the various plugin \textit{show controls} \index{keyframes: show controls} (magnifying glass) icon on the plugin track (figure~\ref{fig:parameters}). It is possible to see all of the keyframe data in a raw format using the \textit{Edit Params} popup menu item which you will see when you right mouse click the keyframe icon on the timeline. The keyframe data is stored in xml format, and the \textit{edit params} feature allows you to view and modify the xml data directly. This normally should not be necessary since the plugin's control gui displays the intended parameters, but this will let you view and specify just about anything that can be specified in xml. There is no validation checking of the modified data.
\begin{figure}[htpb]
\centering
\section{Generate Keyframes while Tweaking / Automatic Keyframe Mode}%
\label{sec:generate_keyframe_tweaking}
+\index{keyframes: automatic mode}
Tweaking is defined as changing a parameter while playing -- it can be small changes or small motion increments performed in a series. These changes are recorded as a series of new keyframes on the timeline. Enable automatic keyframe mode by enabling the automatic keyframe toggle, that is \textit{Generate keyframes while tweaking}. In automatic keyframe mode, every time you tweak a key-framable parameter it creates a keyframe on the timeline. Since keyframes affect playback, you should enable generate keyframes just before you need a keyframe and disable when your parameter changes are complete. So turn on when ready to make changes and turn off when done!
\section{Compositor Keyframes}%
\label{sec:compositor_keyframes}
+\index{keyframes: compositor}
Camera and projector translation is represented by two parameters: \textit{x} and \textit{y}, making it difficult to adjust with curves. \CGG{} solves this problem by relying on automatic keyframes. With a video track loaded, move the insertion point to the beginning of the track and enable automatic keyframe mode. Move the projector slightly in the compositor window to create a keyframe. Then go forward several seconds. Move the projector a long distance to create another keyframe and emphasize motion. This creates a second projector box in the compositor, with a line joining the two boxes. The joining line is the motion path. If you create more keyframes, more boxes are created. Once all the desired keyframes are created, disable automatic keyframe mode.
\section{More about Editing Keyframes}%
\label{sec:more_about_editing_keyframes}
+\index{keyframes editing operations}
Keyframes can be shifted around and moved between tracks on the timeline using similar cut and paste operations to editing media. Only the keyframes selected in the View menu are affected by keyframe editing operations.
\section{Allow Keyframe Spanning}%
\label{sec:allow_keyframes_spanning}
+\index{keyframes spanning}
\textit{Allow keyframe spanning} is enabled on the timeline by clicking on the icon that
is on the right side of the \textit{Generate keyframes while tweaking}. With this enabled,
\chapter{Rendering}%
\label{cha:rendering}
+\index{rendering}
-Rendering takes a section of the timeline, performs all the editing,
+Rendering takes a section of the timeline \index{active region}, performs all the editing,
effects and compositing, and creates a new media file. You can then
delete all the source assets, play the rendered file, or bring it
back into \CGG{} for more editing. All rendering operations are
\section{Single File Rendering}%
\label{sec:single_file_rendering}
+\index{single file rendering}
Use the \textit{File} pulldown and select Render to start the render dialog
(figure~\ref{fig:render}). Then choose the desired parameters.
\begin{description}
\item[Select a file to render to:] enter the path and filename to
write the rendered file to in the textbox below.
-\item[File Format:] use the down arrow to see file format options.
+\item[File Format:] \index{file format} use the down arrow to see file format options.
For ffmpeg, which has its own set of options, you will then have to
select an ffmpeg file type from the down arrow choices. The format
of the file determines whether you can render audio or video or
\end{figure}
\begin{description}
-\item[Wrench:] select the \textit{wrench} next to each toggle to set
+\item[Wrench:] \index{wrench} select the \textit{wrench} next to each toggle to set
compression parameters. If the file format can not store audio or
video the compression parameters will be blank. If \textit{Render
audio tracks} or \textit{Render video tracks} is selected and the
eventually would become \texttt{/movies/track.wav001} and so on.
Filename regeneration is only used when either render farm mode is
active or creating new files for every label is active.
-\item[Render range:] choices are \textit{Project},
+\item[Render range:] \index{active region} choices are \textit{Project} \index{project},
\textit{Selection}, \textit{In/Out points}, and \textit{One Frame}
for single images like Tiff. For these images, Render range will
have \textit{One Frame} automatically checked and all of the others
check this box. It gives you the chance to work on something else
while waiting and still be immediately notified when the render is
complete.
-\item[Render Profile:] another convenience feature to take advantage
+\item[Render Profile:] \index{render profile} another convenience feature to take advantage
of if you use specific render formats frequently, is to save that
profile for future usage without having to set it up again.
\item[Save Profile:] after setting up your render preference
formats, use the save profile button to save it.
\item[Delete Profile:] if you want to delete a saved profile,
highlight the one you no longer want and delete.
-\item[Insertion strategy:] select an insertion mode from the
+\item[Insertion strategy:] \index{insertion strategy} select an insertion mode from the
available choices as seen when you click on the down arrow on the
right hand side of the option. The insertion modes are the same as
with loading files. In the case if you select “insert nothing” the
\section{Batch Rendering}%
\label{sec:batch_rendering}
+\index{batch rendering}
Batch Rendering automates the rendering of audio/video files in that
you can establish a set of job parameters, save them, and use them
\label{fig:batch01}
\end{figure}
-If you want to render many projects to media files without having to
+If you want to render many projects \index{project} to media files without having to
constantly set up the render dialog for each one, batch rendering is
a more efficient method of rendering. To use this feature you need to
understand certain concepts.
\begin{enumerate}
- \item You must define a list of Batches (\textit{Job}) before starting the rendering. This is created using the \textit{New} button and displayed in \textit{Batches to Render} dialog.
+ \item You must define a list of Batches (\textit{Job} \index{job}) before starting the rendering. This is created using the \textit{New} button and displayed in \textit{Batches to Render} dialog.
\item Each batch consists of a source project already created in \CGG{}, e.g. \texttt{aaa.xml}, to which we assign the rendering parameters.
\begin{itemize}
\item to associate \texttt{aaa.xml} to the batch we use the \textit{EDL Path} input field.
different output files, as in an example where you might be creating
the same output video in different file formats.
-You do not have to render an entire projects. We can limit ourselves to an \textit{active region} that we can set through a selection in Cut and Paste mode, with labels or In/Out Points. Or the rendering will start from the Insert Point position until the end of the project. Remember: if we want to render the entire project (and not just one active region) it is important to bring the Insertion Point to the beginning of the timeline. This is the only way we are sure to include the whole project.
+You do not have to render an entire projects. We can limit ourselves to an \textit{active region} \index{active region} that we can set through a selection in Cut and Paste mode, with labels or In/Out Points. Or the rendering will start from the Insert Point position until the end of the project. Remember: if we want to render the entire project (and not just one active region) it is important to bring the Insertion Point to the beginning of the timeline. This is the only way we are sure to include the whole project.
With all the \CGG{} xml project files prepared with active regions,
go to \texttt{File $\rightarrow$ Batch Render}. This brings up the
\subsection{Command Line Rendering}%
\label{sub:command_line_rendering}
+\index{rendering: command line}
The command line rendering method consists of a way to load the
current set of batch rendering jobs and process them without a
\subsection{More about Save/Use EDL and Save/Load Jobs}%
\label{sub:more_save_use_edl_jobs}
+\index{batch render: more options}
The \texttt{File $\rightarrow$ Batch Render} pulldown brings up the
Batch Render window to be used for batch rendering as well as DVD/BD
\section{Background Rendering}%
\label{sec:background_rendering}
+\index{background rendering}
Background rendering causes temporary output to be rendered
constantly while the timeline is being modified. The temporary
output is displayed during playback whenever possible. This is
useful for transitions and previewing effects that are too slow to
-display in real time. If a Render Farm is enabled, the render farm
+display in real time. If a Render Farm \index{render farm} is enabled, the render farm
is used for background rendering. This gives you the potential for
real-time effects if enough network bandwidth and CPU nodes exist.
Background rendering is enabled in the \texttt{Performance} tab of
the \texttt{Preferences} window. It has one interactive function
-\texttt{Settings $\rightarrow$ Toggle background rendering}. This
+\texttt{Settings $\rightarrow$ Toggle background rendering} \index{background rendering toggle}. This
sets the point where background rendering starts up to the position
of the insertion point. If any video exists, a red bar appears in
the time ruler showing what has been background rendered
\section{Render Farm Usage}%
\label{sec:render_farm_usage}
+\index{render farm}
Render Farm uses background rendering, a feature of \CGG{} where the
video is rendered in the background, to speed up rendering
\subsection{Render Farm Menu and Parameter Description}%
\label{sub:render_farm_parameter_description}
+\index{render farm parameters}
Below we describe the Performance tab for configuring a render farm
(figure~\ref{fig:farm}).
\subsection{Detailed Setup Description}%
\label{sub:detailed_setup_description}
+\index{render farm setup}
{\color{red} CAUTION }, any exact command lines worked as of
$01/2018$ on a Fedora system. These can change over time and on
\subsection{Multi-core Computers Render Farm Setup}%
\label{sub:multi_core_render_farm_setup}
+\index{render farm: multi core CPU}
If you are lucky enough to have a computer with a large cpu core
count, setting up a render farm can really take advantage of using
\subsection{Troubleshooting Tips and Warnings}%
\label{sub:troubleshhoting_tips_warnings}
+\index{render farm: troubleshooting}
\noindent If you have problems running the Render Farm. Here is a
list of items to check.
\subsection{Lossless Rendering}%
\label{sub:loseeless_rendering}
+\index{rendering: lossless}
Lossless means that in the compression of a file, all of the
original data, every single bit, can be recovered when the file is
\subsection{Extra “cin\_” Options for Render with FFmpeg}%
\label{sub:extra_cin_option_ffmpeg}
+\index{rendering: ffmpeg options}
There are several special parameters that can be used in the ffmpeg
options file to pass values to the codecs that are not normally
\subsection{Two-pass Encoding with FFmpeg}%
\label{sub:two_pass_encoding_ffmpeg}
+\index{rendering: ffmpeg two-pass encoding}
In \CGG{} for two-pass, you need to run ffmpeg twice, with the same
settings, except for designating the options of pass~1 for the first
\subsection{Piping Video to a Command Line}%
\label{sub:piping_video_command_line}
+\index{rendering: command line}
You can pipe a video to any command line on the computer, such as
ffmpeg. This can be especially useful with raw video files. Next