En artículos anteriores habíamos visto los estándares de emisión de vídeo en Japón. (Fundamentos de la codificación)
Pues bien, es posible que tengamos que vérnoslas con archivos de vídeo «ts» directamente grabados del stream de vídeo de la tele. Esos vídeos puede que vengan en 1125i. Esto es, a 1125 líneas, pero entrelazado. Ah, y evidentemente a 59.94 Hz.
La cuestión es que los vídeos entrelazados no se llevan bien con nuestro ordenadores que les encantan los vídeos «progresive» y no hechos a base de combinar campos.
¿Cómo aplicamos entonces el filtro «inversa telecine» del que hablábamos para obtener un vídeo progresivo a 23.976 fps?
Básicamente se trata de eliminar campos repetidos, vamos a la teoría y luego veremos la práctica. (mis agradecimientos a neuron2.net por su explicación).
Esto es lo que tenemos en una emisión normal:
Imagen 1 | Imagen 2 | Imagen 3 | Imagen 4 | Imagen 5 |
1T | 1T | 2T | 3T | 4T |
1B | 2B | 3B | 3B | 4B |
Cada imagen está formada por dos campos que se emiten a 59.94 Hz. Cuando se reconstruyen en nuestros receptores, los campos se recombinan formando la mitad de imágenes, por lo que tenemos 59.94/2=29.97 imágenes completas por segundo.
El asunto es que algunos campos están repetidos, como es el caso del 1T y 3B. Si eliminamos esos campos obtendríamos lo siguiente:
Imagen 1 | Imagen 2 | Imagen 3 | Imagen 4 |
1T | 2T | 3T | 4T |
1B | 2B | 3B | 4B |
Como en vez de cinco imágenes completas tenemos cuatro, la frecuencia a hora sería de 29.97×4/5=23.976… ¡Qué casualidad! precisamente lo que ando buscando. Con el beneficio de obtener imágenes perfectas y no remezclas de campos diferentes.
Ya tenemos la teoría, ahora vamos a ponerlo en práctica.
Virtualdub
Fácil. Nos vamos a «Vídeo-framerate», nos vamos a la sección «inversa-telecine (3:2 pulldown removal)» y elegimos la opción «Reconstruct from fields – adaptive», que dicen suele ser la mejor.
Avisinth
Simplemente añadir estas líneas a nuestro script:
Telecide(guide=1)
Decimate(5)
Avidemux
Tenemos que aplicar dos filtros:
Decomb Telecide
Nos prepara el vídeo combinando los campos adecuados. Como a veces no lo detecta bien, yo suelo usar los siguietes parámetros:
Estrategia: 3:2 Pulldown
Field order: Superior
Postprocesando: Postproc on best match
Try backward: If still combed.
Lo demás, tal y como está.
Ahora aplicaremos el filtro «Decomb Decimate» que nos hace la reducción de frames (con un ciclo de 5 frames, como hemos visto antes).
Ffmpeg
En este caso los filtros propios de ffmpeg parecen no ir muy bien, echaremos mano de los filtros importados de mplayer que vienen integrados.
ffmpeg -i «xxx» -vcodec libx264 -crf 16 -r 23.976 -acodec pcm_s16le -vf mp=pullup,softskip «salida»
Mencoder
Lo mismo que hemos visto antes, ya que los filtros de ffmpeg vienen importados de mencoder
mencoder dvd://1 -oac copy -vf pullup,softskip
-ovc lavc -ofps 24000/1001 -o «loquesea»
Nos vemos.
pues yo he trabajado con .ts y ocupo la siguiente linea
tfm(pp=7, clip2=tdeint(mode=2,type=3)).tdecimate(mode=1)
GradFun2DB(thr=1.2)
con los siguientes plugins
LoadPlugin(«C:\Program Files\AviSynth 2.5\plugins\TIVTC.dll»)
Import(«C:\Program Files\AviSynth 2.5\plugins\GradFun2DBmod.avsi»)
claro, estos a su vez usan otros plugins, pero con esto me va de maravilla con los .ts y el x264
Lo leí en algún lado de la web, los he aplicado y si que funcionan…
Mmmmmm con sólo leerlo me da dolor de cabeza… Jejeje… Parece interesante.