Log in

View Full Version : [REQ]EDL Support


Backwoods
16th June 2005, 01:21
It has been discussed before here:
http://forum.doom9.org/showthread.php?t=69316&highlight=EDL

and here:
http://forum.doom9.org/showthread.php?t=83408&highlight=EDL

But it seems no news came about such a feature.

Here is a sample EDL if need be: http://rapidshare.de/files/2412206/CAQ3.edl.html


Is there still interest in adding or creating a plug in? Be it a Dev or User.

Mug Funky
16th June 2005, 05:02
hehe... forgot about this one. it could be implemented with regular scripting i think (could it? i'm not sure if we can read from text files in avs).

it's not essential at the moment because we can import avs to premiere, and export using the debugmode frameserver. it's a bit slower, but works.

EDL to avs would be teh awesome though :) if i ever get some spare time i might take a look at interpreting this file format, as it'd be much more stable doing avs->encoder than avs->premiere->vfw->avs->encoder, and a fair bit faster too. it'd avoid the suckyness of premiere as well (which is considerable).

mg262
16th June 2005, 05:46
Here is a sample EDL if need be: http://rapidshare.de/files/2412206/CAQ3.edl.htmlLink doesn't work for me...

Backwoods
17th June 2005, 03:40
hehe... forgot about this one. it could be implemented with regular scripting i think (could it? i'm not sure if we can read from text files in avs).

it's not essential at the moment because we can import avs to premiere, and export using the debugmode frameserver. it's a bit slower, but works.

EDL to avs would be teh awesome though :) if i ever get some spare time i might take a look at interpreting this file format, as it'd be much more stable doing avs->encoder than avs->premiere->vfw->avs->encoder, and a fair bit faster too. it'd avoid the suckyness of premiere as well (which is considerable).

I'm more interested in doing the cuts, then importing the EDL into AVS, applying filters, then encoding. Rather than having the resource hog Premiere running and frame serving the files with an imported AVS that has filters applied (which would slow down the process even more). I might be jaded towards Premiere, but how can you call it sucky? To each their own though.

My main goal would be to do cuts and such without re-encoding footage to a TEMP file to apply filters and encode. Til AVS has a GUI that can do that, EDL support would be nice. A buddy of mine said he would help me code the GUI but he's a busy guy with his new job. Maybe in due time.

Link doesn't work for me...

It works, you have to scroll down and hit "FREE" then the next page will download the file. You may have to wait >60sec to download.

mg262
17th June 2005, 09:45
I guess V= video, A= audio and B= both? Of the four time codes, the first two presumably give a section in the source file and the last two a section in the destination file? (Is it guaranteed that the lengths of the two sections will be the same?) I assume the 'BLs' aren't significant?

So does this:

http://people.pwf.cam.ac.uk/mg262/posts/edlfragment.jpg

Turn into

s0 = AVIsource("CAQ 02.avi")
s1 = AVIsource("CAQ 03.avi")
s2 = AVIsource("CAQ 04.avi")

video = \
s0.trim(0, (1*60+10)*fps) + \
s1.trim((1*3600+24*60+22)*fps, (1*3600+30*60+17)*fps) + \
s2.trim((2*3600+ 8*60+10)*fps, (2*3600+11*60+05)*fps)

audio = \
s0.trim(0, (15)*fps) ++ \
s0.trim((25*60+4)*fps, (43*60+24)*fps) ++ \
s1.trim((1*3600+24*60+22)*fps, (1*3600+30*60+17)*fps) ++ \
s2.trim((2*3600+ 8*60+10)*fps, (2*3600+11*60+05)*fps)

Video.audiodub(audio)

If that's right, I don't mind having a shot at it...

Other thing that's just occurred to me -- I seem to remember there is a limitation on how many times you can use AVISource (to do with a number of DLLs loaded at once) -- so there's a possibility that you'd convert this into an AVS and still have a problem loading it...

Edit: MaybeI'm being stupid... is it HH:MM:SS.xx rather than ??:HH:MM:SS? That was my original thought but the numbers didn't convert to integer numbers of frames at any sensible frame rate... plus the last number is never >= 60... . (Irrelevant bit about CAQ removed.)

Wilbert
17th June 2005, 12:12
Edit: MaybeI'm being stupid... is it HH:MM:SS.xx rather than ??:HH:MM:SS? That was my original thought but the numbers didn't convert to integer numbers of frames at any sensible frame rate...
For example?

Can't it be the timecode? So, HH:MM:SS.FF where F is a number of frames. Since 29 is the highest i guess the fps is 29.97?

mg262
17th June 2005, 12:30
Can't it be the timecode? So, HH:MM:SS.FF where F is a number of frames. Since 29 is the highest i guess the fps is 29.97?
Got it - thank you. I was thinking in terms of milliseconds (or rather centiseconds).

I guess I'm still being thick but I'm not clear on convert the time codes into frames if the FPS is 29.97 rather than 30. AFAICS for example 19:05 = 574.43 frames (19*29.97+5). The best I can think of is to round all the numbers down and make sure the number of frames in each section is specified by the destination time codes (third and fourth numbers) rather than the source time codes. Is that the right thing to do?

Edit:
That EDL file contains the line
FCM: DROP FRAME
I've heard of it but never used it, so I Googled it and found this:

>Drop frame numbers 00:00 and 00:01 at the start of every minute except the tenth.<

... which rather answers my question I guess.

What fps rates should be supported by a converter? Just this, or also integral frame rates or something else too?

Edit 2:
I've got a better idea... how about converter just outputs
timecode(h,m,s,f)
and the user specifies the script function timecode ? Then it would be easy to support any frame rate.

Also, would someone mind explaining this line...
M2 Untitled 022.5 00:02:23:10

Wilbert
17th June 2005, 14:24
I guess I'm still being thick but I'm not clear on convert the time codes into frames if the FPS is 29.97 rather than 30. AFAICS for example 19:05 = 574.43 frames (19*29.97+5).
Dropframe is a bit tricky. More info:

http://www.avisynth.org/Showframes

19:05 equals 19*30 + 5 frames = 575 frames.
1:24:22 equals 84*30 + 22 - 2 drop frames = 2540 frames.

In the source of AviSynth (text_overlay.cpp) you can find a formula. I can't look it up now, because cvs is complaining.

mg262
17th June 2005, 19:27
In the source of AviSynth (text_overlay.cpp) you can find a formula. I just had a look; it looks as if that formula is frame number -> time code, whereas we need time code -> frame number.

If I've understood it correctly, two frames are dropped at the start of minutes
1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, ...

Another way to put that is that for every complete block of 10 minutes, 18 frames are dropped, and then in the next incomplete block, two frames are dropped for every minute except the first one. so if there are h hours, m minutes, etc. then there are

mt = h*60+m minutes in total,
(mt/10) complete blocks of 10 frames,
mt%10 minutes in the following incomplete block,
so we drop 0 frames in that block if mt%10 is zero and otherwise we drop 2*(mt%10-1) frames.

and we get this avisynth script fragment:

mt = h*60+m
todrop = (mt/10)*18 + ((mt%10==0) ? 0 : 2*(mt%10-1))
result = (mt*60+s)*30+f - todrop

Is that correct? Is it okay if I go ahead and leave the time code decipherment in the script rather than in the plug-in?

Edit:
I slung it together anyway... I can always change it if need be.
- It assumes lines are listed in the order they should appear in the output (as they are in the EDL file linked to above); I can remove that limitation if needed.
- It ignores lines like the M2 line (until someone tells me what to do with them ;) )
- It calls a function tc(h,m,s,f) which you can define using the above code (if it's right) for drop frame and using the obvious method for non-drop frame.

Output is directed to the console. So you just type

edl2avs sourcefile.edl

at a command prompt and the result should appear on the screen. (you can redirected to a avs file using '> whatever.avs').

Please bear in mind that as I don't have Premiere and I've never used it this will probably have to be tweaked before its usable... anyway, here it is (http://people.pwf.cam.ac.uk/mg262/posts/EDL2AVS 17.05.05.zip).

Backwoods
17th June 2005, 23:47
http://www.uploadhouse.com/images/208747299000.GIF (http://www.uploadhouse.com/)

M2 seems to be referring to file CAQ12.avi, which there is much going on with it.

In the first script you posted, VDub returns a "I do not know what FPS means" and with loading the script made from your command line tool, the function TC is missing. I'm not familar with creating functions, but I am aware of them. Can you please post exact what to put together for the function? I see you posted the information, but I believe I am getting "function tc" wrong. Not sure what to put after tc( .

For far, looking great. Once I get the script working I'll post a movie clip of the EDL loading through AVISynth and the original exported from Premiere.

Thanks alot.

vinetu
18th June 2005, 01:41
Also, would someone mind explaining this line...
M2 Untitled 022.5 00:02:23:10

M2 the speed of the clip is not 100%
Untitled - the name of the tape(reel)
022.5 - the speed of the clip in "frame/second" units
00:02:23:10 - I'm not absolutely sure about this one ...Me think-this is the "in point" of the clip from reel Untitled

Backwoods
18th June 2005, 01:46
Ah, you're right. CAQ 12 is being used twice in the timeline, I didn't see it at the very end. The speed of that clip is 75%.

mg262
18th June 2005, 06:02
I think this is what you want

Function tc(int h, int m, int s, int f)
{
mt = h*60+m
todrop = (mt/10)*18 + ((mt%10==0) ? 0 : 2*(mt%10-1))
result = (mt*60+s)*30+f - todrop
return result
}


The filter is currently adding the CAQ12 clip unstretched so will screw up after that line (video will be pulled forward by 5 seconds). What stretching/squashing method should I use?

There are some situations I don't understand how to deal with at present... what happens if there is no video for a particular stretch of time? What happens if there's more than one?

Backwoods
18th June 2005, 11:11
I think this is what you want

Function tc(int h, int m, int s, int f)
{
mt = h*60+m
todrop = (mt/10)*18 + ((mt%10==0) ? 0 : 2*(mt%10-1))
result = (mt*60+s)*30+f - todrop
return result
}


The filter is currently adding the CAQ12 clip unstretched so will screw up after that line (video will be pulled forward by 5 seconds). What stretching/squashing method should I use?

There are some situations I don't understand how to deal with at present... what happens if there is no video for a particular stretch of time? What happens if there's more than one?

Yes, that would be it.

Hmm, not sure on what method you could use for in/decreasing time of a clip.

If there is no v/a for a stretch of time, maybe insert BlankClip?

Also now this error comes up:

Splice: one clip has audio and the other doesn't (not allowed)

Line 35 of the script.

s4 = DirectShowSource("BINOC_SHARPEN.avi")
s0 = DirectShowSource("CAQ 02.avi")
s1 = DirectShowSource("CAQ 03.avi")
s2 = DirectShowSource("CAQ 04.avi")
s3 = DirectShowSource("CAQ 06.avi")
s6 = DirectShowSource("CAQ 07.avi")
s7 = DirectShowSource("CAQ 08.avi")
s5 = DirectShowSource("CAQ 10.avi")
s8 = DirectShowSource("CAQ 11.avi")
s9 = DirectShowSource("CAQ 12.avi")

video = \
s0.Trim(tc(00,00,00,00), tc(00,00,01,10)) + \
s0.Trim(tc(00,00,25,29), tc(00,00,43,24)) + \
s1.Trim(tc(00,01,24,22), tc(00,01,30,17)) + \
s2.Trim(tc(00,02,08,10), tc(00,02,11,05)) + \
s3.Trim(tc(00,03,12,20), tc(00,03,17,08)) + \
s4.Trim(tc(00,00,17,14), tc(00,00,19,18)) + \
s6.Trim(tc(00,03,56,12), tc(00,03,58,00)) + \
s4.Trim(tc(00,00,32,17), tc(00,00,38,12)) + \
s7.Trim(tc(00,06,35,16), tc(00,06,39,24)) + \
s6.Trim(tc(00,04,50,05), tc(00,04,54,25)) + \
s8.Trim(tc(00,01,20,00), tc(00,01,23,06)) + \
s9.Trim(tc(00,02,23,10), tc(00,02,23,21)) + \
s8.Trim(tc(00,00,00,00), tc(00,00,08,01)) + \
s8.Trim(tc(00,01,48,05), tc(00,01,51,05)) + \
s9.Trim(tc(00,02,45,24), tc(00,02,46,23)) + \
s7.Trim(tc(00,00,00,00), tc(00,00,01,24)) + \
s7.Trim(tc(00,06,00,13), tc(00,06,04,24)) + \
s7.Trim(tc(00,06,07,08), tc(00,06,11,05)) + \
s7.Trim(tc(00,06,15,07), tc(00,06,20,06)) + \
s7.Trim(tc(00,00,00,00), tc(00,00,05,07)) + \
s7.Trim(tc(00,06,51,13), tc(00,06,57,15)) + \
s7.Trim(tc(00,07,17,21), tc(00,07,23,24)) + \
s7.Trim(tc(00,09,25,05), tc(00,09,30,05))

audio = \
s0.Trim(tc(00,00,00,00), tc(00,00,00,15)) ++ \
s0.Trim(tc(00,00,25,04), tc(00,00,43,24)) ++ \
s1.Trim(tc(00,01,24,22), tc(00,01,30,17)) ++ \
s2.Trim(tc(00,02,08,10), tc(00,02,11,05)) ++ \
s3.Trim(tc(00,03,12,20), tc(00,03,17,08)) ++ \
s5.Trim(tc(00,00,17,19), tc(00,00,19,23)) ++ \
s4.Trim(tc(00,00,00,00), tc(00,00,01,18)) ++ \
s5.Trim(tc(00,00,33,02), tc(00,00,38,27)) ++ \
s7.Trim(tc(00,06,35,16), tc(00,06,39,24)) ++ \
s8.Trim(tc(00,00,00,00), tc(00,00,07,21)) ++ \
s9.Trim(tc(00,02,23,12), tc(00,02,24,00)) ++ \
s8.Trim(tc(00,00,00,00), tc(00,00,08,03)) ++ \
s8.Trim(tc(00,01,48,05), tc(00,01,51,05)) ++ \
s9.Trim(tc(00,02,45,24), tc(00,02,47,27)) ++ \
s7.Trim(tc(00,00,00,00), tc(00,00,00,20)) ++ \
s7.Trim(tc(00,06,00,13), tc(00,06,04,24)) ++ \
s7.Trim(tc(00,06,07,08), tc(00,06,11,05)) ++ \
s7.Trim(tc(00,06,15,07), tc(00,06,20,06)) ++ \
s7.Trim(tc(00,00,00,00), tc(00,00,05,07)) ++ \
s7.Trim(tc(00,06,51,13), tc(00,06,57,15)) ++ \
s7.Trim(tc(00,07,17,21), tc(00,07,23,24)) ++ \
s7.Trim(tc(00,09,25,05), tc(00,09,30,05))

video.audiodub(audio)

Function tc(int h, int m, int s, int f)
{
mt = h*60+m
todrop = (mt/10)*18 + ((mt%10==0) ? 0 : 2*(mt%10-1))
result = (mt*60+s)*30+f - todrop
return result
}

mg262
18th June 2005, 11:47
Hmm, not sure on what method you could use for in/decreasing time of a clip. Two standard methods are to duplicate frames and to blend frames together; read through ChangeFPS and ConvertFPS in the Avisynth documentation and tell me which you prefer (or step through the Premiere output in VirtualDub)...

Do you get all sorts of funny frame rates or is 22.5 there for a particular reason?

If there is no v/a for a stretch of time, maybe insert BlankClip? Can do. Maybe worth checking exactly what Premiere does? Similarly for the case where there are two video clips overlapping over a time period -- or is this not possible?

At the left of your screenshot, where there are four blue (turquoise?) bars overlapping at the time code 00:01:05:17, what's happening?

Splice: one clip has audio and the other doesn't (not allowed)Would you mind trying this and telling me what happens:s4 = DirectShowSource("BINOC_SHARPEN.avi")
s0 = DirectShowSource("CAQ 02.avi")
s1 = DirectShowSource("CAQ 03.avi")
s2 = DirectShowSource("CAQ 04.avi")
s3 = DirectShowSource("CAQ 06.avi")
s6 = DirectShowSource("CAQ 07.avi")
s7 = DirectShowSource("CAQ 08.avi")
s5 = DirectShowSource("CAQ 10.avi")
s8 = DirectShowSource("CAQ 11.avi")
s9 = DirectShowSource("CAQ 12.avi")

s0+s1+s2+s3+s4+s5+s6+s7+s8+s9By the way, was there a problem with AviSource?

vinetu
18th June 2005, 13:27
The things could be more simple if one export separate EDLs for each video track and none for audio.
Audio could be exported from Host Application directly.
Then the script could look like this:

Code:
-----------------------------------------------

VideoTrack1= EDLSource("C:\MyEDLs\EDL_from_track1.edl")
VideoTrack2= EDLSource("C:\MyEDLs\EDL_from_track2.edl")
VideoTrack3= EDLSource("C:\MyEDLs\EDL_from_track3.edl")
VideoTrack4= EDLSource("C:\MyEDLs\EDL_from_track4.edl")

BlendVideoTracks(VideoTrack1,VideoTrack2,VideoTrack3,VideoTrack4)

------------------------------------------------

Where "VideoTrack4" have the highest priority and "VideoTrack1" have the lowest.
Also "KillAudio()" or similar should be used ,as by default the audio is _ON_ .

mg262
18th June 2005, 14:14
The things could be more simple if one export separate EDLs for each video track and none for audio.
Audio could be exported from Host Application directly.. Hmm... that makes the feedback loop less tight ... i.e. it takes more user work to go from seeing the results in Avisynth to making a change in Premiere back to seeing the results? Plus I don't understand how you tell when e.g. VideoTrack1 is 'on' and when it is 'off'...

I am going to add KillAudio to every line of the video construction... I just wanted to verify that the problem was what I thought I was (namely lack of audio in "CAQ 07.avi", which is the only file used by video but not audio) and not something subtler.

IanB
18th June 2005, 15:11
I think this is what you want

Function tc(int h, int m, int s, int f)
{
mt = h*60+m
todrop = (mt/10)*18 + ((mt%10==0) ? 0 : 2*(mt%10-1))
result = (mt*60+s)*30+f - todrop
return result
}
Try
todrop = 2*(mt - (mt/10))

IanB

Backwoods
18th June 2005, 18:33
Two standard methods are to duplicate frames and to blend frames together; read through ChangeFPS and ConvertFPS in the Avisynth documentation and tell me which you prefer (or step through the Premiere output in VirtualDub)...

Oh, I'm familar which those methods, just not sure which would be best to use. That is what I meant.

Do you get all sorts of funny frame rates or is 22.5 there for a particular reason?

The 22.5 FPS clip is probably CAQ 12.avi (last clip) which is changed to 75% it's original rate.

Can do. Maybe worth checking exactly what Premiere does? Similarly for the case where there are two video clips overlapping over a time period -- or is this not possible?

I'm pretty sure Premiere would do the same thing as BlankClip(). Inserting video the same size as the rest of the project, just black. The audio is the same as the rest of the project, just blank.

At the left of your screenshot, where there are four blue (turquoise?) bars overlapping at the time code 00:01:05:17, what's happening?

Those are extra clips not used in the final product. I omitted them and included a new EDL here: http://rapidshare.de/files/2466947/CAQ.edl.html

Also, here is GIF of the whole timeline. If there are any questions, point to a time and I will help: http://www.uploadhouse.com/images/828327798timeline.GIF

And since you will probably ask about the PSD:

http://www.uploadhouse.com/images/117167716image.GIF

Would you mind trying this and telling me what happens:s4 = DirectShowSource("BINOC_SHARPEN.avi")
s0 = DirectShowSource("CAQ 02.avi")
s1 = DirectShowSource("CAQ 03.avi")
s2 = DirectShowSource("CAQ 04.avi")
s3 = DirectShowSource("CAQ 06.avi")
s6 = DirectShowSource("CAQ 07.avi")
s7 = DirectShowSource("CAQ 08.avi")
s5 = DirectShowSource("CAQ 10.avi")
s8 = DirectShowSource("CAQ 11.avi")
s9 = DirectShowSource("CAQ 12.avi")

s0+s1+s2+s3+s4+s5+s6+s7+s8+s9By the way, was there a problem with AviSource?

Same error as before with Splice. And if I want to use AVISource with this codec I would have to pay 500 dollars. For the time being, I'll use the free one that comes with Premiere Pro.

The things could be more simple if one export separate EDLs for each video track and none for audio.
Audio could be exported from Host Application directly.
Then the script could look like this:

Code:
-----------------------------------------------

VideoTrack1= EDLSource("C:\MyEDLs\EDL_from_track1.edl")
VideoTrack2= EDLSource("C:\MyEDLs\EDL_from_track2.edl")
VideoTrack3= EDLSource("C:\MyEDLs\EDL_from_track3.edl")
VideoTrack4= EDLSource("C:\MyEDLs\EDL_from_track4.edl")

BlendVideoTracks(VideoTrack1,VideoTrack2,VideoTrack3,VideoTrack4)

This might have to happen, since:

http://www.uploadhouse.com/images/697444940EDL.GIF (http://www.uploadhouse.com/)

That comes up when you go to export an EDL. No option for more than one video track...odd. Did the EDL I posted before have any information about anything on the V2 track?

vinetu
19th June 2005, 01:38
This might have to happen, since:

http://www.uploadhouse.com/images/697444940EDL.GIF (http://www.uploadhouse.com/)

That comes up when you go to export an EDL. No option for more than one video track...odd. Did the EDL I posted before have any information about anything on the V2 track?
I did it by this way - delete all video tracks except Track1 and then Export "EDL_from_Track1" -> next "UnDo delete" -> next delete all except Track2 then export "EDL_from_Track2" ... and so on...
Another(even better) way is to copy the Track1 from "Sequence 01" and Paste it to separate sequence with the name "A Very Special Sequence 201 which contain only one video Track" and export the EDL from there...

I agree that this is not the lazy one method and require a quite good attention from the user , but the things are much more simple and easy to debug when it come to translate the EDIT from machine1 to (completely different) machine2.

Best Regards!

Backwoods
19th June 2005, 01:53
You can drop down the Video portion to say which to export. V2, V3, or V4, etc. No need to make new sequences.

mg262
19th June 2005, 21:53
Okay, looks like I'll need to rewrite this to take the multiple tracks then. (I assume there's no feature in Premiere which will let you merge the video tracks into a single track?)the script could look like this:

Code:
-----------------------------------------------

VideoTrack1= EDLSource("C:\MyEDLs\EDL_from_track1.edl")
VideoTrack2= EDLSource("C:\MyEDLs\EDL_from_track2.edl")
VideoTrack3= EDLSource("C:\MyEDLs\EDL_from_track3.edl")
VideoTrack4= EDLSource("C:\MyEDLs\EDL_from_track4.edl")

BlendVideoTracks(VideoTrack1,VideoTrack2,VideoTrack3,VideoTrack4)

------------------------------------------------

Where "VideoTrack4" have the highest priority and "VideoTrack1" have the lowest.I don't think that will work straightforwardly because AFAICS there is no way to distinguish black areas of the clip VideoTrack1 that correspond to 'holes' in the clip from black areas that are just black areas.
_______________________________

There are two ways to go about this that I can see. One is for the program to calculate which video to use in each section and output something looking very much like the current results (but with timecode dealt with internally rather than in the script). The other is to use overlay (or a similar function) heavily so that the structure of the Premiere file is preserved in the .AVS -- i.e. you start with a black clip, overlay the video track with the lowest priority, then overlay the track with the second-lowest priority, etc. Thoughts on which is preferred?
_______________________________

I would prefer that this rewrite was the last one... so it would be helpful if everyone intending to use this could list the features of EDLs that they want dealt with. At the moment my picture of EDLs is as follows:

they consist of a few lines of header followed by the following four kinds of line:

video/audio sections like this:
003 Untitled A C 00:00:25:04 00:00:43:24 00:00:00:15 00:00:19:05

source file specifiers like this:
* FROM CLIP NAME: CAQ 02.avi
speed specifiers like this:
M2 Untitled 022.5 00:02:23:10

this thing from the latest example (?):
AUD 3 4 So this might be a good time to generate EDLs for the kinds of things you want to do and tell me if there is anything else you want dealt with. (That includes time codes other than drop frame, and anything else not mentioned in this thread.) If you post a different kind of line please include a guess as to what it means! In a week or so I'll collect it all up and produce a draft of what the converter should do, and when everyone's happy with that build it. Does that sound okay?

@IanB - thanks for the simplification!

(Last note -- I have Googled EDLs a bit and I have the impression that there's a family of slightly differing EDL specifications but Premiere's is not openly documented anywhere. Obviously if there is a specifications somewhere you can point me at it!)

vinetu
20th June 2005, 00:58
OK! :)

The transperancy of the "black areas" ('holes' in the clip) is a real problem - I have no ideas for now... :(
I think the "overlay the video track with the lowest priority" way is better... may be.

About the file names - the " * FROM CLIP NAME: CAQ 02.avi " is related only with Premiere Pro - it's not in EDL specs...
the use of " Untitled " (the reel name) as file name is not good too... no ideas again :(

About "specifications somewhere" - some info is here (http://www.edlmax.com/MAXGUIDE.HTML)
Best Regards!

mg262
20th June 2005, 01:32
The transparency won't be a problem if the EDLs are converted to a AVS rather than being read into one... like this:

edl2avs EDL_from_track1.edl EDL_from_track2.edl EDL_from_track3.edl EDL_from_track4.edl

(but that still leaves open the choice between the two methods)

Thanks for the link!

vinetu
20th June 2005, 14:48
The transparency won't be a problem if the EDLs are converted to a AVS
Then ... That's the WAY! :)

Thank You!

mg262
4th July 2005, 11:52
Okay, I decided on going with the overlay type method rather than simply figuring out the list of trims internally in the program. The main reason is because this can cope more easily with cases where the "higher" layer doesn't just replace the lower layer but does something more complex -- for example where it's semi-transparent. (I have no idea whether that appears in practice, although if you're dealing with cross fades that is essentially semi transparency.) Although there have been no requests for something like this, whoever updates the code might want to add it at some point... and I want to make that as easy as possible.

It is still possible either to import the EDL using a filter or to have a converter. (The importer would layer the input over the previous content so that it could "leave holes" in a way that the above method couldn't.) However, I'm going to build a converter because I think this is much more flexible -- you can convert a script and then make tweaks to it in AVISynth.

Since there have been no other feature requests, the converter will essentially just deal with completely opaque clips positioned at various times, with an optional speed argument.

Now... someone tell me what to do with all the different audio tracks that seem to be floating around!

Backwoods
4th July 2005, 23:47
Now... someone tell me what to do with all the different audio tracks that seem to be floating around!

Concerning which part on the timeline?

mg262
5th July 2005, 00:07
Well, for example at 45;00 and at 50;00 would be very helpful. But in a more general sense, do the audio tracks have priorities in the same sense that the video tracks do? Is each track a separate channel, or do I have to combine two tracks to form stereo?

Backwoods
5th July 2005, 20:50
The final output from Premiere is stereo. So I would say combining the audio tracks to form stereo would be the way to go.

Can that even be done in AVISynth? Think this project is too much of a pain?

vinetu
5th July 2005, 21:58
do the audio tracks have priorities in the same sense that the video tracks do?
No! In contrast to video tracks ,audio tracks have no "priority" parameter.The only one that matter, is the volume.

Is each track a separate channel, or do I have to combine two tracks to form stereo?
Each track on the "TimeLine" is a stereo track where you can change 2 parameters - the volume and the panorama (Left/Right ratio).
...in fact the panorama is the second one that matter :) ,but you can treat it as an additional coefficient to absolute volume for each Left/Right channels.

mg262
8th July 2005, 22:38
Think this project is too much of a pain?
No, don't worry. I took this on I wanted to build something outside my own area of interest, because I wanted to put something into the Doom9 community after all the help I've got from it over time. The flipside is that you will have to answer lots of stupid questions about Premier and nonlinear editing! The other thing is that working in this field makes it difficult to write the code extensibly (because I don't know what kind of extensions might be desirable/sensible)... so I prefer to get a very clear idea of what I'm building before I do it.

Audio: So there are four stereo tracks? How are they combined? Are they summed, or averaged? If averaged, does it depend on how many active tracks that are at a particular point in time, or how many active tracks there are in total?

Backwoods
9th July 2005, 22:28
Audio: So there are four stereo tracks? How are they combined? Are they summed, or averaged? If averaged, does it depend on how many active tracks that are at a particular point in time, or how many active tracks there are in total?

Honestly I do not know how Premiere combines audio tracks. I would guess averaged. Is there a way I can test this out so we can find out?

mg262
9th July 2005, 22:33
How about this:

Take any audio track and normalise it in any audio editing program. Then copy that file three times, and add a separate copy to each Premiere audio track. Then save the audio output from Premiere, open it up in the audio editing program, and see what the amplitude is.

If it's exactly the same as the original, then it is almost certainly an average; conversely if the four copies are summed, it will have four times the amplitude of the original (and probably be clipped). That won't tell us everything we need to know about the audio, but it's a good start...

There was probably a simpler way of writing that but I hope it is comprehensible... .

Backwoods
10th July 2005, 01:59
There was probably a simpler way of writing that but I hope it is comprehensible... .

It is and I will get on it later tonight.

vinetu
10th July 2005, 16:49
Honestly I do not know how Premiere combines audio tracks.
I know ! :)
The output sample is a sum of input samples.For example if you have 2 equal tracks(1kHz sine) each of them with the level of -6dB the output will be 0dB .So if you normalize them to say -1dB -then the output will be distorted (premodulated) .

Backwoods
11th July 2005, 00:13
I don't know exactly how to get the amplitude numbers but I did as you said and the files appear to be the same.

I can upload them if you like. Also I called up my buddy who knows audio and he said what vinetu described makes sense.

mg262
12th July 2005, 22:30
@vinetu

Brilliant, thanks, that's what I needed to know.

@Backwoods

I've been trying to match up the timeline and .edl, and I can't find any mention of the file name 'LC AM Psycho.WAV' (from time 00;00;50;00 on the timeline.gif) in the .EDL file... am I just being thick and looking at the wrong versions?

Backwoods
13th July 2005, 17:47
That WAV file should be in both EDLs....unless that EDL didn't export all the audio tracks?

And crap, that project has been cleared out from my folder. I totally forgot we were using that as a basis.

I can create another EDL/timeline.GIF of a new project tonight and post all the info. So sorry, damn it.

mg262
14th July 2005, 01:02
Don't worry about it! I'm working pretty slowly at this end, so take your time. When you do put the file together, could you make sure it has four audio streams, please? But like I said, no rush.