Avui m'estava barallant amb un vídeo que tenia unes escenes entrellaçades, i la resta del vídeo no.
Després de buscar una mica, he aconseguit fer un script que apliqui un filtre o no depenen de la zona del vídeo que estigui.
Aquí teniu el script, per si a algú li interessa:
Codi: Selecciona’ls tots
# DEINTERLACING (1)
function f_toms(int i) {
return ((i>= 58078 && i<=59108) || (i>= 60038 && i<=60274)) ? 0 : 1
}
v = ConditionalFilter(v, v, TomsMoComp(v,1,5,1), "f_toms(current_frame)", "equals", "1")
#v = ConditionalFilter(v, v, Subtitle(v, "Entrellasat"), "f_toms(current_frame)", "equals", "1")
Codi: Selecciona’ls tots
# PLUGINS
LoadPlugin("D:\TV\GORDIA~1\DGMPGDec\DGDecode.dll")
LoadPlugin("D:\TV\GORDIA~1\AviSynthPlugins\UnDot.dll")
LoadPlugin("D:\TV\GORDIA~1\AviSynthPlugins\TomsMoComp.dll")
# SOURCE
v = mpeg2source("L:\TDT\Dawson's creek -6x24- Totes les coses bones tenen un final (2) _OK.d2v")
# DEINTERLACING (1)
function f_toms(int i) {
return ((i>= 58078 && i<=59108) || (i>= 60038 && i<=60274)) ? 0 : 1
}
v = ConditionalFilter(v, v, TomsMoComp(v,1,5,1), "f_toms(current_frame)", "equals", "1")
#v = ConditionalFilter(v, v, Subtitle(v, "Entrellasat"), "f_toms(current_frame)", "equals", "1")
# CROPPING
crop(v,4,0,714,576)
# DENOISING: choose one combination (or none)
Undot()
mergechroma(blur(1.3))
# RESIZING
LanczosResize(640,472)
Funcio que retorna 0 quan NO volem entrellaçat i 1 quan no.function f_toms(int i) {
return ((i>= 58078 && i<=59108) || (i>= 60038 && i<=60274)) ? 0 : 1
}
En verd fort, l'inici de la primera zona entrellaçada, i en vermell fort, el final de la primera zona entrellaçada.
En verd fluix, l'inici de la segons zona entrellaçada, i en taronja, el final de la segons zona entrellaçada.
Un posible case, sería quan tenim entrellaçats el opening i els credits, aleshores el codi es simplifica:
150 = Frame de final del opening.function f_toms(int i) {
return ((i<=150) || (i>= 60038)) ? 0 : 1
}
60038 = Frame d'inici dels crèdits.
--------
Codi: Selecciona’ls tots
#v = ConditionalFilter(v, v, Subtitle(v, "Entrellasat"), "f_toms(current_frame)", "equals", "1")
----------
Afegit: cas simple dels crèdits finals:
Codi: Selecciona’ls tots
v=ConditionalFilter(v, TomsMoComp(v,1,5,1), v, "current_frame", "greaterthan", "76240")
# v=ConditionalFilter(v, Subtitle(v, "Entrellasat"), v, "current_frame", "greaterthan", "76240")