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.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.