bigmick
15th January 2009, 13:02
Hi Friends,
I've been given the dubious honour of capturing the family home movies off the original Video 8 tapes or VHS (dubbed off video 8). After many hours researching online I think I've got the capturing part all sorted and am happy with the results. I'm capturing the interlaced PAL material at 720x576 and encoding with HuffyUV. It has a mono audio track, but dealing with it is for another day.
I've spent the last week or so reading up on post processing. I've settled on using Avisynth and opening the avs directly into CCE. I'll cut the capture waste and perform basic splicing in the avs and then more fine editing once I've encoded to mpeg as I've got better tools to do it there and it's easier (quicker).
Where I'd love some help is putting together a basic Avisynth to process the video.
Here's what I'm looking to achieve:
- Letterbox to remove head switching noise
- Correct the capture aspect ratio (if it can be done without complicating things or adding too much processing time)
- *Minimal* denoise to help the mpeg encoder - i'd rather encode to a higher bitrate and store on more dvds than start using aggressive filters and introduce unwanted effects. I'd like to get at least 2 hours on a single-layer DVD though.
- I've done enough searching to appreciate the complexity involved in filtering if your aim is to improve the output quality-there are so many filters out there and so many settings-unfortunately I really don't have time to get up to speed on all this stuff, so unless someone can recommend some filter settings which will always benefit VHS capture, I'm just going to go with minimal noise filtering I think.
Here's the basis for a script from what I've been able to piece together so far:
----------
# Load the input files
AVISource("somevideo.avi")
# Do my trimming and splice addition cap files here
# Remove the head switching noise - use multiple of 16 again to help mpeg encoder
# I've figured I need about 14 off the bottom anyway
LetterBox(16,16)
# Denoise - as we are applying a temporal filter (works across frames)
# we need to split our interlaced frames up
# (or is it because of the spatial aspects of the filter??) I've found references to both.
SeparateFields()
even = SelectEven(last).PixieDust(5)
odd = SelectOdd(last).PixieDust(5)
Interleave(even, odd)
# I don't think this is going to work anyway - see comments below.
# Correct aspect ratio - I've figured out my card has an active capture window of 706 pixels
# I'm not exactly sure which ones they are but will assume it is centered.
# The capture driver has scaled these 706 out to 720. Scale it back then add black borders.
# Perform the resize before we recombine the fields-is this best???
# Note in this case that the height is divided by two, since we are resizing
# the fields instead of the frames
LanczosResize(706, 288)
# Join the interlaced fields back together into single frames
Weave()
# Add the black bars on each side to get back to the 720 resolution.
# To give us black blocks of 16 we will have to crop a bit more off
Crop( 9,0,-9,-0)
AddBorders(16, 0, 16, 0)
# Correct the colour levels if they were distorted by the capture card
# is there an easy test to determine if my capture card is susceptible to this
# (or does anyone know - ATi Radeon 9600XT)??
ColorYUV(levels="PC->TV")
# I've also seen references to chroma shift, deshaking, undot, etc - is there anything fundamental
# (a must have) I'm missing for processing a VHS cap?
# Somewhere I have to ensure I'm feeding CCE with the field order it expects
# Check/switch it here or in CCE settings
Appart from wondering if I have things in the best order and am doing the right processing with interlaced frames as opposed to fields separated, my main problem is with the noise filtering - I believe the above wont work as you cant call PixieDust more than once and I understand it is deprecated now anyway, but have no idea what the new equivalent is. Also I only want mild filtering so the (5) might be too strong?? Any help in this area would be really appreciated.
I'm sure someone is going to ask, but I can't really post up any representative samples as there is a lot of variation - we've had different cameras over the years, the age and condition of the tape varies (some tapes date back to the mid 80's), subject matter, person taking video, some is off VHS dub, some off the super 8 etc etc. I'm really just looking for a one size fits all sort of script that is going to achieve reasonable results - I know to get great results would take hours of testing and tweaking on each individual capture file, but I'm not really prepared to put in that sort of time at this stage.
Thanks
Mick
I've been given the dubious honour of capturing the family home movies off the original Video 8 tapes or VHS (dubbed off video 8). After many hours researching online I think I've got the capturing part all sorted and am happy with the results. I'm capturing the interlaced PAL material at 720x576 and encoding with HuffyUV. It has a mono audio track, but dealing with it is for another day.
I've spent the last week or so reading up on post processing. I've settled on using Avisynth and opening the avs directly into CCE. I'll cut the capture waste and perform basic splicing in the avs and then more fine editing once I've encoded to mpeg as I've got better tools to do it there and it's easier (quicker).
Where I'd love some help is putting together a basic Avisynth to process the video.
Here's what I'm looking to achieve:
- Letterbox to remove head switching noise
- Correct the capture aspect ratio (if it can be done without complicating things or adding too much processing time)
- *Minimal* denoise to help the mpeg encoder - i'd rather encode to a higher bitrate and store on more dvds than start using aggressive filters and introduce unwanted effects. I'd like to get at least 2 hours on a single-layer DVD though.
- I've done enough searching to appreciate the complexity involved in filtering if your aim is to improve the output quality-there are so many filters out there and so many settings-unfortunately I really don't have time to get up to speed on all this stuff, so unless someone can recommend some filter settings which will always benefit VHS capture, I'm just going to go with minimal noise filtering I think.
Here's the basis for a script from what I've been able to piece together so far:
----------
# Load the input files
AVISource("somevideo.avi")
# Do my trimming and splice addition cap files here
# Remove the head switching noise - use multiple of 16 again to help mpeg encoder
# I've figured I need about 14 off the bottom anyway
LetterBox(16,16)
# Denoise - as we are applying a temporal filter (works across frames)
# we need to split our interlaced frames up
# (or is it because of the spatial aspects of the filter??) I've found references to both.
SeparateFields()
even = SelectEven(last).PixieDust(5)
odd = SelectOdd(last).PixieDust(5)
Interleave(even, odd)
# I don't think this is going to work anyway - see comments below.
# Correct aspect ratio - I've figured out my card has an active capture window of 706 pixels
# I'm not exactly sure which ones they are but will assume it is centered.
# The capture driver has scaled these 706 out to 720. Scale it back then add black borders.
# Perform the resize before we recombine the fields-is this best???
# Note in this case that the height is divided by two, since we are resizing
# the fields instead of the frames
LanczosResize(706, 288)
# Join the interlaced fields back together into single frames
Weave()
# Add the black bars on each side to get back to the 720 resolution.
# To give us black blocks of 16 we will have to crop a bit more off
Crop( 9,0,-9,-0)
AddBorders(16, 0, 16, 0)
# Correct the colour levels if they were distorted by the capture card
# is there an easy test to determine if my capture card is susceptible to this
# (or does anyone know - ATi Radeon 9600XT)??
ColorYUV(levels="PC->TV")
# I've also seen references to chroma shift, deshaking, undot, etc - is there anything fundamental
# (a must have) I'm missing for processing a VHS cap?
# Somewhere I have to ensure I'm feeding CCE with the field order it expects
# Check/switch it here or in CCE settings
Appart from wondering if I have things in the best order and am doing the right processing with interlaced frames as opposed to fields separated, my main problem is with the noise filtering - I believe the above wont work as you cant call PixieDust more than once and I understand it is deprecated now anyway, but have no idea what the new equivalent is. Also I only want mild filtering so the (5) might be too strong?? Any help in this area would be really appreciated.
I'm sure someone is going to ask, but I can't really post up any representative samples as there is a lot of variation - we've had different cameras over the years, the age and condition of the tape varies (some tapes date back to the mid 80's), subject matter, person taking video, some is off VHS dub, some off the super 8 etc etc. I'm really just looking for a one size fits all sort of script that is going to achieve reasonable results - I know to get great results would take hours of testing and tweaking on each individual capture file, but I'm not really prepared to put in that sort of time at this stage.
Thanks
Mick