View Single Post
Old 29th April 2019, 08:53   #5  |  Link
FranceBB
Broadcast Encoder
 
FranceBB's Avatar
 
Join Date: Nov 2013
Location: Royal Borough of Kensington & Chelsea, UK
Posts: 2,904
Oh God...
You see, those are the bad things of legacy hardware encoders.



When I tried to index it with FFMpegSource2, it reported the wrong framerate as 50fps, while it's really 25i.
LWLibavVideoSource actually got it right as 25i.
When I tried to bob it to get 50fps progressive, I quickly noticed what they have done: blending.



Basically, I believe that this was originally at a lower framerate (23.976fps I think) and that it has been brutally field blended to 25i. (50fps).

You have three choices:

Choice #1:
You can bob-deinterlace it to 50fps progressive and get it exactly as people saw it on TV when it went on air:

Code:
#Indexing
video=LWLibavVideoSource("test.ts")
audio=LWLibavAudioSource("test.ts")
AudioDub(video, audio)

#Bobbing
QTGMC()
If you think that it's too slow, you can try with tdeint:

Code:
tdeint(mode=1, order=-1, field=-1, mthreshL=6, mthreshC=6, map=0, type=2, debug=false, mtnmode=1, sharp=true, cthresh=6, blockx=16, blocky=16, chroma=true, MI=64, tryWeave=true, link=1, denoise=true, slow=2, opt=4)
if you still think that it's too slow you can try with Bob:

Code:
Bob()

Choice #2:
You can deinterlace it to 25fps progressive and at least get less blending, but it's still gonna be annoying every second:

Code:
#Indexing
video=LWLibavVideoSource("test.ts")
audio=LWLibavAudioSource("test.ts")
AudioDub(video, audio)

#Deinterlace
tdeint(mode=2, order=-1, field=-1, mthreshL=6, mthreshC=6, map=0, type=2, debug=false, mtnmode=1, sharp=true, cthresh=6, blockx=16, blocky=16, chroma=true, MI=64, tryWeave=true, link=1, denoise=true, slow=2, opt=4)

Choice #3:
Deinterlace it to 25fps and then use SRestore to try to recover the original 23.976fps. It may not be perfect, but it's worth giving a shot (even though the default parameters fail to properly detect blending in this case, so you are better off with the ones provided by Manolito).


Code:
#Indexing
video=LWLibavVideoSource("test.ts")
audio=LWLibavAudioSource("test.ts")
AudioDub(video, audio)

#Deinterlace
tdeint(mode=2, order=-1, field=-1, mthreshL=6, mthreshC=6, map=0, type=2, debug=false, mtnmode=1, sharp=true, cthresh=6, blockx=16, blocky=16, chroma=true, MI=64, tryWeave=true, link=1, denoise=true, slow=2, opt=4)

#Decimating
SRestore(frate=23.976)
By the way, for this kind of interlaced .ts sources, one of the best indexers is DGDecode.




Choose your preferred option.
If you ask me, I would bob it to 50fps and stick with blending as it's not too painful to watch or better still, keep it interlaced while re-encoding it.
As to the problem you've got in your screenshot, that's only because of screwed up fields that have been improperly deinterlaced; I bet that DirectShowSource fucked up while decoding it (and if you drop something in an interlaced source, that's what happens).

Cheers,
Frank.

Last edited by FranceBB; 29th April 2019 at 09:06.
FranceBB is offline   Reply With Quote