I have a PNG sequence I want to overlay over some VHS-sourced footage. By default it looks way to sharp and clear. So I tried outputting at half-resolution from After Effects, then doing a Scale to Frame Size in Premiere, but that just looks pixelated and digital instead of soft and fuzzy.
What's the best way to go about this?
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 30 of 61
Thread
-
-
You can degrade the sequence using various methods.
One that creates fairly authentic results is a plugin called Red Giant VHS
https://www.maxon.net/en/red-giant/universe/vhs -
I'm still on CS6 and that's rather expensive.
It's just motion graphics, it's not actual video content or anything, so I'm really just needing it less sharp rather than anything super fancy. -
Less sharp - you can apply a blur .
I doubt match that well, the VHS look isn't just a "blur" applied -
Just record it to VCR and then recapture it and take a still from the footage assuming you have a VCR.
-
There's a VHS filter for AviSynth: https://www.youtube.com/watch?v=osUvH8PRk3g
-
Jagabo, that's great! Should have put an ES15 in there though-it's a bit wobbly.
-
Want my help? Ask here! (not via PM!)
FAQs: Best Blank Discs • Best TBCs • Best VCRs for capture • Restore VHS -
Do you have a choice of scaling algorithm? It sounds like you got a point resize (AKA nearest neighbor). You want something like bilinear instead. In fact, VHS has about 320x480 resolution so you want to scale twice, first down to 320x480, then up to 720x480 (assuming an NTSC ITU cap), both with bilinear.
-
It's an overlay with transparency, so recording it on a VHS won't work.
It's PAL. I output from AE at half-res, so 360 wide, which is near enough to VHS res, but the Premiere scale-up just looks awful. -
I missed this post somehow.
So my output is a transparent PNG sequence from AfterEffects, then I'm overlaying that in Premiere at the moment. I don't think I can overlay it in AviSynth, just because of having to sort out cuts and such...so is there a way to just process the PNG sequence with AviSynth? Am I better off outputting in a different format, like AVI, from AE? Can AviSynth output anything that supports transparency?
How do I actually use that plugin (ie, what are the options)? There's no readme. There's an feq file, no clue what that is. -
I've managed to write out a cleaner version that only does what I want, but how can I turn it into a plugin? I created an AVS file, defined a function, and then dropped that in the plugins folder but it didn't work. Copying the same function to the top of my AviSynth script did work.
And my questions about transitioning from AE to AviSynth still stand...the filter seems not to handle transparency at all but I don't know how to fix that.
Here's what I whittled it down to:
Code:function Retrograde(clip clp) { SourceVideo = clp.bilinearresize(392,576) loss = imagesource("mask\hsync_%03d.bmp",end=127).assumefps(25,1).loop(1000) original = converttorgb32(sourcevideo).levels(0,1,255,4,200) grey1 = greyscale(original).bilinearresize(288,576).blur(-1,1).bicubicresize(400,576) grey2 = pointresize(grey1,800,576).crop(0,0,799,576).addborders(1,0,0,0).bilinearresize(400,576) hsyncloss1 = mergeargb(showgreen(loss),showblue(loss),showblue(loss),showblue(loss)).pointresize(400,576) hsyncloss2 = invert(hsyncloss1,"A") greysync1 = layer(grey1,hsyncloss1) greysync2 = layer(grey2,hsyncloss2) grey = overlay(greysync1,greysync2,mode="add",opacity=1).converttoyv12 colorinputu = original.bilinearresize(100,576).blur(1,0).bilinearresize(400,576) colorinputv = colorinputu colorlossu = mergeargb(showred(loss),showblue(loss),showblue(loss),showblue(loss)).pointresize(400,576) colorlossv = trim(colorlossu,32,0) coloru = layer(colorinputu,colorlossu).converttoyv12 colorv = layer(colorinputv,colorlossv).converttoyv12 color = mergechroma(coloru,colorv,0.5).coloryuv(gain_y=-256,cont_u=128,cont_v=128) final = overlay(grey,color,mode="add",opacity=1).levels(40,1,255,0,255).bilinearresize(720,576) return final }
-
Can you provide some typical samples of your png images with alpha channel?
That script is only blurring the video and adding some halos. Is that all you're looking for? -
I used the Nyan_Cat_Sample.avi as a large overlay. I converted the blue background to transparent. I blurred it, added halos and luma/chroma noise, then overlaid it onto a flat grey background. Is this something like you want?
[Attachment 67587 - Click to enlarge] -
I'd need the output to have a transparent background, so I can overlay it. It's nothing super complicated, just text and a couple of logos.
As opposed to what? It seems decent from what I've tested. Certainly better than the shitty rescale I was doing.
While it's not graphically complicated, there's a lot of scripting going on, so the PNG sequences I've already generated account for probably a week of constant rendering time. As such I'm pretty keen to use the PNGs rather than outputting all over again to AVI, but I'm not sure how to go about doing that. -
-
Here's simple function that blurs an ARGB image like your Retrograde() but retains (and blurs) the alpha channel:
Code:function VHS_blur(clip v) { v.LanczosResize(280,v.height).Sharpen(0.2, 0.0).LanczosResize(v.width,v.height) }
-
When you import PNG's with alpha channel with ImageSource, make sure you use pixel_type="RGB32" to import the alpha channel
To export the script, you can export a PNG sequence with transparency with ImageWriter(), or with ffmpeg, or with vdub2 . Or use some other format like MOV (e.g. PNG in MOV or QT animation), or AVI (e.g. lagarith and utvideo support RGBA) are common choices for alpha support -
Are you saying to use this instead, or as well? I'm not sure I follow.
I've just never worked with transparency in AviSynth before. So I'm not sure a) how to retain alpha through the filtering process and b) how to output. How does one actually run ImageWriter?
I'm also not sure how to import the PNG sequence. I can import one PNG, but the syntax for sequencing confuses me. -
Import a PNG image sequence with alpha channel:
Code:ImageSource("ovr%03d.png", start=0, end=11, pixel_type="RGB32")
Code:ovr = ImageSource("ovr%03d.png", start=0, end=11, pixel_type="RGB32") ovr = VHS_blur(ovr) # stop here if you want to export a PNG sequence or video # or # continue using the image sequence as an overlay, background = ColorBars() # or load a video file Overlay(background, ovr, mask=ovr.ShowAlpha())
-
Am I able to just not define the end, so it continues until it runs out of PNGs? How does it handle a change in the number of digits? AE has a minimum of five (so it starts "filename_00000.png", "filename_00001.png", etc) but the sequence is long enough to hit six-digit frame numbers.
Does that not work with the Retrograde() function? Retrograde() is a bit too dark for my taste, and perhaps a little too blurry, but VHS_blur() looks a bit too nice. A middle ground on blurriness with unaltered luma would be the ideal, although that being said VHS_blur() still looks better (or worse, as it were) than the full-res sequence. I just don't really understand what each line of Retrograde() does, so it's difficult to dig in and tweak. I tried removing all the levels() calls but it blew out way too bright.
And I'm still not sure how to use ImageWriter(), do I call it and then just play the file in VDub, or...? -
I don't think you can automatically continue from five digit names into six digit names. Just do it as two sequences and join them together.
Code:part1 = ImageSource("ovr%05d.png", start=0, end=99999, pixel_type="RGB32") part2 = ImageSource("ovr%06d.png", start=100000, end=whatever, pixel_type="RGB32") part1+part2
Code:VHS_blur().Blur(0.5).RGBAdjust(r=0.9, g=0.9, b=0.9).BilinearResize(720,576).GreyScale()
Last edited by jagabo; 15th Nov 2022 at 07:19.
-
Retrograde() converts color video to greyscale. So I was guessing that's what you wanted.
-
http://avisynth.nl/index.php/ImageWriter
Code:ImageWriter("PATH\output_%05d.png", type="PNG")
-
RetroGrade() converts to greyscale when I call it:
Code:function Retrograde(clip clp) { SourceVideo = clp.bilinearresize(392,576) loss = imagesource("mask\hsync_%03d.bmp",end=127).assumefps(25,1).loop(1000) original = converttorgb32(sourcevideo).levels(0,1,255,4,200) grey1 = greyscale(original).bilinearresize(288,576).blur(-1,1).bicubicresize(400,576) grey2 = pointresize(grey1,800,576).crop(0,0,799,576).addborders(1,0,0,0).bilinearresize(400,576) hsyncloss1 = mergeargb(showgreen(loss),showblue(loss),showblue(loss),showblue(loss)).pointresize(400,576) hsyncloss2 = invert(hsyncloss1,"A") greysync1 = layer(grey1,hsyncloss1) greysync2 = layer(grey2,hsyncloss2) grey = overlay(greysync1,greysync2,mode="add",opacity=1).converttoyv12 colorinputu = original.bilinearresize(100,576).blur(1,0).bilinearresize(400,576) colorinputv = colorinputu colorlossu = mergeargb(showred(loss),showblue(loss),showblue(loss),showblue(loss)).pointresize(400,576) colorlossv = trim(colorlossu,32,0) coloru = layer(colorinputu,colorlossu).converttoyv12 colorv = layer(colorinputv,colorlossv).converttoyv12 color = mergechroma(coloru,colorv,0.5).coloryuv(gain_y=-256,cont_u=128,cont_v=128) final = overlay(grey,color,mode="add",opacity=1).levels(40,1,255,0,255).bilinearresize(720,576) return final } ImageSource("Untitled-1.jpg", start=0, end=23, fps=23.976, pixel_type="RGB32") RetroGrade()
[Attachment 67654 - Click to enlarge]
RetroGrade() copy/pasted from post #13.
I also have a version of VHS_blur() that blurs the chroma a lot more but I didn't post it because I though you wanted greyscale (there's no point in blurring the chroma if you arn't going to use it).Last edited by jagabo; 15th Nov 2022 at 10:21.
Similar Threads
-
Making SD music videos or found footage movies.. VHS, Super VHS or Hi8?
By part12studios in forum Newbie / General discussionsReplies: 0Last Post: 10th Aug 2021, 08:57 -
Cleaning vhs/8mm footage
By hdfills in forum EditingReplies: 3Last Post: 17th Apr 2020, 14:36 -
How to remaster VHS workprint footage ?
By Gwar in forum RestorationReplies: 3Last Post: 21st Feb 2020, 11:07 -
Wobbly VHS Capture Footage
By JohnMctabish in forum CapturingReplies: 8Last Post: 1st Nov 2019, 05:53 -
Panasonic EH69 matching IRE with a Japanese VHS source
By jwillis84 in forum DVD & Blu-ray RecordersReplies: 4Last Post: 5th Jun 2018, 23:22