I quickly modified one of my script to make an expertiment on your video. This is the script (very, very slow):
Code:
# interlaced fields TFF
# TemporalDegrain2: Denoiser, Temporal filter with motion compensation
# LSFmod: Sharpener
# modeC_Nnedi3 for interlaced fields
video_org=AviSource("C:\Users\giuse\Desktop\sampleclip-noaudio.avi")
# cropping
crop_left=0
crop_top=0
crop_right=8
crop_bottom=8
video_org_crop=video_org.crop(crop_left,crop_top,-crop_right,-crop_bottom)
# plugins directory
plugins_dir="C:\Users\giuse\Documents\VideoSoft\MPEG\AviSynth\extFilters\"
# TemporalDegrain2
Import(plugins_dir + "TemporalDegrain-v2.2.1_modGMa.avsi")
# RgTools
loadPlugin(plugins_dir + "RgTools-v1.0\x86\RgTools.dll")
# MaskTools2
loadPlugin(plugins_dir + "masktools2-v2.2.23\x86\masktools2.dll")
# MVTools
loadPlugin(plugins_dir + "mvtools-2.7.41-with-depans20200430\x86\mvtools2.dll")
# FFT3DFilter
loadPlugin(plugins_dir + "FFT3dFilter-v2.6\x86\fft3dfilter.dll")
# FFTW
loadPlugin(plugins_dir + "LoadDll\LoadDll.dll")
loadDll(plugins_dir + "fftw-3.3.5-dll32\libfftw3f-3.dll")
# LSFmod
Import(plugins_dir + "LSFmod.v1.9.avsi")
# RgTools
#loadPlugin(plugins_dir + "RgTools-v1.0\x86\RgTools.dll")
# MaskTools2
#loadPlugin(plugins_dir + "masktools2-v2.2.23\x86\masktools2.dll")
# Nnedi3
loadPlugin(plugins_dir + "NNEDI3_v0_9_4_55\x86\Release_W7\nnedi3.dll")
# parameters
# denoiser
degrainTR=3
postFFT=0
postSigma=1
# sharpener
strength=100
overshoot=1
ss_x=1.5
ss_y=1.5
### de-interlacing
deinterlaced=video_org_crop.AssumeTFF().nnedi3(field=-2)
### convert to YV16
deinterlaced_yv16=deinterlaced.convertToYV16(interlaced=true)
### denoising
denoised=deinterlaced_yv16.TemporalDegrain2(degrainTR=degrainTR, postFFT=postFFT, postSigma=postSigma)
### convert to YUY2
denoised_yuy2=denoised.convertToYUY2(interlaced=false)
### convert to YV12
denoised=denoised_yuy2.convertToYV12(interlaced=false)
### sharpening
sharpened=denoised.LSFmod(strength=strength, overshoot=overshoot, ss_x=1.5, ss_y=1.5, secure=false, Spwr=2, SdmpLo=strength/25, SdmpHi=0, soothe=false, keep=25, edgemaskHQ=true)### convert to YUY2 with chroma from YUY2 color space
### convert to YUY2 with chroma from YUY2 color space
sharpened_yuy2=sharpened.convertToYUY2(interlaced=false).MergeChroma(denoised_yuy2)
### interlacing
interlaced=sharpened_yuy2.AssumeTFF().SeparateFields().SelectEvery(4,0,3).Weave()
### add borders
video_restored=interlaced.addborders(crop_left,crop_top,crop_right,crop_bottom)
#return(video_restored)
stackhorizontal(\
subtitle(video_org,"video_org",size=20,align=2),\
subtitle(video_restored,"video_restored",size=20,align=2)\
)
and attached you can find the result (reduced, to stay in the 100MB size limit). It is only a quick try, not optimized at all.
You may consider to do not deinterlace and apply the filtering using:
SeparateFields()
SelectEven().<filtering>
SelectOdd().<filtering>
Interleave()
Weave()
as alternative, or, in the opposite direction, to use QTGMC as deinterlacer.
You may also want to experiment different values for the parameters of TemporalDegrain and LSFmod. In particular, try the post-processing of TemporalDegrain2 to further reduce noise if wished (but you may loose some more detail doing so).
About the left edge, you may try to soften the blu line with Cnr2 or ChubbyRain2 or ChromaDestripe, or simply crop and addborders to "mask" it.