doc:appunti:linux:video:olive_editor_ovexml
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
doc:appunti:linux:video:olive_editor_ovexml [2023/09/28 13:12] – niccolo | doc:appunti:linux:video:olive_editor_ovexml [2023/09/28 14:49] – niccolo | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Olive Video Editor an insight of the OVEXML file format ====== | + | ====== Olive Video Editor: an insight of the OVEXML file format ====== |
**[[https:// | **[[https:// | ||
Line 9: | Line 9: | ||
Beware that the project I worked on is a **really simple** one! Only two tracks (one video and one audio), video is always locked with the audio, **the clips are just concatenated** without transition effects, gaps, etc. Parsing the OVEXML of such a project is feasible, any extra feature could make the job too challenging. | Beware that the project I worked on is a **really simple** one! Only two tracks (one video and one audio), video is always locked with the audio, **the clips are just concatenated** without transition effects, gaps, etc. Parsing the OVEXML of such a project is feasible, any extra feature could make the job too challenging. | ||
- | My goal was to build **the sequence of clips** used into a project, | + | My goal was to print **the sequence of clips** used into a project, |
- | The first challenge was to find the link from the top level node of the project (the **org.olivevideoeditor.Olive.sequence**) down to the lower level node **org.olivevideoeditor.Olive.footage** (e.g. the media files on the computer disk). In this walk I had to figure out how to get the clip starting frame and its length. | + | The first challenge was to find the link from the top level node of the project (the **org.olivevideoeditor.Olive.sequence**) down to the lower level nodes **org.olivevideoeditor.Olive.footage** (e.g. the media files on the computer disk). In this walk I had to figure out how to get the clip starting frame and its length. |
The nodes to walk into the XML structure are the following: | The nodes to walk into the XML structure are the following: | ||
Line 31: | Line 31: | ||
</ | </ | ||
- | When foolowing | + | When following |
<code xml> | <code xml> | ||
Line 51: | Line 51: | ||
</ | </ | ||
- | As you can see the frame numbers are represented as rationales. Being my framerate | + | As you can see the frame numbers are represented as rational numbers. Being my footages shot at 29.97 FPS (i.e. 30000/1001) the math is as follow: **1001 / 200 * 30000 / 1001 = 150** (i.e. 150 frames clip length). |
The most challenging part was to understand how the clips are ordered into the timeline. Unfortunately the **%%< | The most challenging part was to understand how the clips are ordered into the timeline. Unfortunately the **%%< | ||
Line 68: | Line 68: | ||
</ | </ | ||
- | The ASCII string **%%AwAAAAgAAAAFAAAABwAAAAYAAAA=%%** is actually a base64 encoded binary string that you can decode on the command line into binary: | + | The ASCII string **%%AwAAAAgAAAAFAAAABwAAAAYAAAA=%%** is actually a base64 encoded binary string that you can decode on the command line into a binary |
<code bash> | <code bash> |
doc/appunti/linux/video/olive_editor_ovexml.txt · Last modified: 2023/09/28 16:03 by niccolo