Video editing

Discussion in 'Computer Games and General Discussion' started by playallday, Jun 2, 2009.

Jun 2, 2009

Video editing by playallday at 10:59 PM (896 Views / 0 Likes) 6 replies

  1. playallday
    OP

    Member playallday Group: GBAtemp Ghost

    Joined:
    May 23, 2008
    Messages:
    3,773
    Location:
    [@N@[)@
    Country:
    Canada
    .
     
    Last edited by playallday, Jun 23, 2015
  2. Law

    Member Law rip ninjacat that zarcon made me

    Joined:
    Aug 14, 2007
    Messages:
    4,132
    Location:
    ‭jerkland
    Country:
    United Kingdom
    VirtualDub?

    Or just pirate Sony Vegas.
     
  3. playallday
    OP

    Member playallday Group: GBAtemp Ghost

    Joined:
    May 23, 2008
    Messages:
    3,773
    Location:
    [@N@[)@
    Country:
    Canada
    .
     
    Last edited by playallday, Jun 23, 2015
  4. Findecanno

    Member Findecanno GBAtemp Regular

    Joined:
    Apr 14, 2009
    Messages:
    283
    Country:
    United States
  5. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,748
    Country:
    United Kingdom
    "Windows Mover Maker in the past but there must be something better"
    I would take a kick in the nuts than use windows movie maker. Failing that I would rather chop up an actual reel of film and splice it back together by hand.

    Video is an immensely complex area for several reasons but the big two are it is based on a lot of different areas of science and engineering (psychology, electrical engineering and compiler theory to name but three areas of serious importance) and because of messed up but pervasive standards (alas they look to be doing the exact same thing with "HD" video despite there being absolutely no need to do so) which in general it is PAL vs NTSC vs FILM that causes problems (I dare say NTSC causing most of them).
    Learning video basics is a must, <a href="http://www.doom9.net/" target="_blank">http://www.doom9.net/</a> and the forums are good for this although on the main site do not pay too much attention to the applications used as they are a bit outdated.

    Before going on I strongly suggest you get at leat two screens for this.

    Lack of "serious" video editing (encoding is a different matter) for linux is one of the main reasons I have not dived in with both feet (like games most video editors are based around directshow and WINE is not all that helpful).
    Your best bet for editing on linux is avidemux (also available for windows):
    <a href="http://fixounet.free.fr/avidemux/" target="_blank">http://fixounet.free.fr/avidemux/</a>
    Some call it the virtual dub of linux and while I would not do so myself I can see where they are coming from.

    Video editing is a very broad term but generally you have two types called linear editing and non linear editing (occasionally abbreviated NLE).
    As the name implies linear works with a single clip and does little to affect times.
    Non linear editing would probably be called mixing in the music world.
    While most people end up doing a form of linear editing straight up linear editing tools are all but non existent.

    Before going on my question then what exactly do you have and what do you want to do with it (you said multiple clips but is this a main film in several parts or main film plus extras or "TV show DVD" style or a variation on one of those?).

    If you do not need to join anything and your clips are in good shape (and good input formats: I have seen some odd framerates lately and I doubt anyone you are doing this for has a "good" camera) then I suggest skipping everything and going straight for the DVD.

    My DVD maker of choice is FAVC:
    <a href="http://favcfavc.googlepages.com/" target="_blank">http://favcfavc.googlepages.com/</a>
    It acts as a frontend to several highly respected DVD making/related applications. About the only thing it does not do is make fancy animated menus.

    I will spare you details of the other DVD editing apps as they are not all that necessary here. Suffice it to say ifoedit, PCGedit, vobedit, vob blanker and rejig are the tools of choice here (stay away from pcgedit at first; I have been using it for years and it still scares me, it is about as powerful as you can get though). If editing DVD subtitles (remember they are pictures so try to edit things before you encode them) I like Subtitle creator: <a href="http://sourceforge.net/projects/subtitlecreator/" target="_blank">http://sourceforge.net/projects/subtitlecreator/</a>

    Now onto video editing. Other than a basic player (media player classic home cinema) the main two tools of my trade here are virtualdub (good for previewing and grabbing frame numbers: <a href="http://www.virtualdub.org/" target="_blank">http://www.virtualdub.org/</a> ) and avisynth ( <a href="http://avisynth.org/" target="_blank">http://avisynth.org/</a> ).

    Avisynth is a script based editor (that is to say you write a script in a text editor and feed it to an encoder/player which pretty much all windows media apps should work with (you also have options for the 3 or 4 (somewhat major) apps that do not work although unless you already use them you should be OK). There is no graphical frontend as there can not be a graphical frontend due to it being that powerful.
    The reason I like it is because it is fast resources wise, up until the point you hit encode you can change anything (you will be hard pressed to find anything else that can do that as easily an avisynth), projects are self documenting due to them being text files, if some researcher makes an uber powerful new algorithm for something you can bet avisynth will have an implementation in fairly short order, the flipside of that it that it has loads of filters to do just about everything, you can edit down to frame precision and above all it is free.

    If you want to make an intermediate encode or one for storage (DVD is not a good storage format) then Megui: <a href="http://sourceforge.net/projects/megui" target="_blank">http://sourceforge.net/projects/megui</a>

    For all of this I also find it useful to have a picture editor like GIMP around; you can subtitle things with AVIsynth using any font/size you like really but it is still nice to have something around.

    Avisynth will look hideous at first and nobody will call you anything for it (it is hideous at first) but once you start getting it sorted in your head and things start making sense then it gets interesting. Unlike most open source applications it has some serious documentation available which I suggest you read at the first chance you can get.

    In general you have 3 main sections:

    The video sourcing section.
    This will be something like directshowsource, avisource or an external filter like ffmpegsource (ffmpegsource uses ffmpeg and is very good for it, more importantly directshow can be less than frameaccurate at points).

    Next is the editing you want.
    Your main filters will likely be "trim" which gets rid of sections of video, crop which cuts off sections of video frame, resize filters (several available and several plugins also available including seriously powerful stuff like: <a href="http://forum.doom9.org/showthread.php?t=129953" target="_blank">http://forum.doom9.org/showthread.php?t=129953</a> (such things are also why I laugh at "HD" video)).
    Other filters are good for framerate changes (you might want to do this at the start), deinterlacing, cleaning up the video (removing or adding noise, fixing colours, sorting brightness)

    Next you can put it all together.
    The 3 main things you will want is to stack the video (you have stackvertical and stackhorizontal, I like using them to test things), add (splice) clips together (+ and ++ operators as synonyms for UnalignedSplice and AlignedSplice respectively) and overlay things if you did not already do it.

    Finally you get it in a format you want, this mainly means you convert it to a colorspace of choice (yv12 is the one most filters/encoders deal with).

    Avisynth has basic audio capabilities but I would keep a copy of audacity handy for when you have to clean stuff up properly.

    Here is a sample script I made the other week for a track day a friend did, I deliberately chose a fairly complex/long one. The video I called "b" was a really nasty kludge to get a timer on the screen with an old version and an odd framerate, if you need one you should use "ShowSMPTE()" instead). I left out a lot of my filtering of video (helmet cams + motorbike + track day does not make for the smoothest of videos) as it is not entirely relevant here.

    I started out with a video from "pits" to return to pits, filtered the video a bit (mainly to try and even up the brightness: <a href="http://strony.aster.pl/paviko/hdragc.htm" target="_blank">http://strony.aster.pl/paviko/hdragc.htm</a> , I also used a bit of motion compensation but that was removed from the script below as it made things far too complex for this: <a href="http://avisynth.org.ru/mvtools/mvtools.html" target="_blank">http://avisynth.org.ru/mvtools/mvtools.html</a> ), added a scrolling map of the track as an overlay at the start of the video, added lap times as they happened, added a final times from a picture (hence GIMP being a suggested app), added a race timer and cut a wait from rolling out of the pits to actually going on the track as well as the section after the end of the session. Most of the stuff was faded in or out.

    The framerate was an odd 26.0004 but the size was already DVD size so there was no need to fiddle with that).

    Apologies for the lack of comments "#" without quotes starts a comment but hopefully my naming should make sense.
    <!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->setmemorymax(512)
    b=blankclip(length=26364, width=640, height=480, fps=26.0004, color=$000000).INfo().fadein(20).fadeout(20).converttoyv12().crop(0,16,-480,-448)
    tpic=ImageSource("Times.png", end=300).FadeIn(52,$FFFFFF)
    orig=directshowsource("_VI_0001.AVI")..HDRAGC().subtitle("Track day\nSnetterton\nApril 2009",x=-1,y=-1,first_frame=0,last_frame=260, lsp=10, font="Lucida Sans",size=56, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 1 01:41",x=-1,y=50,first_frame=7122,last_frame=7226, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 2 01:32",x=-1,y=50,first_frame=9514,last_frame=9618, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 3 01:32",x=-1,y=50,first_frame=11906,last_frame=12010, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 4 01:29",x=-1,y=50,first_frame=14220,last_frame=14324, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 5 01:29",x=-1,y=50,first_frame=16534,last_frame=16638, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 6 01:27",x=-1,y=50,first_frame=18796,last_frame=18900, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$0000029).subtitle("Lap 7 01:29",x=-1,y=50,first_frame=21110,last_frame=21214, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 8 01:30",x=-1,y=50,first_frame=23450,last_frame=23554, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 9 01:27",x=-1,y=50,first_frame=25712,last_frame=25816, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000).subtitle("Lap 10 01:29",x=-1,y=50,first_frame=28026,last_frame=28130, lsp=10, font="Lucida Sans",size=30, text_color=$FFFFFF , halo_color=$000000)
    prerace=orig.trim(0,4446)
    race=orig.trim(4446,30810)#.info()
    postrace=orig.trim(30810,0)
    postracefin=overlay(postrace,tpic,x=175,y=50,opacity=0.6)
    racefin=overlay(race,b)#,x=130,y=300)
    mappic=ImageSource("map.bmp", end=500).FadeIn(52,$FFFFFF).Fadeout(52,$FFFFFF)
    mappicanim=Animate(mappic,50,350,"Crop", 0,0,600,388, 316,0,600,388)
    preraceintro=prerace.trim(0,300)
    preracemap=prerace.trim(300,800)
    preracemapact=overlay(preracemap,mappicanim,x=20,y=50,opacity=0.6)
    preracewait=prerace.trim(800,0)
    preracefin=preraceintro+preracemapact+preracewait
    all=preracefin+racefin+postracefin.trim(0,31805)
    ult=all.trim(0,1993)+all.trim(3900,0)
    ult
    converttoyv12()<!--c2--></div><!--ec2-->
     
  6. playallday
    OP

    Member playallday Group: GBAtemp Ghost

    Joined:
    May 23, 2008
    Messages:
    3,773
    Location:
    [@N@[)@
    Country:
    Canada
    .
     
    Last edited by playallday, Jun 23, 2015
  7. FAST6191

    Reporter FAST6191 Techromancer

    pip
    Joined:
    Nov 21, 2005
    Messages:
    21,748
    Country:
    United Kingdom
    1. In both virtualdub and avidemux (they have very similar GUIs) it is append file under the file menu. Deleting is a matter of setting the points you want ([ and ] should do it) and deleting those.

    2. FAVC can deal with subtitles of most formats (it uses VSFilter which is more or less the same code as your PC uses: the green arrow in your system tray when watching a video).
    Note the DVD will be softsubbed but all players should be able to play it so that is not a problem.

    3. You have the option to yes but know that original video (if it is capped from a camera it is likely large) + 4 gigs (more if you are doing a dual layer) working files + 4 gigs DVD files + 4 gigs iso can get kind of demanding on drive space.
    Before you get there you have the option of just using the video_ts and audio_ts folders and burning those (it uses IMGburn which handles it all fine).
     

Share This Page