"Be a great video maker" and "Replicate this video effect"

Discussion in 'GBAtemp Art Studio' started by FAST6191, Jan 11, 2014.

  1. FAST6191
    OP

    FAST6191 Techromancer

    pip Reporter
    23,839
    9,725
    Nov 21, 2005
    United Kingdom
    Going around the place it is fairly obvious more than a few in the gaming community are not great video editors. I find this is a shame as it does include some great static artwork people, some great programmers and a lot of people with some very interesting skillsets.

    Everybody borrows from what came before. http://everythingisaremix.info/watch-the-series/ says that far better than this thread will allow, watch it all but the video/film one is obviously the one with the greatest relevance. To that end this thread will also house a "replicate this effect" segment. Spot something in a video that you want to know how it works, share it and people can try to replicate the effect. I am holding back on the examples for a little while but they can be added in as time goes on easily enough and for the examples below I am happy enough to try to make one should it be necessary.

    Generally speaking I am not a creative person, if you have ever met someone that knows the rules of a given field but chances are would never break them to great effect you have met someone like me in this regard. However I can usually replicate anything I otherwise see (something I do a lot in all areas I find myself playing in), also as an aside constantly thinking "how would I do that?" is a great mindset to have.
    As with most people I meet these days I watch a lot of videos and though editing is a dirty word to most of the youtube set there are a few that can do something here. Outside of actual video editors/film making types some of the best thought out stuff seems to be belong to the metalwork/woodwork/fabrication/practical skills set.

    Software for editing video.
    Popular thought has it that all video editors worth a damn cost a fortune, unlike say MS Office vs Libreoffice there is still quite a bit in it. However from a raw functional level you can get very far, for my money Avisynth performs at or above the levels of a lot of Adobe gear until you start needing something like After Effects, though even here Avisynth has some small capability. Avisynth is my chosen video editor and I will be using it for most of this thread though if you do favour Adobe products or similar suites then you are quite free to join in.

    Other alternatives in the free/open source world are mainly things like
    Virtualdub (nice if you want some capture, basic filters, trimming, appending/splicing and conversion)
    Blender's video options, and the underlying 3d modeller, are not the easiest interface but the 3d backend provides a lot of options (this plus avisynth definitely starts treading on Adobe's toes)
    Kdenlive. (Actually, very good but Linux only.
    VLC video editor (still in heavy development).

    Windows movie maker is a very odd thing in the video world. On the one hand its original video output options were shockingly limited and its abilities to filter and modify video as far as restoration went were near nonexistent, that alone meant it was looked down upon at first. On the other hand it was one of the easiest ways for people to do basic animation (think slideshow) and slice up videos there was so it got a bit of a following outside the open source video world. Modern versions are a bit better on all fronts but you would never mistake it for a full video editing suite.

    Avisynth
    Documentation to the original
    http://avisynth.org.ru/docs/english/
    Original
    http://avisynth.nl/index.php/Main_Page
    A more modern fork aimed at being even better with new operating systems.
    http://www.avs-plus.net/
    A doom9 forum thread for it at http://forum.doom9.org/showthread.php?t=168856
    Linux version of the original
    https://github.com/avxsynth/avxsynth/wiki
    Other forks are happening as well.

    Much of Avisynth usage is more concerned with video restoration and source cleanup, and to be fair it is excels in this with many very high end filters getting a proof of concept, or even near production ready, version worked up in Avisynth some time before the likes of Adobe even say "it is coming in the next version". For years many of those doing anime music videos had avisynth as the method of choice as well.

    The kicker, assuming you have not read the links already, is Avisynth is a scripting language based program. A few people have attempted to make frontends to it but they rarely get far as Avisynth is that powerful that is needs that much direction.
    As mentioned above about the only thing it can not do well out of the box or with basic (usually free) filters is that which most people usually turn to the likes of after effects for, however you can get pretty far down that path and basic chroma keying (greenscreen) effects are quite doable with a basic setup.
    Also as Avisynth is clip based rather than timeline based some people might struggle if they have been taught the other way. To this end consider what you are doing should you be trying to make a many cuts and edits film in it, in big boy video editing such a film would probably be scene/segment based anyway.

    There are two major bonuses in Avisynth working this, the first is if you decide you like an effect and have replicated it (say you develop a signature style/effect) then you can probably slot whatever input video you like into an existing avisynth script with minor tweaks. Going further you can make your own function to do it even more simply.
    In other programs you might be able to make a function or a few operations to chain together but in Avisynth it is trivial to swap things out.
    The second bonus is projects are inherently self documenting, being stored in tiny text files you can easily send around makes life easier. In most cases you are even able to have decisions you made reversed or tweaked with ease where in other programs if you start going down the undo history to fiddle with a mistake made early on in the process then it can get very ugly.

    Back on topic
    Basic video samples. Text has a quick brown fox or lorem ipsum, singing has scales, audio effects has things like the Wilhelm scream, hackjob musicians have smoke on the water, shock spoken comedy has the aristocrats....
    There is not really anything like for video though. Avisynth can generate clips quite well so that might be an option, it would certainly be far less fiddly and easier to distribute than trying to make a public domain set of videos for this topic. That said the option to make a few basic videos will definitely be kept open.

    Popular tricks
    This is not going to focus so much on the language of cinema things (people decide if they want to watch a short video in the first 12 seconds or something).... rather the mechanical things that can be done, however such things are also very valuable so you will be linked here and there. Part of the script based thing means Avisynth is well adapted for sharing techniques so where in a lot of cases giving you exact numbers for things is not so useful there will be something here.
    Combining just a few of these with a desire to do basic editing may serve to elevate your videos far above the standards set by others trying their hand at it.
    It should be noted that although this is a video thread we have to mention that good audio is a must.

    Trim command and splice
    This is basic editing. Combine with the multiple takes, some good lighting, a tripod and basic video discipline as well as being willing to dub after the fact* and you are practically there as a video editor.
    *there is often a decided opposition to this. You are probably not the most immediately witty person out there but part of the benefit here is you can. Similarly your camera may not have the best mic or you may not be in the best position to capture audio live either.
    If you are going with Avisynth then it might be good to take written notes on the eventual timeline you are aiming for if you are cutting up to apply different effects.
    In Avisynth the command to cut parts of a video out is called trim and to stitch them back together most people wait until the end of the script and put all the clips together with "+" and ++ which is shorthand for AlignedSplice / UnalignedSplice.

    Basic static image editing
    Many reading will already know this. Generally if you know about layers, layer masking and some general workflow you can get by. Photoshop is a very nice tool but might be overkill for what you want. http://www.gimp.org/ , http://www.getpaint.net/ and http://photofiltre.free.fr/frames_en.htm will do for most purposes in video editing at this level.
    That said it is entirely possible to eject a frame from a video, edit it and slide it back in.

    Title cards and intro sequences
    Often overlooked but well worth doing something like it. Full intro sequences are a matter for debate. Much of TV and film has eschewed the idea of an intro sequence as a separate concept from the item in question, however there is resistance to the concept as they represent a period in which to get the viewer into a good frame of mind. Similar things happen for credit sequences as well.

    Colour correction and white balancing.
    Relatively speaking the idea of colour correction is a newer concept in video editing, even if the idea of forcing your video towards a certain colour is not a new one at all, but it is one that can not afford to be ignored, not least of all because most cameras are not set up that well.
    Though the "language of cinema" part was supposed to be downplayed for this it should be noted there is a fair bit of difference depending upon where in the world that you come from. In my experience many North American films lean towards heavy colour saturation where a lot of UK and Europe stuff leans away from it. The likes of Asia and Japan vary again. You are left to your own devices here.
    This also brings us to white balancing which you should really do. Human eyes are odd things when compared to how cameras work but as human eyes and brains are what watches you video you really should sort this.
    http://www.cambridgeincolour.com/tutorials/white-balance.htm is aimed at static photography but covers everything quite clearly.
    The tweak command of avisynth does well here.

    Chroma keying aka bluescreen/greenscreen
    A long practiced trick in video making and one that is seeing increased use outside the professional world. Unless you are paying silly money for your tools here (and even then) you have one job you must do. That job is light your stage properly, you can use basically anything of a single colour right down to a blanket but the lighting is what will make your life easier. Typically you are going to want at least three points of lighting with one of the more commonly overlooked being the one you put behind the subject and usually underneath them. This provides that last bit of contrast between the subject and the screen.
    Similarly going around the likes of youtube it seems people are not inclined to crop down the source video used for keying, even if the rest of the shot you are overlaying has nothing of interest and may even have some artifacts.

    Sunlight/daylight bulbs.
    These are lightbulbs that are designed to be quite bright and put out a spectrum similar to sunlight (the best light if you can get it). You can buy them in many places (I have many that I give to people to use in home offices) and they do cost a little bit more, though nowhere near as much as big boy lighting systems. That said the difference is night and day between standard household lights (though LEDs are catching up) and they are great to shoot video with.

    Picture in picture
    A truly basic effect. If you have to sync video to a camera of something else then get some audio set up for both and clap. This will allow you to line things up. This is also why dubbing over things can be useful.
    There are three main uses seen for this in the game world but outside it the uses are almost endless.
    One is to have a video of the player (reaction cam, general footage.....), another is to have extra info displayed if you say have some debugging or explanations needed.
    This is also nice as commonly captured footage around here is for the DS family which has a very odd aspect ratio compared to most common video watching devices. Here one of the screens (often the bottom one) may display some info that is not really that necessary to dedicate screen space to but still nice to have. Here you can crop the bottom screen out to give the full video a whole screen. You can then have another version with the top screen cropped out before being shrunk and overlayed.
    The overlay function of avisynth is common here. It provides all sorts of things like those you might more commonly see in your fancy static image editors like masks and a whole load of blending modes but most will probably do with the basic position options.

    Logos
    You are left to your own devices as far as designing a logo goes. Generally speaking there are two classes being simple overlay and alpha blended. Animated or not matters little. The overlay function again comes back though you can use the Layer function.

    Animated effects
    This is not so much animation in the conventional sense, even if you can pull off some of that with these filters. The basic functions of Avisynth are quite easy to get along with once you understand what they and their input needs, Avisynth has two dark arts though with the likes of Animate / ApplyRange being the first thing* that can be annoying to master. Most of the time it is just a matter of being able to apply the filters and variations you want in the context of the animate function (which can look different to the original filters). In Avisynth most of the filters that will tend to only need to be applied to or over a range will tend to have start and stop frame options as part of them.
    These can be used to truly devastating effect though.
    The basic option and one that is shown in the documents for avisynth is the scrolling video/panning crop or otherwise known as the Ken Burns effect when applied to static images. For those unfamiliar Ken Burns is a noted historical documentary maker, as video cameras were not common until fairly recent history and video documentaries tend to need video footage static images have often been scanned in and panned over to give the impression of movement, this is pleasing to the eye and well worth knowing about if you are not necessarily shooting a video as much as animating a sequence.

    One example
    Picture in picture moving
    Code:
    baseclip=Blankclip(length=200, width=720, height=576, fps=25, color=$ff0000).subtitle("This is the red background")
    box=Blankclip(length=200, width=240, height=240, fps=25, color=$0000ff).subtitle("this is a box, it moves")
    #Animate (clip, int start_frame, int end_frame, string filtername, start_args, end_args)
    Animate(0,149,"overlay", baseclip,box,100,100, baseclip,box,500,190)
    The code above may look slightly scary but break it down and more of it makes sense. The ".subtitle" part is completely unnecessary for the animation but it is an example of so called object oriented programming and can save you having to slice up your video many more times if you want it to. The # is a comment that includes the basic usage of the animate function so you can see what was done.

    *the second would be the conditional filters. These apply things based upon certain features of the frames in question, more on those later in the thread though.

    There are animation plugins like avslib that can allow you to do all sorts of things, including passing a text file with lots of arguments.

    Stacked pictures
    Arguably a variation on overlay. There is an amusing sequence in the TV show Red Dwarf in the time compression/skips episode where effects like this are used. Sadly it does not appear to be on youtube but it would be a fine example effect to try to replicate.
    I have used it for several things I have made for GBAtemp over the years. You can make a huge video canvas of previous clips from your videos, great for an intro section. You can also showcase multiple playthroughs, diverging storylines, cameras from different perspectives (first person and map overview) and much more.
    In Avisynth the stackhorizontal and stackvertical functions as what you will usually be using.

    Cut/zoom jumps
    Originally inspired by this thread http://gbatemp.net/threads/this-is-sooo-annoying.344829/
    It is commonly seen in horror films or dramatic moments and is also a prime example of thinking in clips if you want it to be. Generally you are going to want to crop and resize before splicing them back together. The resize part might pose a problem unless you shot in far higher resolution than your resulting video is going to be. Smooth zoom is more easily accomplished with animate.

    Subtitles
    So easy to do, so often overlooked and so very effective as an addition to your video -- why do you think youtube allows you the option to add them after the fact. Similarly reminding the user what the speaker is if they have not been on screen for a while can help, watch a talking heads program some time and see what they do there.

    You have two main choices with avisynth.
    1) Inbuilt subtitle renderer.
    2) Abusing SSA/ASS subs and hardsubbing.

    If you are going to do simple things like name sequences, name speakers and basic text upon the screen then this can do well. The default setup is a rather ugly looking effect with small yellow text (though others might find it reminds them of old Hong Kong action films) but options for changing placement, colours, font type, font size and start and end points are available out of the box.

    If you are going to need full karaoke subtitles and or full subtitles like you see on DVDs and such then you are probably going to want to use a full subtitle program to at least make them. Avisynth can accept and encode into your video lots of common subtitle formats including SRT, ASS/SSA, vobsub and more. This is as it can use/speak to VSFilter/Directvobsub which is the most popular subtitle renderer out there (also open source and included with basically every video codec pack going). The likes of ASS/SSA subtitles are a world unto themselves at the higher levels (they are a nice XML based scripting language) but tools like http://sourceforge.net/projects/subtitlecreator/ and http://www.aegisub.org/ can help here.
    The third option is to make it a normal picture (most image editors have extensive text support) and include it as a transition, overlay or something similar.

    Transitions/wipes
    My personal philosophy here is the only transitions worth a damn are straight cuts and fades* (to a colour is quite acceptable mind you) but I am noted for being somewhat joyless in this regard. In avisynth there are functions fadein and fadeout and standard splice and trim will make for a straight cut. Similarly there is a function called dissolve which will change over a gradient (note this is not an "acid dissolve" type effect like you might see in a slideshow maker) and handle the audio with it.
    If you want the more fancy effects then http://www.avisynth.nl/users/vcmohan/TransAll/docs/index.html, the documentation includes a script that has all its many functions displayed one after the other.
    Sadly for fans of bad 70's gameshows there appears to be no easy way to do a star wipe.
    Flashes to other colours, fades through colours and similar effects have all sorts of meanings in video though this is not the place to be getting into that.

    *certain video editors dislike fades and will discourage their use.

    Ending discussion

    Combining just a few of these with a desire to do basic editing may serve to elevate your videos far above what has come before. Some videos to end and cover a bit less of the technical stuff and more of the general ideas when making video stuff



    http://blip.tv/nostalgia-chick/how-we-make-this-webseries-the-technical-crap-6275468

    http://www.youtube.com/user/Filmriot
     
    Issac and Hikaru like this.
  2. FAST6191
    OP

    FAST6191 Techromancer

    pip Reporter
    23,839
    9,725
    Nov 21, 2005
    United Kingdom
    Copy this effect

    The idea of a let's play reminds me of an old Simpsons sketch where Bart is playing computer games with Rod and Todd and when they query him about not allowing them to play he responds "we're a team", to which the response is "yay". Still it has often been said that the opening of anything will be the hook and probably what sees most people continue engaging with the thing in question so they can work for games. I am not sure it is a great example of the idea and picking apart the video is not really what I am aiming to do here at this point so enough with that.

    The effect then.
    There is a background, overlayed video streams with drop shadow borders and also the overlayed bottom screen is shrunk down relative to the other screen down a bit.

    One screengrab. Youtube says the video is 720p so that is what we are working with here. Discussion on the numbers at the end of the post
    Upper screen is using a resolution of 800×480 (double effective 3ds upper screen resolution)
    It is located at 64, 48.
    Lower screen is using a resolution of 400 x 300 (1.25 3ds lower screen resolution)
    Lower screen is located in the resulting video at 832, 384.

    Now this could vary, on the one hand a straight up background picture could pretty much do it all here, and actually when considered from a computer usage standpoint that is possibly a good thing (a static image is far easier to render than a lot of effects). However we will take a few approaches here.
    One is going to be the workmanlike method where things just get done, AKA make the image as a background.
    Another will be a bit more use of the AVIsynth feature set.
    The final one is where we pull out all the stops and make a full user function, that said if nothing else it should not be hard to adapt either of the other scripts to suit other types of footage.
    By all means suggest corrections, alternatives and even methods to do the same using another video program.

    Background picture.
    So you know where you videos will be and what sizes (as in dimensions) they will be. This is enough to generate the whole background picture statically really, save perhaps the border on the subscreen window as it is kind of hard to get the video programs to speak to layered images. Of course you could layer the things yourself in image form, indeed that would be the easier way of making fancy "picture frame" type borders and effectively what will be done for the later forms of the script.

    Needing an image for a background window
    http://gbatemp.net/threads/gbatemp-mascots-all.51083/
    Good old Tempy providing a nice background here. For the game most people would probably search for a wallpaper and use that.


    The video is to be located at 64,48
    The original uses a border of somewhere around 20 pixels
    Border box to start at
    44,28
    840×520 pixels for the box then.
    Shadow is only 10 pixels and offset by the same.

    Sub screen to be located at 832, 384
    Box then to start at 812, 364
    440 x 340

    With shadows added and boxes added. Locations picked within them (the rather handy measuring tool working for this). Fans of image editors please excuse the lack of use of proper layers and the like here, this was just to get something done. Probably should have also picked a different image to save the white background but hey.
    demo_picture_overlay.jpg

    Code:
    #You need a source video. The issue of how this will come varies and as this could also be pulling double duty as a camera image it is best not to get too specific.
    #Either way you want two video streams here. For the sake of brevity we will assume the this is for a final video render, you can still dub over the final product without touching the video.
    #That said the basic trim command will work wonders at the end of the video if you prefer.
    #Here we will just use a couple of Blankclip functions. The background image is sourced with the imagesource function.
    #You may consider resizing the videos if you are going to be using generic clips, if you are building this for a specific video setup it should be easy.
    BackgroundImage=ImageSource("overlaybackground_720p.png", fps=25, end=200)
    MainClip=Blankclip(length=200, width=800, height=480, fps=25, color=$ff0000).subtitle("This is the main screen video")
    OverlayClip=Blankclip(length=200, width=400, height=300, fps=25, color=$0000ff).subtitle("this is the sub screen video").addborders(20,20,20,20,$000000)
    BaseOverlay=overlay(BackgroundImage, Mainclip,64,48)
    FinalOverlay=overlay(BaseOverlay, OverlayClip,812,364)
    FinalOverlay
    
    There you have it, 6 lines and you have a nice relatively professional looking effect. Note that we used the box start location as adding borders changes the source video clip size and thus it needs different reference points.
    demo_basic_overlay_script.jpg

    Of course that is taking the "easy" way out and pre rendering the background image. If you were making a habit of swapping out the images or using an animated background (the image reader supports image sequences and a bit more besides) that would be a pain (though there are ways of automated image editing) so doing in the video editor is the better approach.
    In the previous section we already had the added borders and it would be a trivial (really, you copy and paste the .addborders(20,20,20,20,$000000) to the line above). The drop shadows might pose a tiny bit more challenge as there is unlikely to be such functionality baked into this.
    To make the shadows in an editor though all that was done was to drop the contrast a bit on a selected square, there are better ways of doing it but that works well. Video editors will have this option but than might be necessary. In real life shadows like that are rarely made of the absence of light but more a partial blocking. Another word for partial blocking when dealing with light is transparency and its inverse/antonym opacity.... something the overlay function already provides as part of one of its basic options for overlaying video (and it forms no small part of its more exotic options as well). You already know the locations for the overlay windows so all you need to do is add the create some clips the same size as the overlay functions, offset them a bit from the locations and blend them with less than total opacity.
    Do note if you have added borders then you will have to account for this, here we decided to omit them which gives a kind of odd look at the left and top parts of the shadow.

    Code:
    BackgroundImage=ImageSource("overlaybackground_clean_720p.png", fps=25, end=200)
    #The main clip section, including its shadow.
    MainClip=Blankclip(length=200, width=800, height=480, fps=25, color=$ff0000).subtitle("This is the main screen video").addborders(20,20,20,20,$000000)
    MainClipShadow=Blankclip(length=200, width=800, height=480, fps=25, color=$000000)
    #The Sub clip section including its shadow.
    OverlayClip=Blankclip(length=200, width=400, height=300, fps=25, color=$0000ff).subtitle("this is the sub screen video").addborders(20,20,20,20,$000000)
    OverlayClipShadow=Blankclip(length=200, width=400, height=300, fps=25, color=$000000)
    #Creating the shadows
    ShadowCons1=overlay(BackgroundImage, MainClipShadow,94,78,opacity=0.2)
    ShadowFin=overlay(ShadowCons1, OverlayClipShadow,862,414,opacity=0.2)
    #Putting it all together
    BaseOverlay=overlay(ShadowFin, Mainclip,44,28)
    FinalOverlay=overlay(BaseOverlay, OverlayClip,812,364)
    FinalOverlay
    
    4 more lines and you spare yourself the hassle of image editing as well, not to mention end up with a far more extensible workflow. You could probably switch it up and use the shadow clips twice if you preferred instead of adding borders, it would have saved fiddling a bit with the locations that change after adding borders too, such are the options when you are being creative and being a programmer.

    demo_advanced_overlay_script.jpg

    Turning it into a function.
    All you have to do to take that script on the road is change the three video clip producing segments into your actual videos/images. However you can turn it into a function which means you can call it like any of the inbuilt functions or plugins you have used thus far.
    It is possibly overkill for what you want to do here but if you are calling that and then editing normally you might prefer it at some level. If nothing else it is a nice introduction to function making with AVIsynth. You can then stick it into a file with the extension .avsi, put it in your plugin directory and call them like any other inbuilt function. Be careful if you do this as part of a properly workflow though for while you may remember to back up your scripts and source videos the functions may go overlooked. This could be improved considerably by adding some bounds checking or forcing resizes, as it stands you have to make sure your framerates, dimensions and the other features match what you need for this video.
    http://avisynth.nl/index.php/Shared_functions has a selection of far more useful functions than this demo.

    Code:
    Function FANCYOVERLAY( clip background,mainscreen,subscreen) {
    BackgroundImage=background
    MainClip=mainscreen.subtitle("This is the main screen video").addborders(20,20,20,20,$000000)
    	OverlayClip=subscreen.subtitle("this is the sub screen video").addborders(20,20,20,20,$000000)
    	MainClipShadow=Blankclip(length=200, width=800, height=480, fps=25, color=$000000)
    	OverlayClipShadow=Blankclip(length=200, width=400, height=300, fps=25, color=$000000)
    	ShadowCons1=overlay(BackgroundImage, MainClipShadow,94,78,opacity=0.2)
    	ShadowFin=overlay(ShadowCons1, OverlayClipShadow,862,414,opacity=0.2)
    	BaseOverlay=overlay(ShadowFin, Mainclip,44,28)
    	FinalOverlay=overlay(BaseOverlay, OverlayClip,812,364)
    	return FinalOverlay
    }
    
    
    Example of it being used in a script.

    Code:
    Function FANCYOVERLAY( clip background,mainscreen,subscreen) {
    BackgroundImage=background
    MainClip=mainscreen.subtitle("This is the main screen video").addborders(20,20,20,20,$00FF00)
    	OverlayClip=subscreen.subtitle("this is the sub screen video").addborders(20,20,20,20,$ffc400)
    	MainClipShadow=Blankclip(length=200, width=800, height=480, fps=25, color=$FF0000)
    	OverlayClipShadow=Blankclip(length=200, width=400, height=300, fps=25, color=$0000FF)
    	ShadowCons1=overlay(BackgroundImage, MainClipShadow,94,78,opacity=0.2)
    	ShadowFin=overlay(ShadowCons1, OverlayClipShadow,862,414,opacity=0.2)
    	BaseOverlay=overlay(ShadowFin, Mainclip,44,28)
    	FinalOverlay=overlay(BaseOverlay, OverlayClip,812,364)
    	return FinalOverlay
    }
    
    
    BG=ImageSource("overlaybackground_clean_720p.png", fps=25, end=200)
    MC=Blankclip(length=200, width=800, height=480, fps=25, color=$ff0000).subtitle("rar rar",100,100)
    Sub=Blankclip(length=200, width=400, height=300, fps=25, color=$0000ff).subtitle("something else",100,100)
    
    FANCYOVERLAY(BG,MC,Sub)
    Screen, thought we would mix it up a bit and have some coloured borders and shadows. You could even make the function able to take different colours as the borders and shadows if you wanted.
    demo_overlay_function.jpg

    Numbers discussion
    The numbers used in the source video were slightly odd here.

    Screen resolutions
    256x192 for each of the DS screens if you were making a video for that. For 720p it is not likely to matter so much.
    Your camera/webcam is however you set it up.
    The 3ds then....
    http://3dbrew.org/wiki/Internet_Browser
    From the captured image the size of the upper screen is north of 820x490 (the pixels get a bit blurred/overlap happy so exact numbers are hard)
    The lower screen capture in that image is over 400x290.
    Looking at the background and the logo there do not appear to be any obvious scaling artifacts so it looks like the captured streams were upscaled.
    This means the lower screen is upscaled by a factor of 1.25 and the upper screen is more than doubled. Doubling the resolution of an already low resolution source is a very tricky game to play, especially if you want your encode to be a reasonably short one.
    mod16 then. Video codecs can vary but ideally you want your positions to fall at some multiple of 16 pixels if you want to try making the life of your video encoding software easier (you do).
    From the image the upper screen is somewhere around 58 pixels horizontal and 50 pixels vertical to the top corner of the actual image.
    48 is a multiple of 16 and 58 would probably turn into 64 to do it right.
    832, 384 would then appear to be the corner of the image for the lower screen. They appear to be exactly multiples of 16 which is nice.
     
    cearp and Issac like this.
  3. FAST6191
    OP

    FAST6191 Techromancer

    pip Reporter
    23,839
    9,725
    Nov 21, 2005
    United Kingdom
    Work in progress on this one really as I felt like messing around for an hour or so before going to bed, I feel a little running theme on intros coming up though as I so rarely see good ones on game channels and see a bunch of nice ones on other channels..
    I saw the Rage of Thrones song

    Famous intro it mocks at the start there


    Now that is a reasonable challenge to replicate in avisynth. That said in about 10 lines of code I had a passable first attempt, I was originally going to break it down into three segments (the blinds opening, the appear and fade in of the logo and the fade of everything else to black) but by happy accident I found I could do the second and third reasonably well together for this first pass, I will jettison it before the final versions though. Now being augmented by an image editor for the nice graphics and the plugins does feel a tiny bit cheaper than I might like. However we deal in results around here so I will roll with it.

    You will need two plugins for this. The transition plugin mentioned in the original opener ( http://www.avisynth.nl/users/vcmohan/TransAll/docs/index.html , download at the bottom of the page) and the noise plugin is available from ( http://avisynth.nl/index.php/AddGrainC , I used 1.7.0 for reasons unknown). You can either call them in your scripts or put them in your plugins folder (probably something like "C:\Program Files\AviSynth 2.5\plugins"), both are reasonably useful so there are worse things you can put in the autoload folders.

    Warning, if you are planning to use something like this then know that encoding noise is the sort of things that keeps encoders up at night. If nothing else when you pirate HBO shows watch them on a device without the most power and it lags a bit during the intro you know why.


    Code:
    setmemorymax(1024)
    #
    #Opening Tv turning on segment.
    #
    blinds=Blankclip(length=100, width=1000, height=480, fps=25, color=$000000).converttoyv12()
    openingstaticbase=Blankclip(length=100, width=1000, height=480, fps=25, color=$807c7c).converttoyv12()
    openingstatic=AddGrainC(openingstaticbase,var=1023, uvar=1023, hcorr=0.0, vcorr=0.0, seed=99, constant=false, sse2=true).greyscale()
    #crop as the effect has a small overlap at the corners. Cropping makes this invisible, sizes already chosen to match with logo section.
    introeffect=TransTwinDoors(blinds,openingstatic,14,false).crop(100,0,-100,0).trim(50,100)
    
    #
    #Logo segment and fade out
    #
    
    staticbase=Blankclip(length=110, width=800, height=480, fps=25, color=$807c7c).converttoyv12()
    mainvideo=AddGrainC(staticbase,var=1023, uvar=1023, hcorr=0.0, vcorr=0.0, seed=99, constant=false, sse2=true).greyscale().fadeout(60)
    mainlogo=imagesource("logotesting3.png").fadein(90)
    mainmask=ImageReader("logotesting3.png",pixel_type="RGB32").ShowAlpha(pixel_type="RGB32").fadein(40)
    
    logosegment=Overlay(mainvideo,mainlogo,mask=mainmask,x=-mainlogo.width/2+mainvideo.width/2,y=50)#,opacity=0.7)
    
    introeffect+logosegment
    
    converttorgb32()#this is mainly as I broke my playback options
    No picture demo this time, however I compressed a sample version of the video down at levels not seen since the early 1990's (or youtube a few years back) and stuck it in a zip file. I could have made the timings match up more and avoided using a lot of the trim commands there but hey.

    On the graphics side of things logotesting3.png is just the top layer of the GIMP chrome logo effect with a slight tweak. Click file -> create -> logo -> chrome to make the logo. The slight tweak is once you have hidden the other layers right click the top layer and click "show layer mask". I then used the magic select on the juicy white middle parts of the letters in question and filled them in with grey. Combined with the fades in the avisynth script the effect turned out pretty nicely. As right now that is scarcely more than a rendered font I could probably have done something with the inbuilt colour filters of avisynth (I already abused the showalpha function and combined it with the fades to pull off one of the effects)
    Be warned you will need to make the video you are overlaying onto possibly somewhat larger than your image for the overlay parts, you can crop things down later though.
     

    Attached Files:

    Thunder Kai likes this.