A Logo

Feel free to include my content in your page via my
RSS feed

Help Irongeek.com pay for
bandwidth and research equipment:

Search Irongeek.com:

Affiliates:
Irongeek Button
Social-engineer-training Button

Help Irongeek.com pay for bandwidth and research equipment:

paypalpixle


Split screen test video for Shmoocon FireTalks with AVISynth  (Hacking Illustrated Series InfoSec Tutorial Videos)

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
}
 


 

Printable version of this article

15 most recent posts on Irongeek.com:


If you would like to republish one of the articles from this site on your webpage or print journal please contact IronGeek.

Copyright 2016, IronGeek
Louisville / Kentuckiana Information Security Enthusiast