|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
22-Авг-11 08:30
(13 лет 2 месяца назад)
Andrew_Ukraine
VHS MDegrain2i2
#ccd_sse2.vdf
#vdf_arguments:CamCD:0
#Cnr2.dll
#Warpsharp.dll
#mvtools2.dll
#MT.dll
#ColorMatrix.dll
#AutoYUY2.dll
#MDegrain2i2.avs SetMTMode(2)
setmemorymax(640) ConvertToRGB32(interlaced=true).CamCD(10,1) # удаление радужности и цветового шума
ConvertToYV12(interlaced=true) # Cnr2("oxx",8,16,191,100,255,32,255,false) # удаление радужности и цветового шума для VHS
# Cnr2("oxx",8,14,191,75,255,20,255,false) # удаление радужности и цветового шума для Laserdisc chroma = last
MDegrain2i2(chroma,8,4,5) # ColorMatrix(mode="Rec.709->Rec.601", inputFR=false, clamp=0,interlaced=true)
# ConvertToYUY2(interlaced=true)
AutoYUY2() function MDegrain2i2(clip source, int "blksize", int "overlap", int "dct")
{
Vshift=2 # 2 lines per bobbed-field per tape generation (PAL); original=2; copy=4 etc
Hshift=0 # determine experimentally
overlap=default(overlap,0) # overlap value (0 to 4 for blksize=8)
dct=default(dct,0) # use dct=1 for clip with light flicker fields=source.SeparateFields() # separate by fields #This line gets rid of vertical chroma halo
fixed_fields=MergeChroma(fields,crop(fields,Hshift,Vshift,0,0).addborders(0,0,Hshift,Vshift)) super = fixed_fields.MSuper(pel=2, sharp=1)
backward_vec2 = super.MAnalyse(isb = true, delta = 2, blksize=blksize, overlap=overlap, dct=dct)
forward_vec2 = super.MAnalyse(isb = false, delta = 2, blksize=blksize, overlap=overlap, dct=dct)
backward_vec4 = super.MAnalyse(isb = true, delta = 4, blksize=blksize, overlap=overlap, dct=dct)
forward_vec4 = super.MAnalyse(isb = false, delta = 4, blksize=blksize, overlap=overlap, dct=dct) MDegrain2(fixed_fields,super, backward_vec2,forward_vec2,backward_vec4,forward_vec4,thSAD=400)
unsharpmask(20,1,0) #not sure whether to put this before or after the weave. Weave()
}
|
|
unreal666
Стаж: 16 лет 10 месяцев Сообщений: 1713
|
unreal666 ·
22-Авг-11 11:23
(спустя 2 часа 52 мин., ред. 22-Авг-11 11:23)
Tempter57
А разве на сайте ависинта не написано, что при ConvertToRGB32 <-> ConvertToYV12 лучше использовать спец. скрипт-функции, уменьшающие сдвиг цветности при таком преобразовании с v2.58/2.60?
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
22-Авг-11 12:13
(спустя 50 мин.)
unreal666
Вы сейчас о colorshift(цветовом сдвиге) в VHS имеете в виду
Код:
# Удалить VHS colorshift (цветовой сдвиг)
Vshift=2
Hshift=0
mergechroma(last.crop(Hshift,Vshift,0,0, align=true).addborders(0,0,Hshift,Vshift))
то эта фунцция реализована внутри скрипта MDegrain2i2.avs для VHS.
Если подразумевается некоторые иные функции, то поясните, о каких идёт речь.
|
|
Andrew_Ukraine
Стаж: 16 лет 1 месяц Сообщений: 15
|
Andrew_Ukraine ·
22-Авг-11 13:04
(спустя 50 мин.)
Tempter57
спасибо большое, вечером буду пробовать. Видео у меня достаточно среднего качества(уже больше 15 лет кассетам), мне сейчас главное добиться качества приемлемого, время обработки - не главное. Я бы хотел еще, чтоб в скрипте использовался fft3dgpu(мне нравится картинка после него), а вообще задача - ничего не обрезать, сохранить интерлейс и 25 кадров, единственное есть видео снятое в помещении при ярком осещении-там бы хотелось как-то подкоректировать цвета(они слишком желтые), мне подойдёт ваш скрипт?
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
22-Авг-11 13:22
(спустя 18 мин., ред. 22-Авг-11 13:25)
Andrew_Ukraine
Если хотите применить более качественную фильтрацию, то нет проблем: производите любой боб-деинтерлейс (количество кадров удваивается поскольку каждое поле интерполируется до целого кадра), вставляете в скрипт colorshift (и желательно его подобрать руками, а не тупо 2 по вертикали, возможно и не надо будет вовсе), далее ваши любимые шумодавы, шарперы, DeBanding и в конце скрипта эти заветные строчки:
Код:
AutoYUY2() # or ConverttoYUY2()
AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave() # TFF первым
или так
Код:
AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave() # TFF
AutoYUY2() # or ConverttoYUY2(interlaced=true)
|
|
unreal666
Стаж: 16 лет 10 месяцев Сообщений: 1713
|
unreal666 ·
22-Авг-11 13:24
(спустя 2 мин., ред. 22-Авг-11 13:24)
Tempter57 писал(а):
Если подразумевается некоторые иные функции, то поясните, о каких идёт речь.
Тема " Chroma shift in interlaced YV12 to YUY2 conversion" на doom9
Пункт "Improper YV12<->YUY2 Conversions" на странице " Known Issues" на сайте ависинта
Tempter57 писал(а):
# TFF первым
Судя по сэмплу, в его видео нижнее поле первое.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
22-Авг-11 13:37
(спустя 12 мин., ред. 23-Авг-11 14:10)
unreal666 писал(а):
Судя по сэмплу, в его видео нижнее поле первое.
unreal666
В VHS и интерлейсных камкодерах PAL нижнее поле первым идёт действительно, но он будет формировать DVD и у них как бы принято верхнее поле первым, поэтому и дал такую рекомендацию. Ссылки обязательно просмотрю, спасибо.
Кстати, если заметили преобразование с YV12 в YUY2 , у меня по умолчанию осуществляется нероновским AutoYUY2.dll. Это значительно лучшего обычного ConverttoYUY2()
И какое отношение
Цитата:
при ConvertToRGB32 <-> ConvertToYV12 лучше использовать спец. скрипт-функции
имеет к следующему преобразованию
Цитата:
Тема "Chroma shift in interlaced YV12 to YUY2 conversion" на doom9
Пункт "Improper YV12<->YUY2 Conversions" на странице "Known Issues" на сайте ависинта
Я просто начал впадать в ступор. , но в итоге понял, что и первоначально имелось в виду преобразование с YV12 в YUY2
|
|
Andrew_Ukraine
Стаж: 16 лет 1 месяц Сообщений: 15
|
Andrew_Ukraine ·
22-Авг-11 20:53
(спустя 7 часов, ред. 22-Авг-11 20:53)
Tempter57
не хотелось бы наглеть, но все что я сам эксперементировал ничего толкого не принесло, мне боб-деинтерлейс нужно вставить перед вашим скриптом VHS MDegrain2i2, потом свой шумодав, потом те строки которые вы указали? Составте пожалуйста полный скрипт, а с его параметрами я уже поэксперементирую, мне главное чтоб основа была. после скрипта VHS MDegrain2i2, видео получилось дёрганым и размытым:(
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
22-Авг-11 21:08
(спустя 14 мин., ред. 23-Авг-11 13:16)
Andrew_Ukraine
Вы не правильно поняли принцип. VHS MDegrain2i2 это первый вариант обработки VHS с сохранением интерлейса.
Для примера вот вам второй вариант, более сложный и трудоёмкий пресет:
VHS MDegrain2 LS
#ccd_sse2.vdf
#vdf_arguments:CamCD:0
#Depan.dll
#DepanEstimate.dll
#TDeint.dll
#yadifmod.dll
#NNEDI3.dll
#WarpSharp.dll
#degrainmedian.dll
#VagueDenoiser.dll
#RemoveGrainSSE2.dll
#RemoveGrainTSSE2.dll
#RemoveDirt.dll
#RepairSSE2.dll
#awarpsharp2.dll
#mvtools2.dll
#mt_masktools-25.dll
#MT.dll
#DeScratch.dll
#Fluxsmooth.dll
#AddGrainC.dll
#Gradfun2DB.dll
#stab.avs
#SeeSaw.avs
#soothe.avs
#Limitedsharpenfaster.avs
#RemoveColorBleeding.avs
#RemoveDirtMC_03.avs
#Gradfun2dbmod.avs #==== 1. Боб-Деинтерлейс ==== ConvertToYV12(interlaced=true) AssumeBFF()
TDeint(mode=1,order=0) # mode=0 deinterlace, mode=1 doubleframerate, order=0 BFF, order=1 TFF
#yadifmod(mode=1,order=0,edeint=nnedi3(field=-2)) # mode=1 means double framerate,field=-2 means double rate (alternates each frame) # ==== 2. Обработка ==== setmtmode(2)
setmemorymax(640) ConvertToRGB32()
CamCD(9,1) # подавление цветового шума камкодеров
converttoyv12() DeScratch(mindif=4, maxgap=20, minlen=300, blurlen=50, keep=100, border=0, maxangle=0) # удаление царапин и полос старых киноплёнок # Удалить VHS colorshift (цветовой сдвиг)
Vshift=2 # 2 пикселя на ленте
Hshift=0
mergechroma(last.crop(Hshift,Vshift,0,0, align=true).addborders(0,0,Hshift,Vshift)) # Удалить Colorbleeding (размытость цветовых контуров)
# RemoveColorBleeding() # Частичная стабилизация изображения
Stab() # Шумоподавление
source = last
filtered = source.RemoveDirt(false,10)
# filtered = RemoveDirtMC(source,40) dark = 32
bright = 196
mask1 = mt_lut(source,"x "+string(dark)+" < 255 x "+string(bright)+" > 255 0 ? ?",U=1,V=1).removegrain(19,-1,-1) min = 16
max = 255
mask2 = mt_lutxy(source,filtered,"x y - abs "+string(min)+" < 0 x y - abs "+string(max)+" > 0 255 ? ?",U=1,V=1).removegrain(19,-1,-1)
rdr = mt_merge(source,filtered,mt_logic(mask1,mask2,"min"),luma=true)
preNR_super = filtered.MSuper(pel=2, sharp=2, rfilter=4)
rdr_super = rdr.MSuper(pel=2, sharp=2, levels=1)
vb2 = MAnalyse(preNR_super, isb=true, truemotion=false, delta=2, blksize=16, overlap=8, dct=5)
vb1 = MAnalyse(preNR_super, isb=true, truemotion=false, delta=1, blksize=16, overlap=8, dct=5)
vf1 = MAnalyse(preNR_super,isb=false, truemotion=false, delta=1, blksize=16, overlap=8, dct=5)
vf2 = MAnalyse(preNR_super,isb=false, truemotion=false, delta=2, blksize=16, overlap=8, dct=5)
KEEP = "0.2"
NR = rdr.MDegrain2(rdr_super,vb1,vf1,vb2,vf2,thSAD=480).FluxSmoothST(5,5).unsharpmask(20,1,0)
\.mt_adddiff(mt_makediff(rdr,filtered,U=3,V=3).mt_lut("x 128 - abs 1 < x x 128 - abs 1 - "+KEEP+" * x 128 - x 128 - abs 0.001 + / * 128 + ?",U=2,V=2),U=3,V=3) # Повышение резкости
a = NR.degrainmedian(mode=2,limity=5,limituv=6).VagueDenoiser(threshold=0.8, method=1, nsteps=6, chromaT=0.8)
SeeSaw(NR, a, NRlimit=3, NRlimit2=4, Sstr=1.5, Slimit=5, Spower=5, Sdamplo=6, Szp=16)
dull = last
sharp = dull.LimitedSharpenfaster(ss_x=3.0,ss_y=3.0,smode=3,strength=270,overshoot=3)
#sharp = dull.Limitedsharpenfaster(strength=300,overshoot=0, Smode=3, soft=-1)
Soothe(sharp,dull) # DeBanding
GradFun2DBmod(thr=1.4,thrC=1.8,mode=2,str=0.8,strC=0.0,temp=70,adapt=64) # ==== 3. Возврат к интерлейсному виду ==== AssumeTFF().SeparateFields().SelectEvery(4, 0, 3).Weave() # TFF
AutoYUY2() # or ConverttoYUY2(interlaced=true)
|
|
Andrew_Ukraine
Стаж: 16 лет 1 месяц Сообщений: 15
|
Andrew_Ukraine ·
22-Авг-11 22:21
(спустя 1 час 13 мин., ред. 22-Авг-11 22:21)
спасибо, буду пробовать, а те строки которые закоментированы пусть так и остаются: yadifmod, RemoveColorBleeding(),filtered = RemoveDirtMC(source,40)? а можно в этот скрипт вписать FFT3dGPU-хочу немного процессор разгрузить
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
22-Авг-11 22:29
(спустя 7 мин.)
Andrew_Ukraine
Есть желание, вписуйте свой fft3dgpu вместо всего скрипта. Только тогда зачем уж вся эта возня с деинтерлейсом и обратным преобразованием, если fft3dfilter спокойно обрабатывает интерлейсное видео вообще без проблем.
|
|
Andrew_Ukraine
Стаж: 16 лет 1 месяц Сообщений: 15
|
Andrew_Ukraine ·
22-Авг-11 22:36
(спустя 6 мин.)
Tempter57 понял, буду пробовать
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
23-Авг-11 13:30
(спустя 14 часов, ред. 23-Авг-11 13:30)
Andrew_Ukraine
Тот скрипт, который вы показали на forum.ixbt.com ветки AviSynth написан videoFred и отредактирован мной вообще-то для старых архивных 8 мм пленок, которые снимались на камеры в годах этак 70х. Интерполлятор в скрипте предназначен для изменения частоты кадров до 25 fps, поскольку у этих старых плёночных камер были две частоты: PAL: 16.6666 или 18.75 fps. Помимо этого в скрипте применяется стабилизация изображения по 20 пикселей по сторонам, от этого приходится сильно кропать изображение. В VHS не нужна столь мощная стабилизаци изображения, там максимум необходимо снять дрожание изображения 2-4 пиксиля, взгляните на скрипт Stab.avs.
Если вы встречаете в скрипте любимый fft3dgpu вместе с векторным анализом оценки движения и его функциями, то вы, конечно, можете несколько разгрузить CPU, но не насталько. чтобы существенно увеличить скорость обработки. Плагин mvtools2 и его функции требуют довольно длительной обработки и здорово нагружают CPU. Я приведу вам несколько типов шумоподвления, где в скрипте задействуется fft3dgpu.
1) В качестве предварительного шумоподавителя для векторного анализа, что анализ не отвлекался на детали шума, а концентрировал своё внимание на объктах движения:
скрытый текст
source = last
setmtmode(5)
preNR = source.degrainmedian(mode=3,limity=8,limituv=8).fft3dgpu(wintype=1,degrid=1,bw=16,bh=16,ow=8,oh=8,bt=1,sigma=3.75,sigma2=3.0,sigma3=2.7,sigma4=1.0,plane=4) setmtmode(2)
dct = 0 # dct = 5 при мерцании по яркости
preNR_super = preNR.MSuper(pel=2, sharp=2, rfilter=2)
source_super = source.MSuper(pel=2, sharp=2, levels=1)
vb3 = MAnalyse(preNR_super,isb=true, truemotion=false, delta=3, blksize=16, overlap=8, lambda=2000, search=5, dct=dct)
vb2 = MAnalyse(preNR_super,isb=true, truemotion=false, delta=2, blksize=16, overlap=8, lambda=2000, search=5, dct=dct)
vb1 = MAnalyse(preNR_super,isb=true, truemotion=false, delta=1, blksize=16, overlap=8, lambda=2000, search=5, dct=dct)
vf1 = MAnalyse(preNR_super,isb=false,truemotion=false, delta=1, blksize=16, overlap=8, lambda=2000, search=5, dct=dct)
vf2 = MAnalyse(preNR_super,isb=false,truemotion=false, delta=2, blksize=16, overlap=8, lambda=2000, search=5, dct=dct)
vf3 = MAnalyse(preNR_super,isb=false,truemotion=false, delta=3, blksize=16, overlap=8, lambda=2000, search=5, dct=dct)
maskp1 = MMask(vf1, kind=1, ysc=255).UtoY()
maskp2 = MMask(vf2, kind=1).UtoY()
maskp3 = MMask(vf3, kind=1).UtoY()
maskp4 = MMask(vb1, kind=1, ysc=255).UtoY()
maskp5 = MMask(vb2, kind=1).UtoY()
maskp6 = MMask(vb3, kind=1).UtoY()
Frames = 3
divdr=1/(Frames * 2.0)
maskf = average(maskp1,divdr,maskp2,divdr,maskp3,divdr,maskp4,divdr,maskp5,divdr,maskp6,divdr).spline36resize(source.width,source.height)
smooth = preNR.GradFun2DB(1.01)
source2 = mt_merge(source,smooth,maskf,Y=3,U=3,V=3)
KEEP="0.3" # подобрать коэффициент возврата зерна
NR = source2.MDegrain2(source_super,vb1,vf1,vb2,vf2,thSAD=400)
\.mt_adddiff(mt_makediff(source,preNR,U=3,V=3).mt_lut("x 128 - abs 1 < x x 128 - abs 1 - "+KEEP+" * x 128 - x 128 - abs 0.001 + / * 128 + ?",U=2,V=2),U=3,V=3)
2. В качестве шумоподавителя совместно с функцией MCompensate или MFlow:
скрытый текст
source = last
super = source.MSuper(pel=2, sharp=2, rfilter=2)
b1v = MAnalyse(super, isb=true, truemotion=false, delta=1, blksize=16, overlap=8)
f1v = MAnalyse(super,isb=false, truemotion=false, delta=1, blksize=16, overlap=8)
cf1 = MCompensate(source, super, f1v, thSCD1=400)
cb1 = MCompensate(source, super, b1v, thSCD1=400)
interleave(cf1, source.MDegrain1(super,b1v,f1v,thSAD=270), cb1)
setmtmode(5)
fft3dgpu(wintype=1,degrid=1,bw=32,bh=32,ow=16,oh=16,bt=3,sigma=3.2,sigma2=2.5,sigma3=2.2,sigma4=2.5,plane=4)
setmtmode(2)
selectevery(3,1)
NR = last
В качестве пост-обработки после MDegrain1...3 (тип Molotov):
скрытый текст
source = last
preNR=source.degrainmedian(limitY=3,limitUV=4,mode=1)
preNR_super = preNR.MSuper(pel=2, sharp=2, rfilter=2)
source_super = source.MSuper(pel=2, sharp=2, levels=1)
vb3 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=3, blksize=8, overlap=4, chroma=false)
vb2 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=2, blksize=8, overlap=4, chroma=false)
vb1 = MAnalyse(preNR_super, isb=true, truemotion=true, delta=1, blksize=8, overlap=4, chroma=false)
vf1 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=1, blksize=8, overlap=4, chroma=false)
vf2 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=2, blksize=8, overlap=4, chroma=false)
vf3 = MAnalyse(preNR_super,isb=false, truemotion=true, delta=3, blksize=8, overlap=4, chroma=false)
source.MDegrain3(source_super,vb1,vf1,vb2,vf2,vb3,vf3,thSAD=400)
setmtmode(5)
MergeLuma(deen("a2d",3,0,18),\
fft3dgpu(wintype=1,bt=4,bw=24,bh=24,ow=12,oh=12,degrid=1,sigma=3.2,sigma2=2.5,sigma3=2.3,sigma4=2,plane=0))
setmtmode(2)
NR = last
Любой из них вы можете применить в качестве раздела ШУМОПОДАВЛЕНИЕ в скрипте VHS MDegrain2 LS, но для этого вам будет необходимо подключить в скрипт плагины задействованных фильтров.
И наконец реально вам ускорит процесс обработки при использовании в качестве основного в разделе ШУМОПОДАВЛЕНИЕ:
скрытый текст
FFT3DGPU(bw=16,bh=16,oh=8,ow=8,bt=4,sigma=3.5,sigma2=2.7,sigma3=2.2,sigma4=1.5,sharpen=0.6,plane=4)
При этом в скрипте VHS MDegrain2 LS можно будет удалить и строки, касаемые повышения резкости изображения.
|
|
unreal666
Стаж: 16 лет 10 месяцев Сообщений: 1713
|
unreal666 ·
23-Авг-11 13:54
(спустя 24 мин.)
Т.к. отдельной темы по AviSynth'у без всяких "помогите" в названии не нашел, то буду здесь выкладывать свои вспомогательные функции:
функция для замены в строках:
Код:
function ReplaceStr(string S, string OldPattern, string NewPattern, bool "ReplaceAll", bool "IgnoreCase", string "StartS") {
ReplaceAll=Default(ReplaceAll, true)
IgnoreCase=Default(IgnoreCase, false)
StartS=Default(StartS, "")
pos = IgnoreCase ? FindStr(LCase(S), LCase(OldPattern)) : FindStr(S, OldPattern)
(pos > 0) ? eval("""EndS = MidStr(S, pos+StrLen(OldPattern))
StartS = StartS + LeftStr(S, pos-1) + NewPattern""") : eval(""" EndS = S """)
return ((pos > 0) && (ReplaceAll==true)) ? ReplaceStr(EndS, OldPattern, NewPattern, ReplaceAll, IgnoreCase, StartS) : StartS + EndS
} #~ StartS - это вспомогательный аргумент ф-и для предотвращения бесконечной рекурсии и неправильной замены при ReplaceAll=true
#~ Для вызова ф-и из скрипта его не надо учитывать/использовать
|
|
TurboPascal7
Стаж: 15 лет 6 месяцев Сообщений: 668
|
TurboPascal7 ·
23-Авг-11 14:04
(спустя 9 мин.)
unreal666
А можно посмотреть пример, в котором вы это использовали? Или так, прикола ради?
|
|
unreal666
Стаж: 16 лет 10 месяцев Сообщений: 1713
|
unreal666 ·
23-Авг-11 16:13
(спустя 2 часа 9 мин.)
TurboPascal7
Он мне нужен для другой еще не до конца сделанной вспомогательной функции.
|
|
Andrew_Ukraine
Стаж: 16 лет 1 месяц Сообщений: 15
|
Andrew_Ukraine ·
23-Авг-11 19:01
(спустя 2 часа 47 мин.)
Tempter57
по скрипту VHS MDegrain2 LS у меня 2 вопроса:
1) в самом начале скрипта AssumeTFF() - ставить верхнее поле первым? (при захвате ставит по умолчанию верхнее первым, если нужно-могу принудительно поменять)
2) setmemorymax(640) - оставлять 640 или можно увеличить?
Спасибо за наведенные скрипты шумоподавления, надеюсь с вашей помощью я наконецто хотябы скрипт составлю, а дальше уже проще будет.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
23-Авг-11 19:17
(спустя 15 мин.)
Andrew_Ukraine
1) в VHS первое поле -нижнее, поэтому следует ставить , как в исходнике AssumeBFF()
2) можно и оставить, можно и увеличить, только зачем вам это, что не устраивает?
|
|
Andrew_Ukraine
Стаж: 16 лет 1 месяц Сообщений: 15
|
Andrew_Ukraine ·
23-Авг-11 19:22
(спустя 5 мин.)
Tempter57
а если у меня уже видео оцифровано с VHS с перыв полем - верхним, нужно заново захватывать или и так пойдет или в скрипте поставить TFF?
хм по скрипту VHS MDegrain2 LS видео длительностью 1мин-будет обрабатывать 38мин...как-то очень долго, е процесор не на 100% загружен, так должно быть?
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
23-Авг-11 19:50
(спустя 28 мин.)
Andrew_Ukraine
1)если видео идёт нормально и нет рывков туда -сюда, то ввероятно надо ставить AssumeTFF(), смотрите, что вам говорит по оцифрованному исходнику MediaInfо.
2)Скорость обработки увеличится, если впишите в свой скрипт setmtmode(5,2). Куда?, вот пример, первый скрипт, выделено красным https://rutr.life/forum/viewtopic.php?p=47084648#47084648
Я вообще сразу помните какой скрипт дал для обработки VHS? Кому захотелось лезть в дебри AviSynth, абсолютно к этому не подготовленным? Вообще слишком много от вас вопросов для меня одного, надо пытаться и самому что-то осваивать. Вот ваша специализированная ветка https://rutr.life/forum/viewtopic.php?t=2400646
|
|
Andrew_Ukraine
Стаж: 16 лет 1 месяц Сообщений: 15
|
Andrew_Ukraine ·
23-Авг-11 19:57
(спустя 6 мин.)
Tempter57
ок, спасибо вам.
|
|
Wistle2
Стаж: 16 лет Сообщений: 16
|
Wistle2 ·
18-Сен-11 11:15
(спустя 25 дней)
ПОДСКАЖИТЕ ПОЖАЙЛУСТА КАК ПРЕОБРАЗОВАТЬ ФИЛЬМ 1,4 ГБ В 700 МБ И ФИЛЬМ DVD В 700 МБ
|
|
unreal666
Стаж: 16 лет 10 месяцев Сообщений: 1713
|
unreal666 ·
19-Сен-11 04:34
(спустя 17 часов)
Wistle2
А 1-ый пост темы посмотреть?
|
|
Areyou
Стаж: 15 лет 11 месяцев Сообщений: 1700
|
Areyou ·
19-Сен-11 08:15
(спустя 3 часа, ред. 19-Сен-11 08:15)
Tempter57 писал(а):
в VHS первое поле -нижнее
Такая закономерность имеет место только в DV-камерах (и PAL, и NTSC выводятся в DV-avi с BFF), причем для PAL там это сделано искусственно - при стандартном (по BT.601) захвате PAL как раз получается TFF, для NTSC - BFF. В любом случае, вход скрипта надежнее проверить простым тестом (никакой mediainfo не даст надежных данных):
AssumeTFF().Bob()
если TFF, то при покадровом просмотре будет двигаться правильно, иначе - это BFF
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
19-Сен-11 08:38
(спустя 23 мин., ред. 21-Сен-11 12:45)
Wistle2
Взять и перекодировать в размер 700 МБ, пресетом кодирования XviD 2P 1СD Extreme:
Код:
video codec:
XviD video cli:
-qtype 0 -vhqmode 1 -nopacked -bquant_ratio 162 -bquant_offset 0 -lumimasking -max_key_interval 250 -quality 5 -zones 0,q,3.0 -notrellis -nochromame -turbo
-qtype 0 -vhqmode 4 -nopacked -bquant_ratio 162 -bquant_offset 0 -lumimasking -max_key_interval 250 -quality 6 -size 696000 -bvhq -vbvmax 4854000 -vbvsize 3145728 -chigh 30 -clow 15 -imin 3 -pmin 3 -bmin 3
Пресет с этим именем находится в папке: С:\Program Files\XviD4PSP 5\presets\encoding\AVI Hardware\video, выберите его в окне Кодирование видео проги XviD 4PSP. Можно во втором проходе выбрать и -imin 2 -pmin 2 -bmin 2, если средние кванты окажутся ниже 3, хотя вряд ли на таком малом размере.
Помимо этого, имея такой малый размер, имеет смысл перекодировать звуковую дорожку в .mp3. Это позволит больший размер выделить видео и повысить его качество. Areyou
К чему вы это написали, вы полагаете , что сделали для меня открытие по полям интерлейсных камкодеров? Я своё сообщение делал по VHS, имелось в виду записи фильмов на видеокассетах бытовых видеомагнитофонов.
unreal666 писал(а):
Wistle2
А 1-ый пост темы посмотреть?
На месте модераторов я бы этот пост с кучей ошибок по написанию столь простого скрипта AviSynth и ничтожной инструкции настроек кодека XviD в VirtualDub уничтожил бы полностью. Не гоже на столь уважаемом трекере иметь столь дешёвую инструкцию по кодированию XviD в VirtualDub.
|
|
Areyou
Стаж: 15 лет 11 месяцев Сообщений: 1700
|
Areyou ·
19-Сен-11 20:26
(спустя 11 часов)
Tempter57 писал(а):
К чему вы это написали
В поисках источника недоразумения относительно порядка полей при захвате VHS и достоверности данных о нем же в MediaInfo, куда вы отправили автора вопросов (это скорее, в его интересах, а вы можете продолжать думать по-прежнему, у меня нет настроения спорить и выяснять, что вы знаете, а чего - нет).
|
|
Mikky72
Стаж: 17 лет 7 месяцев Сообщений: 8498
|
Mikky72 ·
19-Сен-11 22:55
(спустя 2 часа 29 мин.)
Tempter57 писал(а):
На месте модераторов я бы этот пост с кучей ошибок по написанию столь простого скрипта AviSynth и ничтожной инструкции настроек кодека XviD в VirtualDub уничтожил бы полностью
У меня, если честно, руки давно чешутся. Но просто по трекреру в разных топиках поминают этот адрес как место, где можно задать вопросы по данной тематике. А тупо начать топик с каких-то мнений по поводу, а не с инструкции тоже как-то не очень...
Если накидаете более приличную инструкцию с огромным удовольствием и признательностью поставлю её в начало топика.
|
|
Tempter57
Стаж: 16 лет 1 месяц Сообщений: 4959
|
Tempter57 ·
20-Сен-11 11:06
(спустя 12 часов, ред. 20-Сен-11 11:06)
Mikky72
Когда-то было здесь на технической ветке выставлено Изготовление высококачественных DVD-рипов вездеходов. Концепт руководство.. Помнится автор был тот же, только ник на нашем трекере у него был иной. Не знаю кто из модераторов это руководство убрал в муссорку. Автору надо было это руководство несколько разбавить скриншотами, дополнить информацией по кодеку XviD отсюда и немного довавить информации о новых опциях XviD 1.3.2. Возможно потом можно было добавить и две мои статьи по настройкам кодека XviD: "Особенности кодирования кодеком XviD+ VAQ" и "Методика подбора битрейта под ваш исходник для получения оптимального по качеству рипа", написанные для XviD 4PSP 5.0 и лежащие в папке С:\Program Files\XviD4PSP 5\docs или на сайте videorip.info. Получилась бы хорошая мануалка.
|
|
elvette
Стаж: 13 лет 1 месяц Сообщений: 11
|
elvette ·
25-Сен-11 10:46
(спустя 4 дня)
Я не претендую на звание "умный"... Но по приведённым ссылкам на AviSynth и DGIndex & dgdecode.dll, в скачанном, после установки и распаковки соответственно нету exe-файлов. Т.е. нет программы AviSynth и DGIndex.
|
|
shurikkein
Стаж: 18 лет 1 месяц Сообщений: 666
|
shurikkein ·
25-Сен-11 10:59
(спустя 13 мин., ред. 25-Сен-11 10:59)
elvette В ависинте и нет екзешника, там dll.
DGIndex Вы , случаем, не исходники скачали?
|
|
|