Copyright 2001 Dr Kevin W. Moore
This document provides an introduction and guide to using MediaWare Solutions' EDL format version 3
MediaWare's EDL format version 3.0.X is a CMX style EDL. 'CMX Style' is an industry term used to describe any reasonable derivation of the original EDL format that was specified by the CMX Corporation in the early 70s. The CMX EDL format was designed to work with early videotape editing controllers that were capable of performing basic edits between 'reels' or video tapes. The CMX EDL file format uses an ASCII (text) file, which makes it readable, and increases its portability. Edit lines contain edit number, reel id, edit mode and type information together with in and out points specified using SMPTE timecode values.
MediaWare's MPEG editing technology is file and stream based. Its EDL format 3.0.X modifies the original CMX EDL format to allow filenames rather than reel number to be specified. In the same manner as for CMX, MediaWare's EDL format uses SMPTE timecodes to specify edit in and out points since MPEG, like professional video tape, contains SMPTE timecodes recorded at regular intervals. In addition, MediaWare's format also supports others ways of specifying in and out points which are described later in this document.
This document provides a tutorial introduction and overview to MediaWare's EDL format. It is designed to provide enough information to allow a user to generate valid MediaWare EDL files manually, or to write translation programs to convert to/from other formats. The formal EDL specifications are included as the last section of this document.
MediaWare's EDL files are ASCII (text) files that contain a header, followed by a mixture of edit and comment lines (comment lines start with '#').
# TYPE = EDL # VERSION = 3.0.0 # # Can have general edl comments here #The rest of the EDL, called the body, contains the edit lines and edit line comments. i.e.
# mode type srcIn srcOut recIn recOut # cut video and audio from file1 file1 VA C 00:00:10:00 00:00:16:00 00:00:00:00 00:00:06:00 # dissolve of 25 frames # file1 VA C 00:00:16:00 00:00:16:00 00:00:06:00 00:00:06:00 file2 VA D 25 00:00:35:00 00:00:37:00 00:00:06:00 00:00:08:00 # video fade out to black of 25 frames file2 V FO 00:00:48:00 00:00:50:00 00:00:08:00 00:00:10:00 # audio from file1 used for the final fade to black file2 A C 00:00:17:00 00:00:19:00 00:00:08:00 00:00:10:00The above EDL body performs a simple cut, followed by a dissolve of 25 frames, followed by a fade out to black, with the fade to black using the audio from the first file. The first entry on each edit line is the filename (i.e. file1 or file2). The next entry is the edit mode which is either Video and Audio (VA), Video only (V), or Audio only (A). This allows edits to be made on both the video and audio streams, or just the audio or just the video even if the file contains both streams. Following the edit mode is the edit type, which can be either Cut (C), Dissolve (D), FadeOut (FO), FadeIn (FI), or a Wipe (W). The in and out points for the source file (srcIn and srcOut) are next, and then the optional output in and out points (recIn and recOut).
# file1 = /usr/data/mpeg/mympegfile.mpgThis binds the tag file1 to represent the filename /usr/data/mpeg/mypegfile.mpg. In essence, the TAG replaces the concept of the REEL id that was used in the original CMX EDL format. TAGs simplify the task of updating EDLs when files change names or locations, and improve the readability of the EDL. The one restriction of TAG lines is that they must appear before the first usage of the TAG. MediaWare's editing tools generate EDL with the automatic creation of tags in the EDL. Example of tags and a typical EDL:
# TYPE=EDL # VERSION=3.0.0 # # A simple edl with tags and separate video/audio # cuts # # scen1 = /usr/data/mpeg/scenicview.mpg # mybi1 = /usr/data/mpeg/mybirthday.mpg # john1 = /usr/data/mpeg/johnswedding.mpg # start with scenic view scen1 V C 00:01:00:00 00:01:10:00 00:00:00:00 00:00:10:00 # bits from my birthday mybi1 V C 00:00:00:00 00:00:15:00 00:00:10:00 00:00:20:00 # add the sound track from the wedding john1 A C 00:00:00:00 00:00:20:00 00:00:00:00 00:00:20:00 # finish with the wedding. keep audio continuous john1 VA C 00:00:20:00 00:00:30:00 00:00:20:00 00:00:30:00In the above EDL, the first three edits cut video out of scenicview.mpg and mybirthday.mpg and merges these with the audio from johnswedding.mpg. It finishes with a synchronized video and audio cut from johnswedding.mpg.
# TYPE=EDL # VERSION=3.0.0 # # A simple edl with tags and separate video/audio # cuts # # scen1 = /usr/data/mpeg/scenicview.mpg # mybi1 = /usr/data/mpeg/mybirthday.mpg # john1 = /usr/data/mpeg/johnswedding.mpg # start with scenic view scen1 V C 00:01:00:00 00:01:10:00 # bits from my birthday mybi1 V C 00:00:00:00 00:00:15:00 # add the sound track from the wedding john1 A C 00:00:00:00 00:00:20:00 # finish with the wedding. keep audio continuous john1 VA C 00:00:20:00 00:00:30:00RecIn and recOut times, when specified, can be used to create holes or gaps in either the video and/or the audio of the output stream. This occurs when there is no input for a given time region of the output. When there is a hole in the video stream of an edit, MediaWare's editing engine inserts blank (black) video frames to fill in the gap in the output. When there is a hole in the audio stream, MediaWare's engine inserts silence into the output. A hole in both Video and Audio is currently removed. The following EDL contains a video hole at the beginning which results in some lead-in black frames, and an audio hole at the end which results in silence.
# # TYPE=EDL # VERSION=3.0.0 # # A simple edl with tags and separate video/audio # cuts # # scen1 = /usr/data/mpeg/scenicview.mpg # mybi1 = /usr/data/mpeg/mybirthday.mpg # john1 = /usr/data/mpeg/johnswedding.mpg # sound track from mybirthday mybi1 A C 00:00:00:00 00:00:20:00 00:00:00:00 00:00:20:00 # my birthday, preceded by 10 seconds of video black mybi1 V C 00:00:10:00 00:00:20:00 00:00:10:00 00:00:20:00 # the wedding video and audio john1 VA C 00:00:20:00 00:00:30:00 00:00:20:00 00:00:30:00 # keep video going for last 5 seconds (no audio) john1 V C 00:00:30:00 00:00:35:00 00:00:30:00 00:00:35:00For more details on the syntax of the EDL format, see the Format Specification section.
Ths tutorial has shown by example how to create and used MediaWare's EDL format 3.0.X to specify the most common types of video edits. For a further information on the EDL format and its use, see the formal specification in the following sections.
# type = EDL # version = 3.0.0 # # Comments #type and version keywords can be either capitalized or in lowercase. i.e. TYPE = EDL, or VERSION = 3.0.0. There can be any number of empty comment lines before or between type and version lines, however there can't be any other non empty comment lines before these are found.
The header block is defined to be the first continuous block of comments. Any non empty comment lines in this block of comments is associated with the EDL as a whole, and are stored as header comments.
# TCC FRAME RATE = VIDEO # TCC FRAME RATE = 25 # TCC FRAME RATE = d29.97 # tcc frame rate = 29.97TCC Frame Rate can be either 'VIDEO', or a specified frame rate. If TCC Frame Rate is VIDEO, then the video frame rate is used to translate the timecodes of the entry. If the TCC Frame Rate is given, i.e. '25', '29.97', 'd29.97', then that frame rate is used to translate the timecodes. 'd29.97' refers to a frame rate of 29.97 with drop frame flag set to true. For more information on drop frames see the document "Frame Drops Keep Falling on my Head", by Dr Ken Tsui.
For EDL entries containing audio only, or image files, a TCC Frame Rate should
be specified in the EDL header to allow the timecodes to be parsed.
Tag Lines are any lines (usually starting with a comment indicator) that have a tag value, an ' = ', followed by a filename. The tag is then associated with that filename for the rest of the entries in the EDL. Each time the tag value is encountered in the filename position, it is replaced by the filename associated with it. i.e.
# This tag is used instead of the full filename # in the edl. # mymov = /usr/data/mpeg/mymovie.mpg mymov V C 00:00:35:00 00:00:40:00Tag Lines can occur anywhere in the EDL but must occur before the first use of the tag. The usual place for Tag Lines is the header of the EDL.
# Cut ausfilm from 10 to 20 seconds mymov VA C 00:00:10:00 00:00:20:00
Several common single file effects for which special TransitionTypes have been defined. These are FadeIn and FadeOut.
Fade In over the time period srcIn to srcOut
<filename|tag> <EditMode> FI [srcIn] [srcOut] [recIn] [recOut]
Fade Out over the time period srcIn to srcOut
<filename|tag> <EditMode> FO [srcIn] [srcOut] [recIn] [recOut]
e.g.
film1.mpg VA FI 00:00:10:00 00:00:20:00
<filename|tag> <EditMode> D XX [srcIn] [srcOut] [recIn] [recOut]
Dissolve entries consist of two lines. The first line specifies the first file of the dissolve in as a cut edit line. The srcIn and srcOut timecodes are the same and specify the first frame of the dissolve. The recIn and recOut timecodes are also the same and equal the recIn timecode of the dissolve edit.
The second line contains information about the second file and the dissolve transition. It consists of a dissolve line with an effect duration in frames equal to the duration of the dissolve. The srcIn and srcOut times specify the duration of the section of video used from the second file. The duration of the dissolve should be less than or equal to the duration of the file segment specified in the dissolve. i.e.
# dissolve from filmclip1 (starting at 10secs) to filmclip2 # (starting at 0secs), over 75 frames. the duration of the # filmclip2 section is 10 seconds including the 3 sec (75 frame) # dissolve (frame rate of both videos is 25fps) # # filmclip1.mpg VA C 00:00:10:00 00:00:10:00 filmclip2.mpg VA D 75 00:00:00:00 00:00:10:00
For More Information Contact: Mediaware Solutions Pty Ltd
GPO Box 1985, Canberra, ACT 2601, Australia
phone: +61 2 6247 4438
fax: +61 2 6247 4557
email: info@MediawareSolution.com
URL: http://www.MediawareSolutions.com