many more corrections/additions from Andrea + added Transcode
[goodguy/cin-manual-latex.git] / parts / Rendering.tex
index de96822baab139f67689839b5db678cb56ed072c..4f0d15820f3af8cfbaa1df45bbe0191968bdb22e 100644 (file)
@@ -73,7 +73,7 @@ If you want to render many projects to media files without having to constantly
 
 The first thing to do when preparing to do batch rendering is to create one or more Cinelerra projects to be rendered and save them as a normal project, such as \texttt{ProjectA.xml}.  The batch renderer requires a separate project file for every batch to be rendered.  You can use the same Cinelerra project file if you are rendering to different output files, as in an example where you might be creating the same output video in different file formats.
 
-To create a project file which can be used in batch render, set up your project and define the region to be rendered either by highlighting it, setting in/out points around it, or positioning the insertion point before it. Then save the project as usual to your project.xml file. Define as many projects as needed this way.  The batch renderer takes the active region from the EDL file for rendering. If we have not set active regions, it is better to bring the insertion point to the beginning of the timeline to avoid possible problems with the rendering.
+To create a project file which can be used in batch render, set up your project and define the region to be rendered either by highlighting it, setting in/out points around it, or positioning the insertion point before it. Then save the project as usual to your \texttt{project.xm}l file. Define as many projects as needed this way.  The batch renderer takes the active region from the EDL file for rendering. If we have not set active regions, it is better to bring the insertion point to the beginning of the timeline to avoid possible problems with the rendering.
 
 With all the Cinelerra xml project files prepared with active regions, go to \texttt{File $\rightarrow$ Batch Render}. This brings up the batch render dialog. The interface for batch rendering is more complex than for single file rendering.  A list of batches must be defined before starting a batch rendering operation.  The table of batches appears on the bottom of the batch render dialog and is called \textit{Batches to render}.  Above this are the configuration parameters for a single batch; a batch is simply a pairing of a project file with a choice of output file and render settings.
 
@@ -117,19 +117,18 @@ cinelerra -r
 
 The \texttt{File $\rightarrow$ Batch Render} pulldown brings up the Batch Render window to be used for batch rendering as well as DVD/BD creation.  There are some additional buttons that can save time and mistakes.  These are described next.
 
-The \texttt{Save to EDL Path} and \texttt{Use Current EDL} buttons can be valuable tools for advanced usage or for developers doing testing.  Description of how you can expect them to work will help to illustrate how to take advantage of their capabilities.
+The \textit{Save to EDL Path} and \textit{Use Current EDL} buttons can be valuable tools for advanced usage or for developers doing testing.  Description of how you can expect them to work will help to illustrate how to take advantage of their capabilities.
 
 \begin{description}
     \item[Save to EDL Path] if you have made a change to the EDL, use this button to save the changes so
     that they will be used in the render operation.  Although you can get the same results by using
-    \texttt{File  $\rightarrow$  Save\dots}, this capability was initially added to assist developers in testing the batch jobs needed
-    to create dvd/bluray media as it keeps the work focused in a single window and retains the original
-    job name.  An example ---you have everything all set up with a new job in the Batch Render window 
+    \texttt{File  $\rightarrow$  Save\dots}, this capability was initially added to assist developers in testing the batch jobs needed to create dvd/bluray media as it keeps the work focused in a single window and retains the original
+    job name.  An example --you have everything all set up with a new job in the Batch Render window 
     using \texttt{generic.xml} for the EDL path and with a job name of \texttt{original\_name.xml}.  Then you realize
     that you forgot to cut out a section in the media that is not wanted in the final product.  You can cut 
     that out and then \textit{Save to EDL Path} so your change will be in effect for the rendering.  Without this
     button, you would be using the EDL you started with and the cut would be ignored.  Alternatively, if 
-    the cut changes are saved via File  $\rightarrow$  Save as\dots with a filename of \texttt{new.xml} and then you use \textit{Save to EDL Path}, the current highlighted job displayed in the window as \texttt{original\_name.xml} will be 
+    the cut changes are saved via \texttt{File  $\rightarrow$  Save as}\dots with a filename of \texttt{new.xml} and then you use \textit{Save to EDL Path}, the current highlighted job displayed in the window as \texttt{original\_name.xml} will be 
     replaced with \texttt{new.xml}.  However, it is important to note that the result will be saved with the name
     \texttt{original\_name} – that is, the new content from \texttt{new.xml} but with the old name of \texttt{original\_name.xml}.
     \item[Use Current EDL] if you are working on media and still testing out the results, you can take
@@ -190,7 +189,7 @@ It is often useful to insert an effect or a transition and then select \texttt{S
 
 Render Farm uses background rendering, a feature of Cinelerra where the video is rendered in the background, to speed up rendering significantly.  Because rendering is memory and cpu intensive, using multiple computers on a network via a render farm is a significant gain.  With Cinelerra installed on all nodes, the master node and the clients communicate via a network port that you specify. 
 
-Cinelerra can distribute the rendering tasks over the network to the other computers of the Render Farm.  The render farm software tries to process all of the rendering in parallel so that several computers can be used to render the results.  The \texttt{Total jobs to create} in the setup or labels on the timeline are used to divide a render job into that specified number of tasks.  Each background job is assigned a timeline segment to process and the jobs are sent to the various computer nodes depending upon the load balance.  The jobs are processed by the nodes separately and written to individual files.  You will have to put the files back together via a load with concatenation, or typically by using a command line tool from a script.
+Cinelerra can distribute the rendering tasks over the network to the other computers of the Render Farm.  The render farm software tries to process all of the rendering in parallel so that several computers can be used to render the results.  The \textit{Total jobs to create} in the setup or labels on the timeline are used to divide a render job into that specified number of tasks.  Each background job is assigned a timeline segment to process and the jobs are sent to the various computer nodes depending upon the load balance.  The jobs are processed by the nodes separately and written to individual files.  You will have to put the files back together via a load with concatenation, or typically by using a command line tool from a script.
 
 \subsection{Basic Steps to Start a Render Farm}%
 \label{sub:basic_steps_start_render_farm}
@@ -200,9 +199,9 @@ The following steps are just a guideline to start your render farm.  It is assum
 \begin{enumerate}
     \item On the master computer, use \texttt{Settings} $\rightarrow$ \texttt{Preferences} $\rightarrow$ \texttt{Performance} \texttt{tab} to set up a Render Farm:
     \begin{itemize}
-        \item check the \texttt{Use render farm} box;
-        \item in the \texttt{Hostname} box, keyin your hostname or ip address such as 192.168.1.12 or \texttt{localhost};
-        \item enter in a port number such as 401--405 (only a root user can use privileged ports) or $1025$  and click on \texttt{Add Nodes};
+        \item check the \textit{Use render farm} box;
+        \item in the \textit{Hostname} box, keyin your hostname or ip address such as 192.168.1.12 or \textit{localhost};
+        \item enter in a port number such as 401--405 (only a root user can use privileged ports) or $1025$  and click on \textit{Add Nodes};
         \item you will see something like the following in the Nodes listbox to the right:\newline
             \begin{tabular}{lllc}
                 On & Hostname     & Port & Framerate \\\midrule
@@ -231,10 +230,10 @@ $ cd /{path_to_cinelerra}
 $ cin -d 406
 $ cin -d 407
     \end{lstlisting}
-    \item When your video is ready, setup a render job via \texttt{File $\rightarrow$  Render} or \texttt{File $\rightarrow$  Batch Render} and check \texttt{OK}.
-    \item The results will be in the shared file path / filename that you selected in the render menu with the
+    \item When your video is ready, setup a render job via \texttt{File $\rightarrow$  Render} or \texttt{File $\rightarrow$  Batch Render} and check OK.
+    \item The results will be in the shared file \texttt{path/filename} that you selected in the render menu with the
     additional numbered job section on the end as  $001, 002, 003, \dots 099$ (example, \texttt{video.webm001}).
-    6) When finished, load your new files on new tracks via  \texttt{File  $\rightarrow$ Load} \textit{concatenate to existing tracks}  or if you used ffmpeg, run \texttt{RenderMux} from the Shell Scripts icon.
+    \item When finished, load your new files on new tracks via  \texttt{File  $\rightarrow$ Load} \textit{concatenate to existing tracks}  or if you used ffmpeg, run \textit{RenderMux} from the Shell Scripts icon.
     \item If you plan on doing more rendering, you can just leave the master/client jobs running to use again
     and avoid having to restart them.  Or you can kill them when you no longer are using them.
 \end{enumerate}
@@ -254,24 +253,24 @@ Below we describe the Performance tab for configuring a render farm (figure~\ref
 \begin{description}
     \item[Project SMP cpus] although this field is not Render Farm specific, it is useful for Cinelerra to have the CPU count and for using multiple threads.
     \item[Use render farm] check this to turn on the render farm option.  Once checked ALL rendering will be done via the farm including the usual Render (\texttt{Shift-R}).  You may want to turn if off for small jobs.
-    \item[Nodes listbox] displays all the nodes on the render farm and shows which ones are currently enabled. The Nodes listbox has 4 columns --- \texttt{On},  \texttt{Hostname},  \texttt{Port},  \texttt{Framerate} --- which show the current values.  An \texttt{X} in the \texttt{On} designates that that host is currently enabled; \texttt{Hostname} shows the name of the host; \texttt{Port} shows the port number that host uses; and \texttt{Framerate} will either be zero initially or the current framerate value.
+    \item[Nodes listbox] displays all the nodes on the render farm and shows which ones are currently enabled. The Nodes listbox has 4 columns -- On,  Hostname,  Port,  Framerate -- which show the current values.  An \textit{X} in the \textit{On} designates that that host is currently enabled; \textit{Hostname} shows the name of the host; \textit{Port} shows the port number that host uses; and \textit{Framerate} will either be zero initially or the current framerate value.
     \item[Hostname] this field is used to edit the hostname of an existing node or enter a new node.
     \item[Port] keyin the port number of an existing or new node here.  You can also type in a range of port numbers using a hyphen, for example $1501-1505$ when you need to add many.
-    \item[Apply Changes] this will allow you to edit an existing node and to then commit the changes to hostname and port. The changes will not be committed if you do not click the \texttt{OK} button.
+    \item[Apply Changes] this will allow you to edit an existing node and to then commit the changes to hostname and port. The changes will not be committed if you do not click the OK button.
     \item[Add Nodes] Create a new node with the hostname and port settings.
     \item[Sort nodes] sorts the nodes list based on the hostname.
     \item[Delete Nodes] deletes whatever node is highlighted in the nodes list.  You can highlight several at once to have them all deleted.
     \item[Client Watchdog Timeout] a default value of $15$ seconds is used here and the tumbler increments by $15$ seconds.  A value of $0$ (zero) disables the watchdog so that if you have a slow client, it will not kill the render job while waiting for that client to respond.
     \item[Total jobs to create] determines the number of jobs to dispatch to the render farm.  Total jobs is used to divide a render job into that specified number of tasks.  Each background job is assigned a timeline segment to process.  The render farm software tries to process all of the rendering in parallel so that several computers can be used to render the results.  
     
-    To start, if you have computers of similar speed, a good number for \texttt{Total jobs to create} is the number of computers multiplied by $3$.  You will want to adjust this according to the capabilities of your computers and after viewing the framerates.  Multiply them by $1$ to have one job dispatched for every node.  If you have $10$ client nodes and one master node, specify $33$ to have a well balanced render farm.
-    \item[(overridden if new file at each label is checked)] instead of the number of jobs being set to \texttt{Total jobs to create}, there will be a job created for each labeled section.  If in the render menu, the option \texttt{Create new file at each label} is selected when no labels exist, only one job will be created.  It may be quite advantageous to set labels at certain points in the video to ensure that a key portion of the video will not be split into two different jobs.
+    To start, if you have computers of similar speed, a good number for \textit{Total jobs to create} is the number of computers multiplied by $3$.  You will want to adjust this according to the capabilities of your computers and after viewing the framerates.  Multiply them by $1$ to have one job dispatched for every node.  If you have $10$ client nodes and one master node, specify $33$ to have a well balanced render farm.
+    \item[(overridden if new file at each label is checked)] instead of the number of jobs being set to \textit{Total jobs to create}, there will be a job created for each labeled section.  If in the render menu, the option \textit{Create new file at each label} is selected when no labels exist, only one job will be created.  It may be quite advantageous to set labels at certain points in the video to ensure that a key portion of the video will not be split into two different jobs.
     \item[Reset rates] sets the framerate for all the nodes to $0$.  Frame rates are used to scale job sizes based on CPU speed of the node.  Frame rates are calculated only when render farm is enabled.
 \end{description}
 
-Framerates can really affect how the Render Farm works.  The first time you use the render farm all of the rates are displayed as $0$ in the \texttt{Settings $\rightarrow$ Prefe\-rences}, Performance tab in the Nodes box.  As rendering occurs, all of the nodes send back framerate values to the master node and the preferences page is updated with these values.  A rate accumulates based on speed.  Once all nodes have a rate of non-zero, the program gives out less work to lower rated nodes in an effort to make the total time for the render to be almost constant.
-Initially, when the framerate scaling values are zero, the program just uses package length --- render size 
-divided by the number of packages to portion out the work (if not labels).  If something goes wrong or the rates become suspect, then all of the rest of the work will be dumped into the last job.  When this happens, you really should \texttt{reset rates} for the next render farm session to restart with a good balance.
+Framerates can really affect how the Render Farm works.  The first time you use the render farm all of the rates are displayed as $0$ in the \texttt{Settings $\rightarrow$ Preferences}, Performance tab in the Nodes box.  As rendering occurs, all of the nodes send back framerate values to the master node and the preferences page is updated with these values.  A rate accumulates based on speed.  Once all nodes have a rate of non-zero, the program gives out less work to lower rated nodes in an effort to make the total time for the render to be almost constant.
+Initially, when the framerate scaling values are zero, the program just uses package length -- render size 
+divided by the number of packages to portion out the work (if not labels).  If something goes wrong or the rates become suspect, then all of the rest of the work will be dumped into the last job.  When this happens, you really should \textit{reset rates} for the next render farm session to restart with a good balance.
 
 \begin{lstlisting}[language=bash,numbers=none]
     {cinelerra pathname} -h     #displays some of the options.
@@ -285,7 +284,7 @@ divided by the number of packages to portion out the work (if not labels).  If s
 \begin{description}
     \item[Set up Cinelerra] A Cinelerra render farm is organized into a master node and any number of client nodes.  The master node is the computer which is running the gui.  The client nodes are anywhere else on the network with Cinelerra installed and are run from the command line.  Before you start the master node for Cinelerra, you need to set up a shared filesystem on the disk storage node as this is the node that will have the common volume where all the data will be stored.  
     The location of the project and its files should be the same in the client computers as in the master computer and to avoid problems of permissions, it is better to use the same user in master and clients. 
-    For example, if you have the project in \texttt{/home /<user>/project-video} you must create the same directory path on the clients, but empty.  Sharing the directory of the location of your project on the master computer can be done with NFS as described next.  Alternatively, you can look up on the internet how to use Samba to share a directory.
+    For example, if you have the project in \texttt{/home/<user>/project-video} you must create the same directory path on the clients, but empty.  Sharing the directory of the location of your project on the master computer can be done with NFS as described next.  Alternatively, you can look up on the internet how to use Samba to share a directory.
     \item[Create a shared filesystem and mount using NFS] All nodes in the render farm should use the same filesystem with the same paths to the project files on all of the master and client nodes.  This is easiest to do by setting up an NFS shared disk system.
     \begin{enumerate}
         \item On each of the computers, install the nfs software if not already installed.  For example, on Debian 9
@@ -346,20 +345,20 @@ $ umount <path>
         icon or by typing the following command on the terminal screen:  \texttt{/{cinelerra\_path}/cin}.
         \item Use the file pulldown \texttt{Settings $\rightarrow$ Preferences}, the Performance tab, to set up your Render Farm
         options in the Render Farm pane.
-        \item Check the \texttt{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 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}[language=bash,numbers=none]
 $ netstat -n -l -4 --protocol inet
         \end{lstlisting}
-        Next, click on the \texttt{Add Nodes}
+        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 \texttt{Total job} textbox.
+        \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 \texttt{OK} on the Preferences window when done.
+        \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 Cinelerra from the command line on each of the client computers using the following command:
@@ -379,10 +378,10 @@ RenderFarmClientThread::run: Session finished
     \begin{lstlisting}[language=bash,numbers=none]
 or n in `seq 1501 1505`; do cin -d $n; done
     \end{lstlisting}
-    \item[Render Using Render Farm] After you have followed the preceding steps, you are ready to use the render farm.  Click on File $\rightarrow$ Render\dots which opens the render dialog.  The most important point here is to use for \texttt{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 \texttt{OK} to render. The cinelerra 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).
+    \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 cinelerra 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 Performance preferences 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 \texttt{background render} storage path.  The Render Farm will be used for this operation if it is enabled at the same time as the \texttt{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, RenderMux (from the menubar \texttt{scripts} button just above FF), if the files were rendered using ffmpeg, or you can load these 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.
+    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, or you can load these 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.
 \end{description}
 
 \subsection{Quick and Easy Render Farm Setup – The Buddy System Way}%
@@ -393,19 +392,19 @@ These steps are for quickly setting up render farm with the least amount of addi
 \begin{enumerate}
     \item Make sure the Cinelerra program is installed on all of the computers and the network between the
     main computer and the client computers is working.  Use the same version if possible.
-    \item Load your video file on the master node and use \texttt{File $\rightarrow$ Save as\dots}  to save it to \texttt{/tmp}.
-    \item Move that same file with the same name to \texttt{/tmp} on all of the client computers via rsh or sneaker net --- the ONLY reason you are doing this is to avoid having to set up NFS or Samba on the buddy client
+    \item Load your video file on the master node and use \texttt{File $\rightarrow$ Save as}\dots  to save it to \texttt{/tmp}.
+    \item Move that same file with the same name to \texttt{/tmp} on all of the client computers via rsh or sneaker net -- the ONLY reason you are doing this is to avoid having to set up NFS or Samba on the buddy client
     laptops that show up!
     \item Edit your video/audio file to get it the way you want it and add the plugins, such as a Title, etc.
     \item Check for a set of unused ports in \texttt{/etc/services} file, if username is root usually $401-425$ are
     available; if non-root, then $1024-1079$.
-    \item On the master computer, in Settings $\rightarrow$ Preferences, the Performance tab:
+    \item On the master computer, in \texttt{Settings $\rightarrow$ Preferences, Performance} tab:
     \begin{itemize}
-        \item check the box \texttt{Use render farm}
+        \item check the box \textit{Use render farm}
         \item keyin localhost for the hostname or an ip address of the buddy client node
-        \item keyin the desired port number for each client; and use \texttt{Add Node} for each host
+        \item keyin the desired port number for each client; and use \textit{Add Node} for each host
         \item set total jobs to the number of client computers $+1$ multiplied by $3$ (or proportion to client speeds)
-        \item check \texttt{OK}
+        \item check OK
     \end{itemize}
     \item On each buddy client, create a job for each port:    
     \begin{lstlisting}[language=bash,numbers=none]
@@ -413,7 +412,7 @@ These steps are for quickly setting up render farm with the least amount of addi
     \end{lstlisting}
     \item On the master, bring up the render menu and name the output files, for example \texttt{/tmp/myoutput.mp4}.
     \item The client nodes output results will be on their local \texttt{/tmp} filesystems so you will have to again use
-    \texttt{rsh/ftp} or \texttt{usb sneaker net} to move them over to the main computer.  File names will be the render
+    \textit{rsh/ftp} or \textit{usb sneaker net} to move them over to the main computer.  File names will be the render
     job output file name with port number tacked on (e.g. \texttt{/tmp/hb.mp4001...mp4005}).
     \item Load the files by concatenate to existing track on the master node or use RenderMux shell script.
 \end{enumerate}
@@ -464,15 +463,15 @@ This means that you can make project related configurations that do not impact t
     \item If jobs are split in a key section on the timeline, you may wish to \textit{use labels} to prevent this.
     \item For testing purposes, you may want to start a client in the foreground using \texttt{-f} instead of \texttt{-d}.
     \item If one of the client computers is unavailable, check to see if there is an \texttt{X} to the left of the \texttt{nodename}
-    in the Nodes listbox.  Check the \texttt{X} to disable it which sets \texttt{On} to \texttt{Off}.
+    in the Nodes listbox.  Check the \texttt{X} to disable it which sets ON to OFF.
     \item A red message in the lower left hand corner of the main timeline that reads \textit{Failed to start render
     farm} often means that the client cinelerra programs were not started up.
     \item A message of \texttt{RenderFarmWatchdog::run 1 killing server thread \\ \#address\#} means that the client did
-    not respond in time.  You can adjust the timer in Settings $\rightarrow$ Preferences, Performance tab.
+    not respond in time.  You can adjust the timer in \texttt{Settings $\rightarrow$ Preferences, Performance} tab.
     \item When you get the message \texttt{RenderFarmClient::main\_loop: bind port 400: Address already in use}, use a different port.
     \item A message of \texttt{RenderFarmServerThread::open\_client: unknown host abcompany} means that the
     hostname of abcompany is not in \texttt{/etc/hosts} so you will have to add it or use the ip address instead.
-    \item There are numerous error messages associated with file \texttt{open/close/status} or problems with the file
+    \item There are numerous error messages associated with file \textit{open/close/status} or problems with the file
     that should be dealt with according to what is printed out.
     \item Other illustrative messages may be shown such as: \texttt{RenderFarmClientThread:: run: Session finished}.
 \end{itemize}
@@ -505,11 +504,11 @@ Because H.264 is so widely used, the method in Cinelerra-GG Infinity is outlined
 \subsection{Lossless Rendering}%
 \label{sub:loseeless_rendering}
 
-Lossless means that in the compression of a file, all of the original data, every single bit, can be recovered when the file is uncompressed.  This is different than \textit{lossy compression} where some data is permanently deleted so that when uncompressed, all of the original data can not be exactly recovered.  Lossy is generally used for video and sound, where a certain amount of information loss will not be detected by most users or the playback hardware does not reproduce it anyway --- it is a trade-off between file size and image/sound quality.  The files created will be more than 10 times larger than usual.  Most players will not be able to decode lossless as the bitrate will overwhelm the device.
+Lossless means that in the compression of a file, all of the original data, every single bit, can be recovered when the file is uncompressed.  This is different than \textit{lossy compression} where some data is permanently deleted so that when uncompressed, all of the original data can not be exactly recovered.  Lossy is generally used for video and sound, where a certain amount of information loss will not be detected by most users or the playback hardware does not reproduce it anyway -- it is a trade-off between file size and image/sound quality.  The files created will be more than 10 times larger than usual.  Most players will not be able to decode lossless as the bitrate will overwhelm the device.
 
 For x264 lossless compression to work, the only color model allowed here is yuv420p.  Any other specification will be converted to yuv420p and the data will be modified.  Also, keep in mind that the YUV color model has to be converted to RGB, which also modifies the data.
 
-To use x264 lossless rendering --- choose File format of \texttt{ffmpeg}, \texttt{m2ts} in the Render window.  Click on the Video wrench, which brings up the Video Preset window and scroll down in the Compression filebox and choose \texttt{lossless.m2ts}.  \textit{Preset=medium} is the default, but can be varied from \textit{ultrafast} (least amount of compression, but biggest file size) to \textit{veryslow} (most amount of compression, but still HUGE) in the parameter box where you see $qp=0$.  This option is also available for bluray creation.
+To use x264 lossless rendering -- choose File format of ffmpeg, m2ts in the Render window.  Click on the Video wrench, which brings up the Video Preset window and scroll down in the Compression filebox and choose \texttt{lossless.m2ts}.  \textit{Preset=medium} is the default, but can be varied from \textit{ultrafast} (least amount of compression, but biggest file size) to \textit{veryslow} (most amount of compression, but still HUGE) in the parameter box where you see $qp=0$.  This option is also available for bluray creation.
 
 \subsection{Extra “cin\_” Options for Render with FFmpeg}%
 \label{sub:extra_cin_option_ffmpeg}
@@ -528,31 +527,31 @@ There are several special parameters that can be used in the ffmpeg options file
 \begin{itemize}
     \item The \textit{Bitrate}, \textit{Quality}, and \textit{Pixels} fields are only updated when the Video Options are reloaded.  This
     occurs when you either change the ffmpeg file format, or video presets compression fields.
-    \item If the video options preset has \texttt{cin\_pix\_fmt} defined, its value will be loaded as the default.  If you
+    \item If the video options preset has \textit{cin\_pix\_fmt} defined, its value will be loaded as the default.  If you
     override the default, the value you specify will be used.
-    \item If the video options preset does not have \texttt{cin\_pix\_fmt}, the default pixel format will be computed by ffmpeg (\texttt{avcodec\_find\_best\_pix\_fmt\_of\_list}), using the session format as the source choice.  The
+    \item If the video options preset does not have \textit{cin\_pix\_fmt}, the default pixel format will be computed by ffmpeg (\textit{avcodec\_find\_best\_pix\_fmt\_of\_list}), using the session format as the source choice.  The
     \textit{best} is usually the format which is most similar in color and depth.
-    \item If no choices are available, \texttt{yuv420p} for video will be used.
+    \item If no choices are available, yuv420p for video will be used.
     \item You can also specify ffmpeg pixel formats which are not in the list.  The list is provided by ffmpeg as input selection, but is more like suggestions than fact.  For example, the raw formats can take almost any format, but the rawvideo codec actually specifies no legal formats.
 \end{itemize}
 
-\noindent Some option files provide \texttt{cin\_pix\_fmt} to suggest a choice for good quality output or to prevent parameter errors when the other provided parameters conflict with the \textit{best} pixel format.  This is the case in \texttt{faststart\_h264.mp4} where the \textit{profile=high} parameter dictates pixel format must be \texttt{yuv420p}.
+\noindent Some option files provide \textit{cin\_pix\_fmt} to suggest a choice for good quality output or to prevent parameter errors when the other provided parameters conflict with the \textit{best} pixel format.  This is the case in \texttt{faststart\_h264.mp4} where the \textit{profile=high} parameter dictates pixel format must be \texttt{yuv420p}.
 
-\paragraph{cin\_bitrate} If you specify the bitrate, you can not specify the quality.
-Example: \texttt{cin\_bitrate=2000000}
+\paragraph{cin\_bitrate} If you specify the bitrate, you can not specify the quality.\\
+Example: \textit{cin\_bitrate=2000000}
 
-\paragraph{cin\_quality} If you specify the quality, you can not specify the bitrate.
-Example: \texttt{cin\_quality=7}
+\paragraph{cin\_quality} If you specify the quality, you can not specify the bitrate.\\
+Example: \textit{cin\_quality=7}
 
-\paragraph{cin\_stats\_filename} This parameter is useful for 2 pass operations.
+\paragraph{cin\_stats\_filename} This parameter is useful for 2 pass operations.\\
 Example: \texttt{cin\_stats\_filename /tmp/cin\_video\_vp9\_webm}
 
-\paragraph{cin\_sample\_fmt} For audio the preset sample format default is computed in a similar way as stated above for video or can be set with the \texttt{cin\_sample\_fmt} parameter (figure~\ref{fig:audio}).  If no choices are provided, s16 will be used.
-Example: \texttt{cin\_sample\_fmt=s16}
+\paragraph{cin\_sample\_fmt} For audio the preset sample format default is computed in a similar way as stated above for video or can be set with the \textit{cin\_sample\_fmt} parameter (figure~\ref{fig:audio}).  If no choices are provided, s16 will be used.\\
+Example: \textit{cin\_sample\_fmt=s16}
 
 \begin{figure}[htpb]
     \centering
-    \includegraphics[width=0.6\linewidth]{images/audio.png}
+    \includegraphics[width=0.55\linewidth]{images/audio.png}
     \caption{Render menu showing where Samples is}
     \label{fig:audio}
 \end{figure}
@@ -560,7 +559,7 @@ Example: \texttt{cin\_sample\_fmt=s16}
 \subsection{Two-pass Encoding with FFmpeg}%
 \label{sub:two_pass_encoding_ffmpeg}
 
-In Cinelerra for two-pass, you need to run ffmpeg twice, with the same settings, except for designating the options of pass 1 for the first pass and then pass 2.  In pass 1, a logfile that ffmpeg needs for the second pass is created.  In pass 1 the audio codec should be specified that will be used in pass 2.  For more information on ffmpeg 2-pass, check \url{https://trac.ffmpeg.org/wiki/Encode/H.264}.  Different libraries may have different requirements and you will probably have to determine this by looking online at ffmpeg or looking directly at that code.
+In Cinelerra for two-pass, you need to run ffmpeg twice, with the same settings, except for designating the options of pass 1 for the first pass and then pass 2.  In pass 1, a logfile that ffmpeg needs for the second pass is created.  In pass 1 the audio codec should be specified that will be used in pass 2.  For more information on ffmpeg 2-pass, check {\small \url{https://trac.ffmpeg.org/wiki/Encode/H.264}}.  Different libraries may have different requirements and you will probably have to determine this by looking online at ffmpeg or looking directly at that code.
 
 This 2 line ffmpeg 2-pass operation can be functionally duplicated in Cinelerra in the steps below them:
 
@@ -570,50 +569,50 @@ ffmpeg -i input -c:v libx264 -b:v 2600k -pass 2 -c:a aac -b:a 128k output.mp4
 \end{lstlisting}
 
 \begin{enumerate}
-    \item After you have completed your editing, do a Save Session with \texttt{File $\rightarrow$ Save as\dots}
+    \item After you have completed your editing, do a Save Session with \texttt{File $\rightarrow$ Save as}\dots
     Before starting, be sure your session is ready for batch render. That is, positioned at the beginning and nothing selected.
-    \item Bring up \texttt{File $\rightarrow$ Batch Render\dots} where you will do the setup.
+    \item Bring up \texttt{File $\rightarrow$ Batch Render}\dots where you will do the setup.
     \item Click on the \textit{Delete} box  to remove old jobs highlighted in the bottom listbox.
     \begin{itemize}
-        \item For the \texttt{File Format} choose ffmpeg and mp4 for the type.
-        \item Set \texttt{Output path} to the path and filename for the render output file.
-        \item Click on \texttt{Use Current EDL} to use the designated EDL Path file.
-        \item Click on \texttt{New} and you will see a new highlighted job show up in the listbox at the bottom.
+        \item For the \textit{File Format} choose ffmpeg and mp4 for the type.
+        \item Set \textit{Output path} to the path and filename for the render output file.
+        \item Click on \textit{Use Current EDL} to use the designated EDL Path file.
+        \item Click on \textit{New} and you will see a new highlighted job show up in the listbox at the bottom.
         \item Use the Audio wrench to set bitrate to $128000$ ($128k$ as in ffmpeg example above).
-        \item Click checkmark \texttt{OK}.  Open the video tools with the video wrench.
-        \item Set the Video Compression to h264.mp4 (as seen in the example).
+        \item Click checkmark OK.  Open the video tools with the video wrench.
+        \item Set the Video Compression to \textit{h264.mp4} (as seen in the example).
         \item Set the bitrate to $2600000$ ($2600k$ as in ffmpeg example above).
         \item Add the following 2 lines after the first line:
         \begin{lstlisting}[language=bash,numbers=none]
 flags +pass1
 passlogfile /tmp/{temporary log file name}.log
         \end{lstlisting}
-        Click checkmark \texttt{OK}.
+        Click checkmark OK.
     \end{itemize}    
-    \item Click on \texttt{New} to create the second pass job.  You will see this second job in the listbox below.
+    \item Click on \textit{New} to create the second pass job.  You will see this second job in the listbox below.
      Use the Video wrench and change pass1 to pass2 as follows.
         \begin{lstlisting}[language=bash,numbers=none]
 flags +pass2
         \end{lstlisting}
-    \item Click checkmark \texttt{OK}.
-    \item Click on the \texttt{Start} box and watch it go!
-    \item You can now check the output file for results.  At the time this was documented, \texttt{rc=2pass} will be
+    \item Click checkmark OK.
+    \item Click on the \textit{Start} box and watch it go!
+    \item You can now check the output file for results.  At the time this was documented, \textit{rc=2pass} will be
         in the output.    
 \end{enumerate}
 
-If you need to re-render this, the Batch Render will still be set up but you have to click on the \texttt{Enabled} column in the listbox to re-enable the jobs to run which puts an X there.  Click Start again. You can reuse batch job using the \texttt{save jobs} and \texttt{load jobs} buttons in the batch render dialog.
+If you need to re-render this, the Batch Render will still be set up but you have to click on the \textit{Enabled} column in the listbox to re-enable the jobs to run which puts an X there.  Click Start again. You can reuse batch job using the \textit{save jobs} and \textit{load jobs} buttons in the batch render dialog.
 
-\paragraph{Render shortcuts for webm, h264, h265} are available by using the option files that are already set up for this purpose.  Use the render menu as usual, with ffmpeg/mp4, choose h264 or h265 \texttt{pass1of2\_h26x} for the video and \texttt{passes1and\-2\_h26x} for the audio; 
-with ffmpeg/webm, choose \texttt{pass1of2\_vp9}.  When that is finished, you will have to use the render menu again and this time for video, choose \texttt{pass2of2\_h26x} or \texttt{pass2of2\_vp9}.  The logfile is hard coded in the options file so will write over any currently existing logfile if you do not change it before you start the render.
+\paragraph{Render shortcuts for webm, h264, h265} are available by using the option files that are already set up for this purpose.  Use the render menu as usual, with ffmpeg/mp4, choose h264 or h265 \textit{pass1of2\_h26x} for the video and \textit{passes1and\-2\_h26x} for the audio; 
+with ffmpeg/webm, choose \textit{pass1of2\_vp9}.  When that is finished, you will have to use the render menu again and this time for video, choose \textit{pass2of2\_h26x} or \textit{pass2of2\_vp9}.  The logfile is hard coded in the options file so will write over any currently existing logfile if you do not change it before you start the render.
 
-\paragraph{Requirements for some other libraries} ~\\ (used instead of \texttt{flags +pass1} \& \texttt{passlogfile}):
+\paragraph{Requirements for some other libraries} ~\\ (used instead of \textit{flags +pass1} \& \textit{passlogfile}):
 
 \begin{description}
     \item[x265:] add this line:
     \begin{lstlisting}[language=bash,numbers=none]
 x265-params=pass=1:stats=/tmp/{temporary log file name}.log
     \end{lstlisting}      
-    at the time this document was written, you should see in the output: \\  \texttt{stats-read=2}
+    at the time this document was written, you should see in the output: \\  \textit{stats-read=2}
     
     \item[libvpx-vp9, xvid, and huffyuv:]~
 
@@ -623,7 +622,7 @@ x265-params=pass=1:stats=/tmp/{temporary log file name}.log
     \end{lstlisting}    
 \end{description}
 
-\noindent \textit{NOTE:} for vp9, the best Pixels is \texttt{gbrp}
+\textit{NOTE:} for vp9, the best Pixels is \textit{gbrp}
 
 \subsection{Use case: High Efficiency Video Coding (HEVC)}%
 \label{sub:use_case_hevc}
@@ -640,7 +639,7 @@ virtually any image size.
 
 The following example is HD and FullHD oriented and produces a
 picture quality similar to the Blu-ray with some limitations.
-As container Matroska (.mkv) is used, but also mp4 and others are
+As container Matroska (\texttt{.mkv}) is used, but also mp4 and others are
 possible.
 
 \vspace{2ex} \begin{lstlisting}[language=bash,numbers=none]
@@ -682,7 +681,7 @@ pixel_format=yuv420p
 \noindent \textit{NOTE:}
 
 A CRF of 16 delivers satisfactory results in most cases. However, if
-the video material is really \emph{grainy}, a CRF~16 can lead to unwanted large files.  In this case, a trial export of perhaps one minute should be performed. The resulting bit rate can be used to correct the CRF to 17,\,18,\,19\ldots --- remember, a CRF of 0 means lossless, the higher the number the stronger the lossy compression. The approximate calculation of the final file size can be extrapolated from the sample export.
+the video material is really \emph{grainy}, a CRF~16 can lead to unwanted large files.  In this case, a trial export of perhaps one minute should be performed. The resulting bit rate can be used to correct the CRF to 17,\,18,\,19\ldots -- remember, a CRF of 0 means lossless, the higher the number the stronger the lossy compression. The approximate calculation of the final file size can be extrapolated from the sample export.
 
 The color space information must be used explicitly so that it can
 be included in the video. Cinelerra\,GG or FFmpeg does not write it
@@ -713,16 +712,16 @@ mknod /tmp/piper.yuv p
     \end{lstlisting}
     load your video and do your editing
     \item set up your Render (\texttt{Shift-R}), you can choose a raw format such as \textit{yuv} or \textit{rgb}
-    \item for the filename \texttt{Select a file to render to}, use the named pipe as created in step 1 (\texttt{/tmp/piper.yuv})
-    \item for \texttt{Insertion Strategy}, you will want to make sure to select \textit{insert nothing}
-    \item click for \texttt{OK} on the green checkmark.(the cinelerra gui will look like it is hanging while waiting for a command line to use the pipe.)
+    \item for the filename \textit{Select a file to render to}, use the named pipe as created in step 1 (\texttt{/tmp/piper.yuv})
+    \item for \textit{Insertion Strategy}, you will want to make sure to select \textit{insert nothing}
+    \item click for OK on the green checkmark.(the cinelerra gui will look like it is hanging while waiting for a command line to use the pipe.)
     \item on the terminal window, keyin your command, for example:
     \begin{lstlisting}[language=bash,numbers=none]
 /mnt0/build5/cinelerra-5.1/thirdparty/ffmpeg-3.4.1/ffmpeg -f rawvideo -pixel_format yuv420p \ -video_size 1280x720 -framerate 30000/1001 -i /tmp/piper.yuv /tmp/pys.mov
     \end{lstlisting}
 \end{enumerate}
 
-A slightly different option can be used instead that may be more familiar to some.  In the render menu after choosing the File Format of \textit{ffmpeg}, use the pulldown to choose \textit{y4m} as the file type.  This choice results in putting a header on the rendered output with some pertinent information that can be used for ffmpeg processing thus alleviating the requirement for \textit{pixel\_format}, \textit{video\_size}, and \textit{framerate} on the ffmpeg command line.  In this case the format is \texttt{yuv4mpegpipe} instead of \texttt{rawvideo}.  An example command line would look as follows (assuming the created pipe is called \texttt{piper.y4m}):
+A slightly different option can be used instead that may be more familiar to some.  In the render menu after choosing the File Format of \textit{ffmpeg}, use the pulldown to choose \textit{y4m} as the file type.  This choice results in putting a header on the rendered output with some pertinent information that can be used for ffmpeg processing thus alleviating the requirement for \textit{pixel\_format}, \textit{video\_size}, and \textit{framerate} on the ffmpeg command line.  In this case the format is \textit{yuv4mpegpipe} instead of \textit{rawvideo}.  An example command line would look as follows (assuming the created pipe is called \texttt{piper.y4m}):
 \begin{lstlisting}[language=bash,numbers=none]
 ffmpeg -f yuv4mpegpipe -i /tmp/piper.y4m -vcodec libx264 /tmp/test.mp4
 \end{lstlisting}
@@ -730,7 +729,7 @@ ffmpeg -f yuv4mpegpipe -i /tmp/piper.y4m -vcodec libx264 /tmp/test.mp4
 \subsection{Faststart Option for MOV type files}%
 \label{sub:faststart_option_mov0}
 
-If you have mov video and want to be able to start playing without having to first load the entire video, \texttt{-movflags=+faststart} is needed for ffmpeg to put the meta-data, known as the \textit{moov atom}, at the beginning of the file.  Otherwise, ffmpeg puts this atom at the end of the video file which means you have to wait to play until the whole video is loaded.  Or worse yet, if the file becomes damaged in the middle and you can not get to the end, you won’t be able to play anything.
+If you have mov video and want to be able to start playing without having to first load the entire video, \textit{-movflags=+faststart} is needed for ffmpeg to put the meta-data, known as the \textit{moov atom}, at the beginning of the file.  Otherwise, ffmpeg puts this atom at the end of the video file which means you have to wait to play until the whole video is loaded.  Or worse yet, if the file becomes damaged in the middle and you can not get to the end, you won’t be able to play anything.
 
-Now you can have the \textit{moov atom} put on the front of the file (automatically via a second pass).  To do this, when rendering using ffmpeg \& either the mp4 or qt format/container, click on the video/audio wrenches and choose \texttt{faststart\_h264}.   With the \texttt{qt} format, settings will just be the default whereas the \texttt{mp4} format uses the highest quality and lowest file size as possible, but you can easily modify these options in the associated Video Preset textbox.
+Now you can have the \textit{moov atom} put on the front of the file (automatically via a second pass).  To do this, when rendering using ffmpeg \& either the mp4 or qt format/container, click on the video/audio wrenches and choose \textit{faststart\_h264}.   With the \textit{qt} format, settings will just be the default whereas the \textit{mp4} format uses the highest quality and lowest file size as possible, but you can easily modify these options in the associated Video Preset textbox.