Split screen test video for Shmoocon FireTalks with AVISynth
Grecs gave me the go ahead to record the short FireTalks at Shmoocon 2010.
I've been messing around with AVISynth, and I plan to use it to make the
Fireside talks look somewhat professional, like the ones Defcon releases.
I re-encoded my "Bulilding a Hacklab" video to test out how well the script
would work, here are the results:
Here is the AVISynth script I used (I did not write the sign function, thanks to TheFluff for that one):
#Defcon style video composite AviSynth script by Adrian irongeek.com
#The next line is mostly for specifying and resizing the live video to put in the corner.
#It also does some other filtering to make the video specs match. Use the Trim function to make things sync.
livevid = DirectShowSource("FILE0003.avi", fps=25, convertfps=true).Letterbox(0,0).ConvertToRGB24().LanczosResize(320,240).Trim(300,0,false).ConvertFPS(25)
#The line tells the script what to use for the large section of the video where I put the slide show/what was being projected
overlay=ImageReader("480mascot.png",pixel_type="RGB32")
slides = DirectShowSource("issasc_transcoded.avi").ConvertToRGB24().LanczosResize(640,480).Trim(0,0,false).ConvertFPS(25).insertsign(overlay, 1, 150)
#Just a for a logo for the corner, I use it to give info avout the presentation. Has to be 208x324.
corner = ImageSource("corner.png",pixel_type="RGB24").LanczosResize(320,240).ConvertFPS(25)
#Now to add all the file together
livepluscorner = StackVertical(livevid,corner).AudioDub(livevid)
StackHorizontal(livepluscorner,slides)
function insertsign(clip mainclip, clip overlayclip, int startframe, int "endframe") {
endframe = default(endframe,startframe+overlayclip.framecount()-1)
endframe = (endframe == 0) ? startframe+overlayclip.framecount()-1 : endframe
endframe = (endframe >= mainclip.framecount()-1) ? mainclip.framecount()-1 : endframe
begin = (startframe == 1) ? mainclip.trim(0,-1) : mainclip.trim(0,startframe-1)
middle = mainclip.trim(startframe,endframe)
end = (endframe == mainclip.framecount()-1) ? blankclip(mainclip,length=0) : mainclip.trim(endframe+1,0)
middleoverlay = Overlay(middle, overlayclip, mask=overlayclip.showalpha())
final = (startframe == 0) ? middleoverlay ++ end : begin ++ middleoverlay ++ end
return final
}
If you would like to republish one of the articles from this site on your webpage or print journal please contact IronGeek.
Copyright 2020, IronGeek