So I finally managed to get everything working with a Diamond VC500 for converting VHS tapes. The TBC I have is a Panasonic EH-55. The problem is nothing is clear. People's faces are not clear. On the bookshelf image, there are dots on the books themselves, rather than showing the books as actual books. On the bottom image the dots outline even the cups and tables. I've read about rasterization and interlacing, but it seems it's neither of those. I tried deinterlacing in VLC and it makes things even worse and more blurry. What is the issue I am seeing?
[Attachment 75073 - Click to enlarge]
[Attachment 75074 - Click to enlarge]
[Attachment 75075 - Click to enlarge]
[Attachment 75076 - Click to enlarge]
+ Reply to Thread
Results 1 to 18 of 18
-
-
Post a sample of the video
-
Your frame grabs are combed. As for the speckles, I've seen them on the footage from old 1980s camcorders in low light.
-
@Bigbadben, you can snip out a short sample (10 seconds) of your video using Virtual Dub in Direct Stream Copy mode (on the Video menu) and choose a short range using the buttons on the timeline, then export. We need it in the capture format (I assume one of the lossless AVIs).
If you're not using VDub, install AVIDemux and open your file, then choose a short range by starting it with the A button, end it with the B button, then set the output format onto AVI Muxer and then save it.
Then you can attach it here (500mb max size).
Try to include a scene with some motion so we can observe the interlacing. -
One field of the interlaced capture is ok, the other field is very noisy.
Options to fix it are for example:
a) Single rate deinterlacing based on the good field -> loosing temporal resolution
b) Bob deinterlace and denoise
c) Denoise the separated fields individually using different strenghts
d) Keep the good field only and synthesize the bad field from the good field
a) and b) are easy
c) and d) are more difficult
Example for a) attached:Last edited by Sharc; 27th Nov 2023 at 02:44.
-
I'd be recapturing that.
Sharc, we're never going to learn if you don't give us your code. It looks to me like you've also done some denoising. -
Important is to analyze the root cause of the problem and think about ways how to solve it. For interlaced stuff the first step should ALWAYS be field inspection. The code is secondary. In my example for case a) it was as simple as
Code:AVISource("Sample Video.avi") BWDIF(field=1) # ignoring field 2 McDegrainSharp() # or some other denoiser to taste here
-
The heads could use a little bit of clean but as far as the video quality, that's about what you can get from a consumer camcorder in indoor conditions back in that era, Use a slight denoise but don't go too crazy because it will wipe out any details left in those low light scenes.
-
don't go too crazy
(script used: https://pastebin.com/19Fkk049, sample attached; not really usable since encoding speed is rather slow <2fps;~75%CPU, 20GB RAM, 75%GPU, 9GB VRAM on a Ryzen 9 9850x + Geforce RTX 4080)
Also attached a conventional crazy version (script: https://pastebin.com/pexni3k3; no tweaking, 40fps; 99%CPU, 2GB RAM, 50%GPU, 4.5GB VRAM)
=> the conventional crazy is probably still usable, but I would agree with Alwyn, if recapturing is an option, it should be used.
Cu Selurusers currently on my ignore list: deadrats, Stears555, marcorocchini -
The fields can be checked with a simple script like this, loaded in VirtualDub:
Code:FFmpegSource2("Sample Video.avi", atrack=-1) assumeTFF() separateFields()
Once the problem has been identified, the solutions proposed by Sharc are pertinent, being the odd fields all bad.
Frame 175 is bad also in even field:
To OP, try to recapture this tape. Does this field problem only happen with this tape?Last edited by lollo; 28th Nov 2023 at 04:50.
-
You guys have missed my point. I don't see the point of fixed video without showing how you achieved it. Most of the posters here are newbys, looking for guidance on how to do/achieve things. Unless you show them the code being used, or the steps being taken to achieve something, they are left in bewilderment: "wow, that looks great, but how?".
Celur's post is great; explains what they used and the code. I think my lights dimmed a bit when you ran that script, Celur.
@Bigbadben, you can easily see the issue in Virtual Dub: apply the Deinterlace filter with "Double frame rate, top field first", then step through the video frame by frame.
If you then choose "Keep Top" or "Keep Bottom" you'll remove the dodgy fields (but only get 25 frames/s, not as smooth as 50fps when you export).
Also, could you post a short video snip of the bookcase? The experts might have some suggestions for that too. -
There are some mods out there (for example: https://forum.doom9.org/showthread.php?p=1926403#post1926403)out there, but the McDegrainSharp I usually use is:
Code:function McDegrainSharp(clip c, int "frames", float "bblur", float "csharp", bool "bsrch", int "thsad") { # Based on MCDegrain By Didee, http://forum.doom9.org/showthread.php?t=161594 # Also based on DiDee observations in this thread: http://forum.doom9.org/showthread.php?t=161580 # "Denoise with MDegrainX, do slight sharpening where motionmatch is good, do slight blurring where motionmatch is bad" # In areas where MAnalyse cannot find good matches, the blur() will be dominant. # In areas where good matches are found, the sharpen()'ed pixels will overweight the blur()'ed pixels # when the pixel averaging is performed. frames = default(frames, 2) bblur = default(bblur, 0.6) csharp = default(csharp, 0.6) bsrch = default(bsrch, true) thsad = default(thsad, 400) bs = (c.width>960) ? 16 : 8 c2 = c.blur(bblur) super = bsrch ? c2.MSuper(pel=2, sharp=1) : c.MSuper(pel=2, sharp=1) super_rend = c.sharpen(csharp).MSuper(pel=2, sharp=1,levels=1) backward_vec3 = MAnalyse(super, isb = true, delta = 3, blksize=bs, overlap=bs/2) backward_vec2 = MAnalyse(super, isb = true, delta = 2, blksize=bs, overlap=bs/2) backward_vec1 = MAnalyse(super, isb = true, delta = 1, blksize=bs, overlap=bs/2) forward_vec1 = MAnalyse(super, isb = false, delta = 1, blksize=bs, overlap=bs/2) forward_vec2 = MAnalyse(super, isb = false, delta = 2, blksize=bs, overlap=bs/2) forward_vec3 = MAnalyse(super, isb = false, delta = 3, blksize=bs, overlap=bs/2) (frames<=0) ? c :\ (frames==1) ? c2.MDegrain1(super_rend, backward_vec1,forward_vec1,thSAD=thsad) :\ (frames==2) ? c2.MDegrain2(super_rend, backward_vec1,forward_vec1,backward_vec2,forward_vec2,thSAD=thsad) :\ c2.MDegrain3(super_rend, backward_vec1,forward_vec1,backward_vec2,forward_vec2,backward_vec3,forward_vec3,thSAD=thsad) return(last) }
Cu Selurusers currently on my ignore list: deadrats, Stears555, marcorocchini -
I am using a copy of the last function which is included in the scipt found here over at doom9:
https://forum.doom9.org/showpost.php?p=1926403&postcount=6
Here the excerpt:
Code:Function McDegrainSharp(clip c, int "frames", float "bblur", float "csharp", bool "bsrch",bool "Precise",Float "Limit",Float "LimitC", \ int "Pel",bool "Chroma", Int "BlkSz",Int "OLap",Int "Plane",bool "Tm",Bool "glob", Int "ThSAD",Int "ThSAD2") { Function __McDegrainSharp_bpc(clip c) {try {bpc=c.BitsPerComponent} catch(mes) {bpc=8} return bpc} myName = "McDegrainSharp: " frames = Default(frames, 2) bblur = Default(bblur, (c.width>1920) ? 0.75 : (c.width>1280) ? 0.7 : (c.width>960 ) ? 0.65 : 0.6) csharp = Default(csharp, 0.6) bsrch = Default(bsrch, true) Precise= Default(Precise,False) # Use MRecalculate Limit = Default(Limit,255) # Max allowed Y change, Arg to MDegrainN. Default Limit/LimitC is 255 (int) LimitC = Default(LimitC,Limit) # Max allowed U,V change Limit =(c.__McDegrainSharp_bpc==8)?Limit.Int :Limit # Force Limit/LimitC to type int if Colorspace is 8 bit LimitC=(c.__McDegrainSharp_bpc==8)?LimitC.Int:LimitC pel = Default(pel,2) chroma = Default(chroma,true) # Use chroma in MAnalyse for vectors BlkSz = Default(BlkSz,(c.width>1920) ? 32 : (c.width>1280) ? 24 : (c.width>960 ) ? 16 : 8) OLap = Default(OLap,BlkSz/2) Plane = Default(Plane,4) tm = Default(tm,true) # TrueMotion Glob = Default(glob,Tm) # Default Tm, Allow set MAnalyse(global) independently of TrueMotion. ThSAD = Default(ThSAD,400) ThSAD2 = Default(ThSAD2,ThSAD) Assert(0.0 <= bblur <= 1.58, myName + "0.0 <= bblur <= 1.58") Assert(0.0 <= csharp <= 1.0, myName + "0.0 <= csharp <= 1.0") Assert(pel==1 || pel==2 || pel==4, myName + "pel==1 || pel==2 || pel==4") Assert(0 <= Plane <= 4, myName + "0 <= Plane <= 4") c2 = c.blur(bblur) super = bsrch ? c2.MSuper(pel=pel, sharp=1) : c.MSuper(pel=pel, sharp=1) super_rend = c.sharpen(csharp).MSuper(pel=pel, sharp=1,levels=1) # Only 1 Level required for sharpened Super (not MAnalyse-ing) MultiVec = super.MAnalyse(multi=true,delta=frames,blksize=BlkSz,overlap=OLap,chroma=Chroma,truemotion=Tm,global=Glob) # If Precise, then recalculate on Prefiltered (blurred) Super (NOT the sharpened render super) MultiVec = (Precise) \ ? super.MRecalculate(MultiVec,blksize=BlkSz/2,overlap=OLap/2,thSAD=100,chroma=chroma,truemotion=tm,global=Glob, tr=frames) \ : MultiVec (frames<=0) \ ? c \ : c2.MDegrainN(super_rend, MultiVec, Frames, thSAD=ThSAD, plane=Plane, Limit=Limit, LimitC=LimitC, thsad2=ThSAD2) return Last }
I have seen similar damaged fields before. The reason was a defect of the videocam. Maybe here it is just a bad capture. I don't know.
Added:
FWIW here the clip '25fps.mp4' of post#6 interpolated to 50fps in order to bring the motion fluidity back.
(Discover the interpolation artifacts)
Code:ffms2("25fps.mp4") #clip of post#6 RGB=z_ConvertFormat(pixel_type="RGBPS") # RIFE wants RGB floating point RIFE=RGB.RIFE(gpu_thread=1, model=25, fps_num=50000, fps_den=1000, sc=true, sc_threshold=0.3) # motion interpolation 25fps -> 50fps YV12=RIFE.z_ConvertFormat(pixel_type="YUV420P8") # converting RGB back to YV12 return YV12
Last edited by Sharc; 28th Nov 2023 at 04:05.
-
It's me, bigbadben. Just chose a different username. I opened my VCR and cleaned the video and audio head with a microfiber cloth with 70% isopropyl alcohol on it, and video is worse now. There is more noise and colour seems to be lost. It's now stuttering and inserting frames in certain areas. I added the part on the end to show the stuttering. It seems I damaged my video head. Just to note the screenshots above are of different VHS tapes, not the same tape. The sample video and this sample video is of the same tape.
-
When you say "head", there are multiple video heads. They're on the very bottom edge of the big spinning drum: tiny indentations you can hardly see. On those, never use any "clothy" type stuff. The current idea is to use plain printer paper soaked in 99% isopropyl alcohol (can get it at Bunnings).
Can you post a pic of the things you cleaned? The techsperts might be able you some ideas re unclogging them. -
@ferrari:
No, your new sample 2 is not worse. You didn't damage anything. The new picture is slightly brighter (no worry though) and that's why you may spot the deficiencies easier. Actually you have less glitches in the new capture, but the basic problem is the same as before: 1 field is very noisy (spoiled). Maybe it is baked into the tape by the camera. As the VCR is outputting field by field by field ... it's unlikely that the alternating quality of the fields is caused by dirty heads of the VCR, in my opinion.
The stutter at the end are dropped/repeated frames in order to keep audio and video in sync, possibly caused by temporary computer overload. Stop any other applications running in the background on the PC, even virusscanners. Don't touch the mouse etc. during capturing.Last edited by Sharc; 29th Nov 2023 at 03:59.
Similar Threads
-
the file exists but does not seem to have any video -
By Sfang in forum Software PlayingReplies: 6Last Post: 2nd May 2021, 13:00 -
Poor Video Quality in Digitized Sony Video8 Tapes (Video Attached)
By wsd33904 in forum Capturing and VCRReplies: 7Last Post: 16th Jan 2021, 18:47 -
Trying to download a video that possibly no longer exists from MTV
By AustinBrock in forum Video Streaming DownloadingReplies: 7Last Post: 22nd Feb 2020, 05:29 -
Post processing digitized VHS content
By thjuu in forum RestorationReplies: 8Last Post: 24th Jan 2020, 21:12 -
Best way to view digitized analog tapes on modern TVs
By Christina in forum Newbie / General discussionsReplies: 7Last Post: 23rd Apr 2019, 21:31