Log in

View Full Version : Shrink interlaced sources


acki
22nd October 2010, 02:56
Hi,

I have a 1080i (TFF) tv recording -world cup final, for the matter- which is 35Gb and I want to shrink it to make it fit in a BD-R. I can estimate the proper bitrate for it, but the avisynth part is not being as easy as I thought (I haven't used avisynth in ages anyway).
Basically what I'm trying to do is to separate fields, then re-compress to fit and then "join" the fields back again. And then I'm lost, because I would have to compress again the interlaced result so I'm back at the starting point :stupid:

This is the best script I can come up with after separating fields in two .h264 files:

LoadPlugin("C:\Avisynth\plugins\DGAVCDecode.dll")
bottom = AVCSource("C:\VIDEO\TRABAJO\pares.dga", deblock=false)
top = AVCSource("C:\VIDEO\TRABAJO\impares.dga", deblock=false)
interleave(top,bottom)
assumefieldbased()
assumetff()
weave()


... and then, all I get is a 12.5fps 1920x2160 weird looking video.

So, any help, suggestions, etc. would be greatly appreciated.

Thanks.

pandy
22nd October 2010, 15:34
Hi,
Basically what I'm trying to do is to separate fields, then re-compress to fit and then "join" the fields back again. And then I'm lost, because I would have to compress again the interlaced result so I'm back at the starting point :stupid:

This is the best script I can come up with after separating fields in two .h264 files:


But why separate fields, compress them and "join" fields together????

Simply re-compress video without separating fields - decode as interlace and feed to encoder as interlace - only maybe with additional information is that this is TFF or BFF video.

acki
22nd October 2010, 16:31
But why separate fields, compress them and "join" fields together????

Simply re-compress video without separating fields - decode as interlace and feed to encoder as interlace - only maybe with additional information is that this is TFF or BFF video.

Well... I've done this already, adding --interlaced to x264 options and the avisynth script was this:

LoadPlugin("C:\avisynth\plugins\DGAVCDecode.dll")
AVCSource("C:\VIDEO\TRABAJO\finalmundial.dga", deblock=false)
trim(350000,350999)
assumetff()


I trim the video just to pick a small part before processing the full 4 hours video. Also, as you can see, I do (did) what you suggest. The results? A crappy choppy full-of-artifacts video.

The video is TTF, so all even frames should also be TTF and I'm trimming at an even frame -> 350000.

So... any other suggestions ? I'm open to anything that could work :)

Thanks for the answer anyway.

poisondeathray
22nd October 2010, 16:34
I trim the video just to pick a small part before processing the full 4 hours video. Also, as you can see, I do (did) what you suggest. The results? A crappy choppy full-of-artifacts video.


Don 't use DGAVCIndex for PAFF streams. Known bug

You can use DSS2() with ffdshow for example

acki
22nd October 2010, 16:41
Don 't use DGAVCIndex for PAFF streams. Known bug

You can use DSS2() with ffdshow for example

Ahhh..er.... thanks for the answer but...

What is a PAFF stream ? What does DSS2() do ? Are you suggesting to use directshowsource() along with that DSS2()? (Excuse my ignorance)

Could you please post an example ? It surely would help me a lot. :script::thanks::):):):):)

poisondeathray
22nd October 2010, 16:48
What is a PAFF stream ? What does DSS2() do ? Are you suggesting to use directshowsource() along with that DSS2()? (Excuse my ignorance)

Could you please post an example ? It surely would help me a lot. :script::thanks::):):):):)

PAFF = picture adaptive field frame , you can think of it as one form of interlaced avc

DSS2() is directshowsource2, but frame accurate when source is in a container . avss.dll comes with haali media splitter, put it in avisynth/plugins folder to autoload

Eg. if you were encoding interlaced:

DSS2("video.ts")

acki
22nd October 2010, 16:57
PAFF = picture adaptive field frame , you can think of it as one form of interlaced avc

Alright, got it. :)


DSS2() is directshowsource2, but frame accurate when source is in a container . avss.dll comes with haali media splitter, put it in avisynth/plugins folder to autoload

Eg. if you were encoding interlaced:

DSS2("video.ts")

So, copy avss.dll to avisynth plugins, then script with DSS2("video.ts") and then x264 with --interlaced (among another bunch of options), right ?

OK, I'm gonna give it a try and then I'll be back and report success/failure.

Thanks a lot.:thanks::goodpost:

poisondeathray
22nd October 2010, 17:00
So, copy avss.dll to avisynth plugins, then script with DSS2("video.ts") and then x264 with --interlaced (among another bunch of options), right ?


Yes, but only if you are making a data disc.

Those "bunch of other options" are important

If you are making a blu-ray disc (playable in BD players), you have to use compliant encoding settings , and author the disc

acki
23rd October 2010, 02:41
Those "bunch of other options" are important

If you are making a blu-ray disc (playable in BD players), you have to use compliant encoding settings , and author the disc

Thanks for pointing that out but don't worry, I've done x264 bluray compliant encodes before (including authoring with multiAVCHD). :)

I haven't had much time to try DSS2() but when I do, I'll let you know about my results.

Once again, thanks a lot for your help.