Merge branch 'master' of https://github.com/Andrea-Paz/cin-manual-latex
[goodguy/cin-manual-latex.git] / parts / Loadandsave.tex
1 \chapter{Load, Save, and the EDL}%
2 \label{cha:load_save_and_the_EDL}
3
4 There are many supported file formats that can be loaded and rendered to, that is to say, imported and exported. 
5 The format of the file affects what Cinelerra does with it.  
6 Some file formats are very slow to display on the timeline, especially video which is highly compressed.  
7 Drawing video thumbnails, picons, on the timeline can be very slow.  (You can disable picon drawing for these files with the \textit{draw media} toggle in the patchbay to speed up operations).
8
9 \section{EDL --- Edit Decision List}%
10 \label{sec:edl_edit_decision_list}
11
12 When Cinelerra saves a file, it saves the EDL, Edit Decision List, of the current project but does not save any media. 
13 Edit decision lists, more commonly referred to as the EDL, are generated by Cinelerra for storing projects.  
14 The EDL contains all the project settings and locations of every edit. 
15 Instead of media, the file contains pointers to the original media files on disk.  
16 EDL files are specific to Cinelerra.    
17
18 The EDL files generally have an extension of .xml.  
19 The purpose of the EDL is to separate the media from all of the editing operations so that the original media remains intact. 
20 When the .xml file is loaded, changes to the attributes of the current project are made based on the EDL. Edit decision lists are text files which means they can be edited in a text editor.  EDL and XML are used interchangeably.
21
22 \section{Supported File Formats}%
23 \label{sec:supported_file_formats}
24
25 There are basically 2 kinds of supported file formats, native and ffmpeg.  With the addition of ffmpeg, the majority of the supported file formats you will be using comes via this thirdparty package.  There are hundreds of ffmpeg file format and codec combinations. This set of possibilities includes qt (quicktime), avi (audio-video interleave),  mp4, mp3, mov, mpeg, m2ts, ts, wmv, mts, mpg, flv, mkv, webm, webp, ProRes and many more.
26
27 The other supported formats, referred to as \textit{native},  include the following:
28 AC3, 
29 Apple/SGI AIFF,
30 Sun/NeXT AU,
31 FLAC ,
32 Microsoft WAV,
33 Raw DV and PCM,
34 MPEG Audio and Video.
35
36 \paragraph{Still Images:}  JPEG/EXR/PNG/PPM/TGA/TIFF
37
38 \paragraph{MPEG Files:} 
39 What is an MPEG file?  A very common file format is MPEG because it works with many cameras and televisions.  Mpeg2 video, an elementary codec stream for mpeg files, is the most common format.  To read this format you need to decode the mpeg stream.  You can read and write mpeg natively.  Mpeg video encoding is done separately from mpeg audio encoding when using the native file format, meaning that 2 passes are required and then they have to be muxed together.  However, if using ffmpeg it is rendered in only 1 pass.  DVD uses MPEG as does NTSC and Pal.
40
41 \subsection{Working with Still Images}%
42 \label{sub:working_with_still_images}
43
44 Still images are played from 1 to any number of times, over and over; they have no duration. You can load still images on video tracks just like you do for any video file. When loaded on the track, use the down arrow on the timeline so you can see the single frame. To extend the length of the image, drag its boundaries just as you would do with regular video media. You can drag the boundaries of a still image as much as you want. Images in Cinelerra have the ability to be dragged to an infinite length. Alternatively, you can define the initial length of the loaded images. The parameter is set in the Images section of the Settings $\rightarrow$ ~Preferences $\rightarrow$ ~Recording window.
45
46 Unless your original material comes from a digital source using its best resolution (like a digital camera), the first thing you might have to do before you can use it is to somehow capture the assets into a usable digital medium. For old photos, paper maps, drawings or diagrams, you can scan them into a file format like PNG, TIF, TGA or JPG files by using a digital scanner.
47
48 Rendering a video to a single image causes the final image file to be overwritten for every timeline position. The rendered file is a single still image of the last frame of the video.
49
50 \subsection{Timelapse Sequence of Images, and Animation}%
51 \label{sub:timelaps_sequence_images_animation}
52
53 The next areas covered in this section are the following: 
54 \nameref{ssub:filelist_format} such as jpeglist and \nameref{ssub:image2ffmpeg}.
55
56 In order to be reasonably fast to use, you will most likely want to prepare them by creating a script and then load by utilizing this file generated script.
57
58 \subsubsection{Filelist format}%
59 \label{ssub:filelist_format}
60
61 An image sequence is a series of ordered still pictures; for example a bunch of camera shots, frames of an animated scene, or series of frame shots. These can be loaded as multiple files. For timelapse sequences, as the size of camera images increases to 70 megabytes and beyond, and more images can be stored on a memory stick, more cache, memory, and system resources (such as file descriptors) are used by cinelerra to load the images when you use the \textit{concatenate tracks} or \textit{paste at insertion point} strategies.  It is very time consuming and resource consuming when each of the image files is loaded and concatenated as edits, and it also plays super poorly.  Here is an alternative to the usual \textit{load}.  This technique may also be useful for just a bunch of pictures.
62
63 File lists formats can be utilized in some way for the following list of types of \textit{Sequence files}  The first line of the sequence list file identifies the list codec.
64
65 %\vspace*{1ex}
66
67
68 \begin{center}
69     \begin{tabular}{l l l l}
70     PNGLIST = *.png     &       PPMLIST = *.ppm &       TGALIST = *.tga   &  TIFFLIST = *.tiff \\
71     EXALIST = *.exa     &       CR2LIST = *.cr2 &       JPEGLIST = *.jpg        &    GIFLIST = *.gif
72     \end{tabular}
73 \end{center}
74
75 %\vspace*{1ex} 
76 Using the example of jpeg’s, the jpeg list sequence file type is the easiest and fastest way to access a sequence of jpg images as a single asset.  First build a jpeglist sequence file and name it something like jpeglist.sh.  There is an example script of how to do this in the Auxiliary Programs section of the Appendix.  Once the jpeglist.sh file is built you can then run it similar to this line:
77
78 \begin{lstlisting}[language=bash]
79 $ jpeglist.sh   /<path>/file.jpg   /<path>/DSC*.jpg
80 \end{lstlisting}
81
82 \vspace*{1ex} \noindent If <path> is the same on both outfile and infiles, then file.jpg is created in the same directory as infiles, the directory contains the entire asset, and the file list uses relative paths; otherwise the file list contains absolute paths.   Since this creates outfile list as a single asset, the memory demand and access time is much lower.  When you load the outfile in cinelerra, you will need to set \textit{Try ffmpeg last} since ffmpeg does not work with jpeglist sequence files.
83
84 An example output file from running this script residing in the directory where \texttt{DSC*.jpg} files exist is shown below.   To use this, turn off ffmpeg probes first, and open \texttt{timelapse.jpg} using File ~$\rightarrow$ ~Load files.
85
86 \begin{lstlisting}[language=bash,caption={Example: timelapse.jpg},captionpos=t]
87 JPEGLIST
88 # First line is always JPEGLIST
89 # Frame rate:
90 29.970030
91 # Width:
92 6016
93 # Height:
94 4016
95 # List of image files follows
96 ./DSC04948.jpg
97 ./DSC04949.jpg
98 ./DSC04950.jpg
99 ./DSC04951.jpg
100 ...(files in between)
101 ./DSC04997.jpg
102 ./DSC04998.jpg
103 \end{lstlisting}
104
105 \subsubsection{Image2ffmpeg}%
106 \label{ssub:image2ffmpeg}
107
108 Image2file format is an alternative method to open an image sequence via ffmpeg.  To do this, create 2 files in the same directory as the \texttt{DSC*.jpg} files named:  \texttt{DSC0\%04d.opts}, and \texttt{DSC0\%04d.jpg}. 
109 \texttt{DSC0\%04d.opts} should contain the following lines which have to be modified to fit your exact requirements for duration, start\_number, and frame\_rate.
110
111
112 \begin{lstlisting}[
113 language=bash,
114 caption={Example DSC0\%04d.opts},
115 captionpos=t]
116 loglevel=verbose
117 threads=auto
118 format=image2
119 codec=mjpeg 
120 start_number=4948
121 frame_rate=29.97
122 duration=17.36
123 \end{lstlisting}
124
125 Example of the contents of the file \texttt{DSC0\%04d.jpg} would be just a single line as:  JPEG
126 In this case, make sure \textit{Try ffmpeg first} is enabled, and load \texttt{DSC0\%04d.jpg}.  
127 This will access the media using ffmpeg which is slower so be patient.
128
129 \subsection{Raw Image Format of Some Digital Cameras \& Probe Order}%
130 \label{sub:raw_image_format_digital_camera_probe_order}
131
132 \textit{Warning: Expert Usage only.}  Raw digital camera images are a special kind of image file that Cinelerra can load. Dcraw, as used by Cinelerra, is Dave Coffin’s open-source computer program which reads many raw-image formats typically produced by high-end digital cameras.  Currently almost 700 of the types of cameras it recognizes are listed at:
133
134 \vspace*{1ex} \url{https://www.cybercom.net/~dcoffin/dcraw/}
135
136 \vspace*{1ex} \noindent For example, included is the Canon Powershot SX60 (newly available in August, 2014).  Because ffmpeg tries to load \textit{any and every} file if \textit{Try Ffmpeg first} is enabled. it will make an attempt to load Raw Camera files first before any other file driver gets the chance.  In addition, there is the possibility that dcraw could conflict with the standard TIFF format, since it might be seen as format type \textit{tiff-pipe}.  Therefore it is necessary to specifically enable CR2 and either move it to the top or disable \textit{FFMPEG\_Early} and enable \textit{FFMPEG\_late} in the \textit{Probe Order} as described in another section.  These changed settings will be retained across cinelerra sessions in .bcast5.  Raw Camera mode is most likely going to be used by expert camera users.
137
138 The first screenshot in figure~\ref{fig:raw} as in ~Settings $\rightarrow$ ~Preferences $\rightarrow$ ~Playback A Tab, shows the default checked settings of \textit{Interpolate CR2 images} and \textit{White balance CR2 images} which display the raw images in a way that you expect.  However, you may want to uncheck them to ensure that no program manipulation has modified your images so that you can add plugins or make your own modifications.  Unchecked indicates that the images are as closest as possible to unadulterated raw.
139
140 The second screenshot showing CR2 for Raw Camera highlighed/enabled in the Preferences Probes’ screen.
141
142 The final screenshot showing the Resources Asset Info displaying the File format as Raw Camera.
143
144 \begin{figure}[htpb]
145     \centering
146     \includegraphics[width=0.95\linewidth]{images/raw.png}
147     \caption{Screenshots for RAW images}
148     \label{fig:raw}
149 \end{figure}
150
151 \section{Loading Files}%
152 \label{sec:loading_files}
153
154 All data that you work with in Cinelerra is acquired either by loading from disk or recording from a device. This section describes loading.  To bring up the Load window go to the File pulldown and choose Load Files  (figure~\ref{fig:load}).  Next \textit{Select files to load}, and click ok (the green checkmark) or \textit{Apply}. When you use the Apply button, the Load window remains active for easily loading more files later.  Depending on the setting of the Insertion Strategy list box, your file will be either loaded directly on the Program window or in the Resources Media window.  If the file is a still image, the project's attributes are not changed and the first frame of the track becomes the image. Cinelerra usually builds an index file if one does not already exist, in order to speed up drawing. You can edit and play the file while the index is being built.
155
156 \begin{figure}[htpb]
157     \centering
158     \includegraphics[width=0.8\linewidth]{images/load.png}
159     \caption{Load file menu.  Note the green checkmark for OK and the middle Apply option}
160     \label{fig:load}
161 \end{figure}
162
163 \vspace{1ex} \noindent To load a file, you will need to:
164
165 \begin{enumerate}
166     \item set a directory path
167     \item pick a file selection
168     \item choose a selection strategy for loading the file
169 \end{enumerate}
170
171 \noindent Once you have completed making your choices and clicking OK or Apply, by default three things occur:
172
173 \begin{itemize}[noitemsep]
174     \item The existing project is cleared from the screen.
175     \item The project's attributes are changed to match the file's attributes.
176     \item The new file's tracks are created in the timeline.
177 \end{itemize}
178
179 \noindent Let's now see in detail the options of loading files.
180
181 \begin{description}
182     \item[Insertion Strategy] 
183     Cinelerra lets you change what happens when you load a file.  In the Load dialog window go to the Insertion strategy box and select one of the options in the drop down menu. Each of these options loads the file a different way.
184     
185     \begin{description}
186        \item [Replace current project:] all tracks in the current project are deleted and a set of new tracks are created to match the source file.  Project attributes are only changed when loading XML. If multiple files are selected for loading, Cinelerra adds a set of new tracks for each file. New resources are created in the Resources Window, replacing the current ones.
187        \item [Replace current project and concatenate tracks: ] same as replace current project, except that if multiple files are selected, Cinelerra will concatenate the tracks of each file, inserting different source files in the same set of tracks, one after another, in alphanumeric order, starting at 0. New resources are created in the Resources Window, replacing the current ones.  Files go across the timeline.
188     \end{description}
189     For ffmpeg and mpeg files, when the Insertion strategy methodology in the File $\rightarrow$ Load files pulldown is chosen to be either \textit{Replace current project} or \textit{Replace current project and concatenate tracks}, the basic session format parameters are reinitialized to match new media.  This selects the default asset and determines its width, height, and video length, frame rate, calculates the colormodel, and assumes square pixels to make an intelligent guess about aspect ratio for video.  For audio, the sample rate, audio length, and channel count (mono, stereo, or 5.1) are reinitialized.  In addition the \textit{Track Size} will be computed and is reinitialized to match the new loaded media.  When using \textit{replace} type insertion strategy, the new asset list is the only media in use so that this update saves the user from immediately needing to change the session format to match the only possibility.
190     \begin{description}
191         \item[Append in new tracks:] the current project is not deleted and new tracks are created for the source, one set of tracks for each file. New resources are created in the Resources Window.  Files go down tracks.
192         \item[Concatenate to existing tracks:]  the current project is not deleted and new files are concatenated to the existing armed tracks, inserted in the same set of tracks of the current project, one after another, in     alphanumeric order, starting at the end of the tracks. If the current project has more tracks than the source, the source file will be inserted in the first set of armed tracks. If no tracks are armed, no files will be inserted. New resources are created in the Resources Window.
193         \item[Paste at insertion point:] the file is pasted into the timeline at the insertion point, on the first set of armed tracks.  If multiple files are selected for loading, they will be inserted on the same set of tracks, one after the other. New resources are created in the Resources Window.
194         \item[Create new resources only:] the timeline is unchanged and new resources are created in the Resources Window only.description
195         \item[Nest sequence:] nested assets are added to the timeline by using the Nest sequence insertion strategy.
196         The file will be pasted into the timeline over the current selection or at the insertion point. A nested sequence is media that had already been saved as an EDL earlier.  See the section on Nesting.description
197     \end{description}
198     The insertion strategy is a recurring option in many of Cinelerra's functions. In each place the options do the same thing. If you load files by passing command line arguments to Cinelerra, the files are loaded with \textit{Replace current project} by default.
199     \item[Loading Multiple Files] In the Load dialog go to the list of files. Selecting files utilizes the motif style selection method.
200     \begin{enumerate} [noitemsep]
201         \item Select a single file by highlighting.
202         \item Select multiple files by moving to another file and select it while holding down Ctrl. This selects
203         one additional file.
204         \item Or move to another file and select it while holding down Shift. This selects every intervening file.
205     \end{enumerate}
206 This behavior is available in most listboxes.   It is an especially useful method when used with \textit{Concatenate to existing tracks} insertion strategy to create an images slideshow or a song playlist.
207     \item[Loading files from the command prompt] Another way to load files is to pass the filenames as arguments on the command line.  This starts the program with all the arguments loaded and creates new tracks for every file.  For example:
208     
209     \texttt{\{your\_cinelerra\_program\_path\} video1.mp4 video2.mp4}
210     \item[Finding Files by Extension, Sub-list, or with Search] If there are too many files in your media directory, it can be difficult to find the file you want. For this reason, the Load window allows you to filter which files are displayed in the list box by extension name. Click the dropdown box on the right side of the \textit{Specify filter} list box below the file name text box, and select the file extension of your media (for example: mp4, mov, mp3, avi, jpg, etc). The file list now shows only files with the selected extension.  Perhaps even easier is to use the Search box on the top underneath the \textit{Select files to load} listbox.  Here you can keyin a character or string to look for. \\
211     You can also get a sub-list of potential files to choose from. For example, you know that the file you are looking for begins with the capital letter "C". If you keyin "C" into the selection box immediately below the list of files, and then click the left mouse button, a sub-list of files beginning with the "C" shows up under the selection box. Clicking the right mouse button cancels this sub-list.
212     \item[Loading the backup] There is one special XML file on disk at all times. 
213
214         After every editing operation, Cinelerra saves the current project to a backup in  \texttt{\$HOME/.bcast/backup.xml}. 
215         In the event of a crash, the first thing you should do after restarting Cinelerra is select File $\rightarrow$ Load backup in order to load the backup. 
216         This will start Cinelerra at the point in your editing operations directly before the program crashed. 
217         It is important after a crash to restart Cinelerra without performing any editing operations as you will overwrite the backup. 
218         Note that the backup.xml file is always a single file which means that when you are working with two instances of Cinelerra open at the same time, they use the same backup file. 
219         In this case, the last operation made in whatever instance will overwrite the backup.
220 \end{description}
221
222 \subsection{Sort within Sort in File Load Dialog}%
223 \label{sub:sort_within_sort_file_load_dialog}
224
225 When you use the File pulldown to load files, you can do a sort within a sort when you click on the labeled header box (figure~\ref{fig:load-sort}).  This is useful, for example, when you want to find the smallest file for a specific extension.   In the screenshots below, the first illustrates the default \textit{File} sorted alphabetically; the second shows the \textit{Size} is now sorted; the third shows how after sorting on Size, you sort on Ext.  The size sort is maintained within the extension sort so that \textit{c.d} comes before \textit{a.d} in the File header box because the size is smaller.
226
227 \begin{figure}[htpb]
228     \centering
229     \includegraphics[width=0.9\linewidth]{images/load-sort.png}
230     \caption{Load - Sort by File name, sort by file Size, and within Extension after a previous Size sort}
231     \label{fig:load-sort}
232 \end{figure}
233
234 \subsection{Size Numeric Format Displayed in File Load}%
235 \label{sub:size_numeric_format_displayed_file_load}
236
237 There are several icon buttons at the top on the right hand side of the Load window.  Each has a tooltip to explain what it is for.  You can see these in the previous figure.  One is for File size format.  There are 4 numerical representation variations for reporting the file size in the File $\rightarrow$ Load pulldown.    You can see the options in the Load window to the right of the top line that read \textit{Select files to loads} (figure~\ref{fig:load-size}):
238
239 \begin{description}
240     \item[0] this is the default and current behavior and shows bytes the same as the \textit{ls -l} command.
241     \item[b] 3 significant digits suffixed by lower case k,m,g,t,b for representing magnitudes in $10^3$ (1000)
242     \item[B] 3 significant digits followed by upper case characters for representing magnitudes in $2^{10}$ (1024)
243     \item[;] like the exact default byte representation but with comma separators for easy reading.  Periods can
244     not be used as separators due to locale conflict with ffmpeg coding.
245 \end{description}
246
247 \begin{figure}[htpb]
248     \centering
249     \includegraphics[width=0.9\linewidth]{images/load-size.png}
250     \caption{Load windows with various Numeric Sizes}
251     \label{fig:load-size}
252 \end{figure}
253
254 \subsection{Probe Order when Loading Media}%
255 \label{sub:probe_order_loading_media}
256
257 Why is this mentioned here?  So many programs have been written whose functionalities overlap and you may want to ensure that the one you wish to use is actually used.  Over time which one matches first may vary.  Ffmpeg is so generic that if your setting is \textit{Try ffmpeg first} it will almost certainly get used and it leaves little chance that other methods will even get a chance.  Some of the codec file drivers can open a variety of media, and some of the more common methods may have more than one file driver which could be useful to decode your media file, for example Tiff.  For expert specialized usage, when you want to guarantee that a certain method is used, you can change the \textit{probe order}.  Use the pulldown Settings $\rightarrow$ Preferences to get to the Interface tab where you will see a box in the Operation section on the left side called \textit{Probe Order}.  Click on the box and use the up/down/enabled boxes to change the order of the item you have highlighted (figure~\ref{fig:probe}).
258
259 \begin{description} [noitemsep]
260     \item[Up] move the item up 1 (if the item is currently on the top, it will be moved to the bottom)
261     \item[Down] move the item down 1 (similarly, if on the bottom, it will be moved to the top)
262     \item[Enable] there will be a check mark if the item is currently enabled.  If you disable it, it will not be used to probe the media to determine what it is.  Double left mouse click will toggle the enabled/disabled state of the highlighted item.  If both FFMPEG Early/Late are enabled, the FFMPEG code could be run twice if the 1\textsuperscript{st} FFMPEG run failed (but so will the 2\textsuperscript{nd}!).
263 \end{description}
264
265 The default setup is set to duplicate the past expected behavior with the exception that CR2 for Raw Camera mode is disabled.  Changes made in the settings will be retained in the \texttt{.bcast5} file.
266
267 \begin{figure}[htpb]
268     \centering
269     \includegraphics[width=0.9\linewidth]{images/probe.png}
270     \caption{Three example of Probes window}
271     \label{fig:probe}
272 \end{figure}
273
274 Screencast show the first few probe items.  Note that the up arrow on the left, signifies \textit{enabled}.
275 Scrolling down shows the next 2 pages of possible drivers for a total of 18.
276
277 The order change will not take effect until you click on the checkmark in both the Probes window and the Preferences window.  When you click on the FF button, which is in the upper right-hand corner of the main page to change \textit{Try FFMpeg first/last}, enabling of FFMPEG\_Late or FFMPEG\_Early will be toggled automatically in Probes to match that choice but does NOT change its position in the table. Be sure to only click on the FF button without the Preference/Probes window up to avoid unexpected results.  It is also recommended to leave FFMPEG\_Early/FFMPEG\_Late close to the top/bottom positions.  There is one case where you may want to disable all of the probes if you want to force PCM --- Pulse Code Modulator.  This code is always run when all other probes fail.
278
279 \subsection{Program Selection Support after Load}%
280 \label{sub:program_selection_support_load}
281
282 Some kinds of media have \textit{program} streams, like captured mpeg broadcast stream data.  For example, you may be able to \textit{tune} to channel 9, but be able to see 9-1, 9-2, and 9-3 on your TV.  If you open a capture of this kind of media, all of the channels are present in the timeline.  To select and view just one program, you can use Alt-1 to select program 1, or Alt-2 to select program 2, etc. up to Alt-8.  This will remove all of the other unrelated tracks and reset the format.  This feature can be used even if there is only one program, by pressing Alt-1, and the effect will be to reset the session format to the parameters from the media probe.  Note that there may be several audio \textit{programs} associated to a video stream;
283 for example, there may be dialog in another language or some kind of descriptive dialog.  Since the first associated audio is always selected, this may not produce the intended results.
284
285 Below are screenshots illustrating multiple program streams (figure~\ref{fig:stream}).  The left screenshot is a partial main Cinelerra window showing a pre-recorded broadcast TV media/audio stream with 3 programs plus several associated audio tracks.  The second screenshot of \textit{Asset Detail} provides detailed information on each of the streams obtained through executing the Info Details as explained in the section \textit{Info Asset Details}.
286
287 \begin{figure}[htpb]
288     \centering
289     \includegraphics[width=0.8\linewidth]{images/stream.png}
290     \caption{Multiple program streams and Asset Detail}
291     \label{fig:stream}
292 \end{figure}
293
294 \section{Saving Your Work}%
295 \label{sec:saving_your_work}
296
297 You can save your work as a project, which is what is loaded in Cinelerra now, or as an export, which is all the media it takes to reproduce your project space.
298
299 \subsection{Saving Project Files}%
300 \label{sub:saving_project_files}
301
302 Saving  XML files is useful to save the current state of Cinelerra before quitting an editing session. Cinelerra saves projects as XML files. There are a few options you can use to save your work via the File pulldown menu: Save, Save as\dots, Export project, Save backup.  You can either overwrite an existing file or enter a new filename. Cinelerra automatically concatenates .xml to the filename if no .xml extension is given.
303
304 When Cinelerra saves a file, it saves the EDL of the current project but does not save any media, instead just pointers to the original media files. For each media file, the XML file stores either an absolute path or just the relative path. If the media is in the same directory as the XML file, a relative path is saved. If it is in a different directory, an absolute path is saved.
305
306 You have to be careful when moving files around to avoid breaking the media linkages. You can keep the media and the XML file in the same directory forever and freely move the whole directory, since relative paths are saved. Alternatively you can save the XML file in a different directory than the media but then you can't move the media. In this case you can freely move your XML file around, since absolute paths are saved. If you saved your XML file in the same directory as your media but you would like to move location, you can change the paths from relative to absolute by going
307 to File $\rightarrow$ Save as... and entering the new location. Similarly if you saved your project outside your media directory but you would like to move your media to another location, you can change the paths from absolute to relative by going to File $\rightarrow$ Save as\dots and saving your XML file in the same directory as the media.
308
309 You can also repair broken media linkage by editing the XML file in a text editor. For every media you moved, search for the old path and replace it with the new one. You should make a backup copy of your XML file before editing. You can also replace the path of every asset whose source file you moved also within the program, by entering the new location in the Asset info window. To open this window, right click on the asset in the Resources window and choose Info\dots in the popup menu. Directly type the path in the first field of the dialog or click on the magnifier on the right to browse your files. Operating
310 from the GUI is convenient only when a very small number of changes is needed.
311
312 Real-time effects in an XML file have to be re-created every time you play it back. The XML file also contains copies of all the source assets on disk, which takes up space.  Render your projects to a final format for more persistent storage of the output.
313
314 \subsection{Export Project – Save or Moving Project to another Computer}%
315 \label{sub:export_project}
316
317 A File pulldown called \textit{Export Project\dots} is also available (figure~\ref{fig:export}).  Although, it can be used in the same manner as the other \textit{save} options, it is very useful when it is necessary to move a project to another computer that may have a different top level directory structure or if you want to include subdirectories to better organize your files.  
318
319 Originally, the easiest way to maintain a project for moving to another computer, was to put all of the files in a single directory with no subdirectories along with the EDL saved .xml file.   This is commonly called a \textit{flat} file structure.  So if the media was in the same directory as the XML file, a relative path was saved.  If it was in a different directory, an absolute path was saved.
320
321 \begin{figure}[htpb]
322     \centering
323     \includegraphics[width=0.6\linewidth]{images/export.png}
324     \caption{Export Project option popup and the 3         available options.}
325     \label{fig:export}
326 \end{figure}
327
328 \noindent Definition of Fields:
329
330 \begin{description}
331     \item[Project Directory] name of the directory where you want the xml file to be saved.  It will only create
332     a subdirectory in 1 level of the defined directory.
333     Available option types for saving a project:
334     \begin{description}
335         \item[Copy] all files are copied to the project directory and the xml is saved; same as original \textit{flat}.
336         Option is very useful to ensure all files needed to illustrate a problem are available for analysis.
337         \item[SymLink] symbolic links are created for absolute paths of media in their current location.
338         \item[RelLink] symbolic links are created for relative paths of media in their current location.  This
339         option allows for using relative paths without the requirement to maintain a \textit{flat} file structure
340         and makes it easy to move to another computer.
341     \end{description}
342     \item[Overwrite files] when checked, if any files with the same name currently exist in the directory, they
343     will be overwritten.  In any case, the named XML file will always be overwritten.
344     \item[Reload project] when checked, after the save option the new saved project will be loaded. Default is not to do so.
345 \end{description}
346
347 \noindent Keep in mind that to maintain the integrity of your project xml file for easy moving to another computer, do not delete the symbolic links.  You will want to use \texttt{cp\,-a} to maintain the links for moving to a USB key or another computer.
348
349 \subsection{Information about Backups and Perpetual Session}%
350 \label{sub:information_backups_perpetual_session}
351
352 In an effort to minimize loss of work due to user, hardware, or software issues, cinelerra has some automatic backup capabilities.
353
354 Cinelerra automatically saves every \textit{editing operation} to the current project on disk continuously to a file named \texttt{\$HOME/.bcast5/backup.xml}.  In the unlikely event of a crash, when you restart cinelerra, you should select File $\rightarrow$ Load backup in order to continue with the operations that were recorded before the crash.  If you have more than 1 instance of Cinelerra running, only the last editing operation made in whichever instance it was last made, will overwrite the backup. 
355
356 There is still 1 more backup that may save you.  If for some reason you forgot to use \textit{Load backup} immediately when restarting, you have a second chance to use File $\rightarrow$ Load and select \texttt{\$HOME/.bcast5/backup.prev} as long as you only loaded a different file and have performed no editing operations.  This same file is also used by multiple instances of cinelerra.
357
358 \textbf{Perpetual session} is very useful for working on a project over many days so you can just quit before shutting down and the next time you start up Cinelerra you will be right back where you left off.  
359 You will retain all of your undo’s and redo’s.  
360 The binary file name is \texttt{\$HOME/.bcast5/perpetual.dat} and as long as Settings $\rightarrow$ Preferences, the Appearance tab has the Flag \textit{Perpetual session} set this capability takes effect.  
361 It is very important to understand that this is not the same as the continuously editing- operation-updated backup.xml file.  
362 The perpetual.dat file is \textit{only} updated when you Quit cinelerra in the normal manner.  
363 Which means if you interrupt the program, or kill it, or there is a segv or system crash, the perpetual.dat file will only reflect the state of your project from when you last started cinelerra and none of the editing/undo’s/redo’s you executed during the current session which was not ended normally.
364 \vspace{1ex}
365
366 Some notes to keep in mind about Perpetual session are:
367
368 \begin{itemize}
369     \item when you Quit in the normal manner, it does not have to ask whether or not to save a backup
370     \item takes disk space in \texttt{.bcast5} area and this could get really big
371     \item after you complete a project, it is advisable to turn off the Perpetual session flag before quitting so
372     that when you start a new project, you can start with a fresh perpetual.dat by turning the flag on or
373     after stopping cinelerra, delete the current \$HOME/.bcast5/perpetual.dat file
374     \item only session data is backed up (not program feature setup)
375     \item the files backup.xml and backup.prev will operate the same as before so that if there is a crash, you
376     will want to use File $\rightarrow$ Load backup in order to continue where you were interrupted.
377 \end{itemize}
378