Here is a sample EDL file:
REM
REM Sample EDL
REM
REM Format: generic (CMX Like)
TITLE: 000
FCM: DROP FRAME
000 000 V1A1A2 C 00:00:00;00 00:00:06;27 00:59:00;02 00:59:59;29
;CBROS9204BTS;D:\EDL\TEST0.MPG
000 000 V1A1A2 C 00:00:00;00 00:00:05;00 01:00:00;00 01:03:05;00
;CBROS9204S01;D:\EDL\TEST1.MPG
000 000 V1A1A2 C 00:00:00;00 00:00:01;00 01:03:05;01 01:03:06;01
;BLACK;BLACK
000 000 V1A1A2 C 00:00:00;00 00:00:05;02 01:03:06;02 01:05:06;04
;STR21019_8003504998;D:\EDL\TEST2.MPG
000 000 V1A1A2 C 00:00:00;00 00:00:00;29 01:05:06;05 01:05:07;04
;BLACK;BLACK
000 000 V1A1A2 C 00:00:00;00 00:00:05;00 01:05:07;05 01:11:57;03
;CBROS9204S02;D:\EDL\TEST0.MPG
000 000 V1A1A2 C 00:00:00;00 00:00:06;01 01:11:57;04 01:13:29;07
;BLACK;BLACK
000 000 V1A1A2 C 00:00:00;00 00:00:02;29 01:13:29;08 01:13:32;07
;CBROSBMPGENERIC;D:\EDL\TEST1.MPG
000 000 V1A1A2 C 00:00:00;00 00:00:00;20 01:13:32;08 01:13:32;28
;BLACK;BLACK
000 000 V1A1A2 C 00:00:00;00 00:00:04;29 01:13:32;29 01:14:03;00
;FOM3NE;D:\EDL\TEST2.MPG
000 000 V1A1A2 C 00:00:00;00 00:00:00;19 01:14:03;01 01:14:03;20
;BLACK;BLACK
000 000 V1A1A2 C 00:00:00;00 00:00:05;28 01:14:03;21 01:15:03;21
;GCA_8002545262;D:\EDL\TEST0.MPG
000 000 V1A1A2 C 00:00:00;00 00:00:00;19 01:15:03;22 01:15:04;11
;BLACK;BLACK
===================================================================
FCM – Timecode format
DROP FRAME or NON DROP FRAME
Line Header (NOT Used)
000 000 V1A1A2 C
1st Timecode after Line Header (srcIn)
source In (starting inpoint for source file) set to
00:00:00:00 for all items
2nd Timecode after Line Header (srcOut)
sourceOut – duration of the item in drop/non-drop based
on the FCM value
3rd Timecode after Line Header (recIn)
Inpoint for this item with reference to starting inpoint for
the format sheet. It is calculated using the cummulative
duration up to this item.
4th Timecode after Line Header (recOut)
Outpoint for this item with reference to starting inpoint for
the format sheet. It is calculated using the cumulative
duration including this item.
Field after 4th timecode
Comment – we put the segment id or ISCI code in this
Field after comment (Last Field)
Absolute path to the file for this item
For black items we write BLACK for comment and file name.
Our parser ignores most of the field and if they are not there our parser does not care. Here is an example entry:
000 000 V1A1A2 C 00:00:00;00 00:00:59;27 00:59:00;02 00:59:59;29
;CBROS9204BTS;M:\temp\exportTemp\DGLAS443145f–6600\CBROS9204BTS
Our parser just looks for 4 timecodes(it does this by looking for 4 “:” or “;” characters between 4 sets of 2 characters). Once they are found it look for 2 semicolons and then grabs all characters from that point until a linefeed is found and uses that string as the filename(the filename can have spaces). So even this would work:
Example 1
01:00:01:00 01:00:02:29 02:00:00:00 02:00:01:29 ; ; filename1
01:00:05:00 01:00:06:29 02:00:02:00 02:00:03:29 ; ; filename2
The first timecode is where in the file we will start playing and the second timecode is where in the file we will stop playing. We pretty much ignore the third and forth timcode except when we start playing. They basically specify what the VITC should be while the edl is playing. When we start playing we use the third timecode to tell us what the starting VITC value should be and then we increment it automatically from there. The 4th timecode and the 3rd timecode of the next clip should always be 1 frame apart. Also the difference between the 1st and 2nd timecode should equal the difference between the 3rd and 4th. If there is a mistake in the 3rd and 4th timecodes somewhere in the EDL we would not catch it because we only look at the 3rd timecode of the clip we start on when we start playing. So Example 2 below would play exactly the same as Example 1.
Example2
01:00:01:00 01:00:02:29 02:00:00:00 00:00:00:00 ; ; filename1
01:00:05:00 01:00:06:29 00:00:00:00 00:00:00:00 ; ; filename2
However if you start at clip2 by highlighting clip2 and then pressing play in MPlayHD the starting timecode would be 00:00:00:00 because we look at the 3rd timecode of the clip we start on. If you highlight clip2 and move the slider to 50% and then hit play we adjust the start timecode and the VITC we should start at to be what is appropriate for starting half way through clip2.
So in the Example 1 above let’s say both clips are 10 second long and the timecode in the files go from 01:00:00:00 to 01:00:09:29. We will play the first clip starting 1 second into the file and end 2 second later. We will then seamlessly start at 5 seconds into the second file and end that clip 2 seconds later. The VITC of the first frame played will be 02:00:00:00 and it will increment to 3:29 during the 4 seconds that the 2 clips are played.