+ Be aware that you may have to adjust any security or firewalls
+ you have in place. \textit{Most firewalls will require extra rules
+ to allow nfs access}. Many have built-in configurations for this.
+ \end{enumerate}
+\item[Configure Rendering on Master Node] There is 1 master node
+ which is running the \CGG{} gui and where the video will be edited
+ and the command given to start up the rendering. Any number of
+ client computers can be run from the command line only, so they can
+ be headless since no X or any graphical libraries are needed. Of
+ course, the \CGG{} software must be installed on each of the client
+ computers.
+ \begin{enumerate}
+ \item Assuming you already have \CGG{} installed on the master
+ node, start \CGG{} by clicking on the icon or by typing the
+ following command on the terminal screen:
+ \texttt{/{cinelerra\_path}/cin}.
+ \item Use the \textit{File} pulldown \texttt{Settings $\rightarrow$
+ Preferences}, the Performance tab, to set up your Render Farm
+ options in the Render Farm pane.
+ \item Check the \textit{Use render farm} option. By default, once
+ you enable the option of Render Farm, rendering is usually done
+ using the render farm. Batch rendering can be done locally, or
+ farmed.
+ \item Add the hostname or the IP address of each of the client
+ nodes in the Hostname textbox and the port number that you want to
+ use in the Port textbox. You can make sure a port number is not
+ already in use by keying in on the command line:
+\begin{lstlisting}[style=sh]
+netstat -n -l -4 --protocol inet
+\end{lstlisting} Next, click on the \textit{Add Nodes} button and
+ then you will see that host appear in the Nodes list box to the
+ right. The \texttt{X} in the first column of the nodes box denotes
+ that the node is active. To review the \textit{standard} port
+ allocations, check the \texttt{/etc/services} file.
+ \item Enter the total jobs that you would like to be used in the
+ \textit{Total job} textbox.
+ \item The default watchdog timer initial state is usually just
+ fine but can be adjusted later if needed.
+ \item Click OK on the Preferences window when done.
+ \end{enumerate}
+\item[Create Workflow] While working on the master computer, it is
+ recommended that you keep all the resources being used on the same
+ shared disk. Load your video/audio piece and do your editing and
+ preparation. Add any desired plugins, such as a Title, to fine-tune
+ your work. You want to make sure your video is ready to be rendered
+ into the final product.
+\item[Start the Client Nodes] To start up the client nodes run
+ \CGG{} from the command line on each of the client computers using
+ the following command:
+\begin{lstlisting}[style=sh]
+/{cinelerra_pathname}/cin -d [port number]
+# for example:
+/mnt1/bin/cinelerra -d 401
+\end{lstlisting} This starts \CGG{} in command prompt mode so that
+ it listens to the specified port number for commands from the master
+ node for rendering. When you start each of the clients up, you will
+ see some messages scroll by as each client is created on that
+ computer, such as:
+\begin{lstlisting}[style=sh]
+RenderFarmClient::main_loop: client started
+RenderFarmClient::main_loop: Session started from 127.0.0.1
+\end{lstlisting} As it completes its jobs, you will should see:
+\begin{lstlisting}[style=sh]
+RenderFarmClientThread::run: Session finished
+\end{lstlisting}
+\item[Render Using Render Farm] After you have followed the
+ preceding steps, you are ready to use the render farm. Click on
+ \texttt{File $\rightarrow$ Render}\dots which opens the render
+ dialog. The most important point here is to use for \textit{the
+ Output path / Select a file to render to} a path/file name that is
+ on the shared volume that is also mounted on the clients. Click on
+ OK to render. The \CGG{} program divides the timeline into the
+ number of jobs specified by the user. These jobs are then
+ dispatched to the various nodes depending upon the load balance. The
+ first segment will always render on the master node and the other
+ segments will be farmed out to the render nodes. Batch Rendering,
+ as well as BD/DVD rendering, may use the render farm. Each line in
+ the batchbay can enable/disable the render farm. Typically, video
+ can be rendered into many file segments and concatenated, but
+ normally audio is rendered as one monolithic file (not farmed).
+
+ Another performance feature which can use the Render Farm is
+ \textit{Background Rendering}. This is also enabled on the
+ \texttt{Preferences $\rightarrow$ Performances} tab. The background
+ render function generates a set of image files by pre-rendering the
+ timeline data on the fly. As the timeline is update by editing, the
+ image data is re-rendered to a \textit{background render} storage
+ path. The Render Farm will be used for this operation if it is
+ enabled at the same time as the \textit{background render} feature.
+\item[Assemble the Output Files] Once all of the computer jobs are
+ complete, you can put the output files together by using the shell
+ script, \textit{RenderMux} (from the menubar \textit{scripts} button
+ just above FF), if the files were rendered using ffmpeg (see \nameref{sec:menu_bar_shell_commands}).
+
+ If you want to remain within the open project in \CGG{}, you can load these files by creating a new track and specifying concatenate to
+ existing tracks in the load dialog in the correct numerical order.
+ File types which support direct copy can be concatenated into a
+ single file by rendering to the same file format with render farm
+ disabled as long as the track dimensions, output dimensions, and
+ asset dimensions are equal.
+
+ Finally if you want to use ffmpeg from terminal externally to \CGG{} you can go to the directory where the rendered files are, it creates a text file \texttt{list.txt} containing the list of all our files:
+ \begin{lstlisting}[style=sh]
+ file 'name.webm001'
+ file 'name.webm002'
+ ...
+ file 'name.webm00n'
+ \end{lstlisting}
+ and finally give the command
+ \begin{lstlisting}[style=sh]
+ ffmpeg -f concat -i list.txt -c copy output.webm
+ \end{lstlisting}
+\end{description}