frednerk
5th February 2006, 09:00
Crikey, thankyou scharfis_brain :goodpost: you are indeed switched on with your answers and intelligent observations.
Gentle hint - a lengthy post, please forgive me in advance and use your wheely mouse to skip past it quickly :) :devil:
I don't know whether the whole movie stays 25p from beginning the to the end.
Thanks, had a look via VirtualDubMpeg2 it does indeed seem to be 25p in a kind of way, there being "closely related frame pairs" (0,1) (1,2) etc all the way through... although many of the frames in each pair are visibly different in some way seemingly unrelated to movement... the island clip below shows something of that in the waves as do other parts with horizontal movement.
Clips 1.2Mb extracted using Mpeg2Schnitt v7.19 from the captured .TS via PVAStrumento, so are "unprocessed":
URLs removed as clips no longer relevant
I almost cracked a beer at your superlative knowledge, as it worked a treat on the PC screen... alas via HC (*CQ_MAXBITRATE 2 and 9100) and NERO to the Sony DVP-NS530 DVD player and SONY TV, it didn't seem to make much difference - still the "shimmering" even though HC's .mpv looked reasonable when played on the PC via MP9. Also verified same effect on a separate older, dumber, DVD/TV combo.
In desperation :scared: I tried burning/playing combinations via these rather raw :o scripts:
1. Re-Interlacing script
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
# ran DGIndex over it, as dgdecode threw up at the mpv
iMS1 = mpeg2source("D:\HDTV\shimmer2\shimmer1-boats.d2v").trim(0,49)
iMS2 = mpeg2source("D:\HDTV\shimmer2\shimmer2-jetty.d2v").trim(0,49)
iMS3 = mpeg2source("D:\HDTV\shimmer2\shimmer3-island.d2v").trim(0,49)
iMS4 = mpeg2source("D:\HDTV\shimmer2\shimmer4-boat.d2v").trim(0,49)
iMS = iMS1+iMS1+iMS1+iMS1+iMS1 + iMS2+iMS2+iMS2+iMS2+iMS2 + iMS3+iMS3+iMS3+iMS3+iMS3 + iMS4+iMS4+iMS4+iMS4+iMS4
iDS1 = DirectShowSource("D:\HDTV\shimmer2\shimmer1-boats.mpv").trim(0,49)
iDS2 = DirectShowSource("D:\HDTV\shimmer2\shimmer2-jetty.mpv").trim(0,49)
iDS3 = DirectShowSource("D:\HDTV\shimmer2\shimmer3-island.mpv").trim(0,49)
iDS4 = DirectShowSource("D:\HDTV\shimmer2\shimmer4-boat.mpv").trim(0,49)
iDS = iDS1+iDS1+iDS1+iDS1+iDS1 + iDS2+iDS2+iDS2+iDS2+iDS2 + iDS3+iDS3+iDS3+iDS3+iDS3 + iDS4+iDS4+iDS4+iDS4+iDS4
# AVIsynth doco MERGE() is a bit thin, its example suggests this script averages frame N and N+1 Luma/Chroma into N
jMS=iMS.trim(1,0)
kMS=merge(iMS,jMS)
mMS=merge(jMS,jMS.trim(1,0)) # just for fun
iMS1 = iMS.assumetff().separatefields().selectevery(4,0,3).weave()
iMS1 = iMS1.ScriptClip("""subtitle("MS1.Simple Reinterlace TFF Frame " + string(current_frame),size=20,x=40,y=40)""")
jMS1 = jMS.assumetff().separatefields().selectevery(4,0,3).weave()
jMS1 = jMS1.ScriptClip("""subtitle("MS2.Trim(1,0) then Reinterlace TFF Frame " + string(current_frame),size=20,x=40,y=40)""")
kMS1 = kMS.assumetff().separatefields().selectevery(4,0,3).weave()
kMS1 = kMS1.ScriptClip("""subtitle("MS3.merge(i,i.trim(1,0)) then Reinterlace TFF Frame " + string(current_frame),size=20,x=40,y=40)""")
mMS1 = mMS.assumetff().separatefields().selectevery(4,0,3).weave()
mMS1 = mMS1.ScriptClip("""subtitle("MS4.Trim(1,0) then merge(i,i.trim(1,0)) then Reinterlace TFF Frame " + string(current_frame),size=20,x=40,y=40)""")
iMS2 = iMS.assumeBFF().separatefields().selectevery(4,0,3).weave()
iMS2 = iMS2.ScriptClip("""subtitle("MS1.Simple Reinterlace BFF Frame " + string(current_frame),size=20,x=40,y=40)""")
jMS2 = jMS.assumeBFF().separatefields().selectevery(4,0,3).weave()
jMS2 = jMS2.ScriptClip("""subtitle("MS2.Trim(1,0) then Reinterlace BFF Frame " + string(current_frame),size=20,x=40,y=40)""")
kMS2 = kMS.assumeBFF().separatefields().selectevery(4,0,3).weave()
kMS2 = kMS2.ScriptClip("""subtitle("MS3.merge(i,i.trim(1,0)) then Reinterlace BFF Frame " + string(current_frame),size=20,x=40,y=40)""")
mMS2 = mMS.assumeBFF().separatefields().selectevery(4,0,3).weave()
mMS2 = mMS2.ScriptClip("""subtitle("MS4.Trim(1,0) then merge(i,i.trim(1,0)) then Reinterlace BFF Frame " + string(current_frame),size=20,x=40,y=40)""")
#
jDS=iDS.trim(1,0)
kDS=merge(iDS,jDS)
mDS=merge(jDS,jDS.trim(1,0)) # just for fun
iDS1 = iDS.assumetff().separatefields().selectevery(4,0,3).weave()
iDS1 = iDS1.ScriptClip("""subtitle("DS1.Simple Reinterlace TFF Frame " + string(current_frame),size=20,x=40,y=40)""")
jDS1 = jDS.assumetff().separatefields().selectevery(4,0,3).weave()
jDS1 = jDS1.ScriptClip("""subtitle("DS2.Trim(1,0) then Reinterlace TFF Frame " + string(current_frame),size=20,x=40,y=40)""")
kDS1 = kDS.assumetff().separatefields().selectevery(4,0,3).weave()
kDS1 = kDS1.ScriptClip("""subtitle("DS3.merge(i,i.trim(1,0)) then Reinterlace TFF Frame " + string(current_frame),size=20,x=40,y=40)""")
mDS1 = mDS.assumetff().separatefields().selectevery(4,0,3).weave()
mDS1 = mDS1.ScriptClip("""subtitle("DS4.Trim(1,0) then merge(i,i.trim(1,0)) then Reinterlace TFF Frame " + string(current_frame),size=20,x=40,y=40)""")
iDS2 = iDS.assumeBFF().separatefields().selectevery(4,0,3).weave()
iDS2 = iDS2.ScriptClip("""subtitle("DS1.Simple Reinterlace BFF Frame " + string(current_frame),size=20,x=40,y=40)""")
jDS2 = jDS.assumeBFF().separatefields().selectevery(4,0,3).weave()
jDS2 = jDS2.ScriptClip("""subtitle("DS2.Trim(1,0) then Reinterlace BFF Frame " + string(current_frame),size=20,x=40,y=40)""")
kDS2 = kDS.assumeBFF().separatefields().selectevery(4,0,3).weave()
kDS2 = kDS2.ScriptClip("""subtitle("DS3.merge(i,i.trim(1,0)) then Reinterlace BFF Frame " + string(current_frame),size=20,x=40,y=40)""")
mDS2 = mDS.assumeBFF().separatefields().selectevery(4,0,3).weave()
mDS2 = mDS2.ScriptClip("""subtitle("DS4.Trim(1,0) then merge(i,i.trim(1,0)) then Reinterlace BFF Frame " + string(current_frame),size=20,x=40,y=40)""")
#
return iMS1 + jMS1 + kMS1 + mMS1 + iMS2 + jMS2 + kMS2 + mMS2 + iDS1 + jDS1 + kDS1 + mDS1 + iDS2 + jDS2 + kDS2 + mDS2
2. Leave as Progressive script
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
# ran DGIndex over it, as dgdecode threw up at the mpv
iMS1 = mpeg2source("D:\HDTV\shimmer2\shimmer1-boats.d2v").trim(0,49)
iMS2 = mpeg2source("D:\HDTV\shimmer2\shimmer2-jetty.d2v").trim(0,49)
iMS3 = mpeg2source("D:\HDTV\shimmer2\shimmer3-island.d2v").trim(0,49)
iMS4 = mpeg2source("D:\HDTV\shimmer2\shimmer4-boat.d2v").trim(0,49)
iMS = iMS1+iMS1+iMS1+iMS1+iMS1 + iMS2+iMS2+iMS2+iMS2+iMS2 + iMS3+iMS3+iMS3+iMS3+iMS3 + iMS4+iMS4+iMS4+iMS4+iMS4
iDS1 = DirectShowSource("D:\HDTV\shimmer2\shimmer1-boats.mpv").trim(0,49)
iDS2 = DirectShowSource("D:\HDTV\shimmer2\shimmer2-jetty.mpv").trim(0,49)
iDS3 = DirectShowSource("D:\HDTV\shimmer2\shimmer3-island.mpv").trim(0,49)
iDS4 = DirectShowSource("D:\HDTV\shimmer2\shimmer4-boat.mpv").trim(0,49)
iDS = iDS1+iDS1+iDS1+iDS1+iDS1 + iDS2+iDS2+iDS2+iDS2+iDS2 + iDS3+iDS3+iDS3+iDS3+iDS3 + iDS4+iDS4+iDS4+iDS4+iDS4
# AVIsynth doco MERGE() is a bit thin, its example suggests this script averages frame N and N+1 Luma/Chroma into N
a1MS=iMS.trim(1,0)
a1MSoriginal = a1MS.selecteven().assumeFPS(25)
MS1 = a1MSoriginal.ScriptClip("""subtitle("MS 1. 25fps progressive original unmerged initialTrim Frame " + string(current_frame),size=20,x=40,y=40)""")
a1MSmerged = merge(a1MS,a1MS.trim(1,0)).selecteven().assumeFPS(25)
MS2 = a1MSmerged.ScriptClip("""subtitle("MS 2. 25fps progressive merged initialTrim Frame " + string(current_frame),size=20,x=40,y=40)""")
MS3 = stackhorizontal(MS1,MS2).Lanczos4Resize(720,576)
a2MSoriginal = iMS.selecteven().assumeFPS(25) # effectively commenting out the initial trim(1,0)
MS4 = a2MSoriginal.ScriptClip("""subtitle("DS 3. 25fps progressive original unmerged NO initialTrim Frame " + string(current_frame),size=20,x=40,y=40)""")
a2MSmerged = merge(iMS,iMS.trim(1,0)).selecteven().assumeFPS(25)
MS5 = a2MSmerged.ScriptClip("""subtitle("DS 4. 25fps progressive merged NO initialTrim Frame " + string(current_frame),size=20,x=40,y=40)""")
MS6 = stackhorizontal(MS4,MS5).Lanczos4Resize(720,576)
MallS = stackVertical(stackhorizontal(MS1,MS2) , stackhorizontal(MS4,MS5)).Lanczos4Resize(720,576)
#
a1DS=iDS.trim(1,0)
a1DSoriginal = a1DS.selecteven().assumeFPS(25)
DS1 = a1DSoriginal.ScriptClip("""subtitle("DS 1. 25fps progressive original unmerged initialTrim Frame " + string(current_frame),size=20,x=40,y=40)""")
a1DSmerged = merge(a1DS,a1DS.trim(1,0)).selecteven().assumeFPS(25)
DS2 = a1DSmerged.ScriptClip("""subtitle("DS 2. 25fps progressive merged initialTrim Frame " + string(current_frame),size=20,x=40,y=40)""")
DS3 = stackhorizontal(DS1,DS2).Lanczos4Resize(720,576)
a2DSoriginal = iDS.selecteven().assumeFPS(25) # effectively commenting out the initial trim(1,0)
DS4 = a2DSoriginal.ScriptClip("""subtitle("DS 3. 25fps progressive original unmerged NO initialTrim Frame " + string(current_frame),size=20,x=40,y=40)""")
a2DSmerged = merge(iDS,iDS.trim(1,0)).selecteven().assumeFPS(25)
DS5 = a2DSmerged.ScriptClip("""subtitle("DS 4. 25fps progressive merged NO initialTrim Frame " + string(current_frame),size=20,x=40,y=40)""")
DS6 = stackhorizontal(DS4,DS5).Lanczos4Resize(720,576)
DallS = stackVertical(stackhorizontal(DS1,DS2) , stackhorizontal(DS4,DS5)).Lanczos4Resize(720,576)
#
return MS1 + MS2 + MS3 + MS4 + MS5 + MS6 + MallS + DS1 + DS2 + DS3 + DS4 + DS5 + DS6 + DallS
Alas, to no avail, same problem with all outputs. So ensured all DVD player and TV options to nil-enhancement etc etc... same problemo. Guess it must be that combination of clip and DVD player/telly...
For interest, left it as 50FPS on the PC via this script and it looked reasonable too
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
# ran DGIndex over it, as dgdecode threw up at the mpv
iMS1 = mpeg2source("D:\HDTV\shimmer2\shimmer1-boats.d2v").trim(0,49)
iMS2 = mpeg2source("D:\HDTV\shimmer2\shimmer2-jetty.d2v").trim(0,49)
iMS3 = mpeg2source("D:\HDTV\shimmer2\shimmer3-island.d2v").trim(0,49)
iMS4 = mpeg2source("D:\HDTV\shimmer2\shimmer4-boat.d2v").trim(0,49)
iMS = iMS1+iMS1+iMS1+iMS1+iMS1 + iMS2+iMS2+iMS2+iMS2+iMS2 + iMS3+iMS3+iMS3+iMS3+iMS3 + iMS4+iMS4+iMS4+iMS4+iMS4
iDS1 = DirectShowSource("D:\HDTV\shimmer2\shimmer1-boats.mpv").trim(0,49)
iDS2 = DirectShowSource("D:\HDTV\shimmer2\shimmer2-jetty.mpv").trim(0,49)
iDS3 = DirectShowSource("D:\HDTV\shimmer2\shimmer3-island.mpv").trim(0,49)
iDS4 = DirectShowSource("D:\HDTV\shimmer2\shimmer4-boat.mpv").trim(0,49)
iDS = iDS1+iDS1+iDS1+iDS1+iDS1 + iDS2+iDS2+iDS2+iDS2+iDS2 + iDS3+iDS3+iDS3+iDS3+iDS3 + iDS4+iDS4+iDS4+iDS4+iDS4
# AVIsynth doco MERGE() is a bit thin, its example suggests this script averages frame N and N+1 Luma/Chroma into N
iMS1 = iMS.ScriptClip("""subtitle("1. Original 50fps Mpes2Source frame " + string(current_frame),size=20,x=40,y=40)""")
kMS = merge(iMS,iMS.trim(1,0))
kMS1 = kMS.ScriptClip("""subtitle("2. merge(j,j.trim(1,0)) 50fps Mpes2Source frame " + string(current_frame),size=20,x=40,y=40)""")
sMS1 = stackhorizontal(iMS1,kMS1).Lanczos4Resize(720,576)
iDS1 = iDS.ScriptClip("""subtitle("1. Original 50fps DirectShowSource frame " + string(current_frame),size=20,x=40,y=40)""")
kDS = merge(iDS,iDS.trim(1,0))
kDS1 = kDS.ScriptClip("""subtitle("2. merge(j,j.trim(1,0)) 50fps DirectShowSource frame " + string(current_frame),size=20,x=40,y=40)""")
sDS1 = stackhorizontal(iDS1,kDS1).Lanczos4Resize(720,576)
#
return iMS1 + kMS1 + sMS1 + iDS1 + kDS1 + sDS1
however the DVD s/w won't let me build a 576p (50fps) DVD from HC's 50fps .mpv for NERO to burn.... not sure if it's a DVD standard or whether my DVD player could handle it anyway. I must have inadvertently converted to 25fps last time I tried, I guess.
Any other suggestions ?
At my wits end... got there rather quickly it seems :) :confused:
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.