Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. Domains: forum.doom9.org / forum.doom9.net / forum.doom9.se |
|
|
#1 | Link |
|
ReMember
Join Date: Nov 2003
Posts: 416
|
[REQ]EDL Support
It has been discussed before here:
http://forum.doom9.org/showthread.ph...&highlight=EDL and here: http://forum.doom9.org/showthread.ph...&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. |
|
|
|
|
|
#2 | Link |
|
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
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).
__________________
sucking the life out of your videos since 2004 |
|
|
|
|
|
#3 | Link | |
|
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
Quote:
|
|
|
|
|
|
|
#4 | Link | ||
|
ReMember
Join Date: Nov 2003
Posts: 416
|
Quote:
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. Quote:
|
||
|
|
|
|
|
#5 | Link |
|
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
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: 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.) Last edited by mg262; 17th June 2005 at 12:43. |
|
|
|
|
|
#6 | Link | |
|
Super Moderator
![]() Join Date: Nov 2001
Location: Netherlands
Posts: 6,375
|
Quote:
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? |
|
|
|
|
|
|
#7 | Link | |
|
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
Quote:
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 Last edited by mg262; 17th June 2005 at 13:25. |
|
|
|
|
|
|
#8 | Link | |
|
Super Moderator
![]() Join Date: Nov 2001
Location: Netherlands
Posts: 6,375
|
Quote:
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. Last edited by Wilbert; 17th June 2005 at 14:26. |
|
|
|
|
|
|
#9 | Link | |
|
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
Quote:
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. Last edited by mg262; 17th June 2005 at 20:18. |
|
|
|
|
|
|
#10 | Link |
|
ReMember
Join Date: Nov 2003
Posts: 416
|
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. |
|
|
|
|
|
#11 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 195
|
Quote:
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 |
|
|
|
|
|
|
#13 | Link |
|
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
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? |
|
|
|
|
|
#14 | Link | |
|
ReMember
Join Date: Nov 2003
Posts: 416
|
Quote:
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. Code:
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
}
|
|
|
|
|
|
|
#15 | Link | |||
|
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
Quote:
Do you get all sorts of funny frame rates or is 22.5 there for a particular reason? Quote:
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? Quote:
Code:
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+s9
|
|||
|
|
|
|
|
#16 | Link |
|
Registered User
Join Date: Oct 2001
Posts: 195
|
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_ . |
|
|
|
|
|
#17 | Link | |
|
Clouded
Join Date: Jul 2003
Location: Cambridge, UK
Posts: 1,148
|
Quote:
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. |
|
|
|
|
|
|
#18 | Link | |
|
Avisynth Developer
Join Date: Jan 2003
Location: Melbourne, Australia
Posts: 3,167
|
Quote:
todrop = 2*(mt - (mt/10)) IanB |
|
|
|
|
|
|
#19 | Link | ||||||
|
ReMember
Join Date: Nov 2003
Posts: 416
|
Quote:
Quote:
Quote:
Quote:
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 Quote:
Quote:
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? |
||||||
|
|
|
|
|
#20 | Link | |
|
Registered User
Join Date: Oct 2001
Posts: 195
|
Quote:
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! |
|
|
|
|
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|