Contempo: Consejos para encodear

Consejos para encodear

Algunos consejos a la hora de encodear.

Encodea con comandos


Puedes utilizar el encoder x264 directamente con comandos, aunque después tendrás que encodear el audio con otra herramienta y unir todo con otra cosa. Así que mejor encodea con FFmpeg, se encarga de codificar y unir video/audio en una sola linea de comando. Avisynth es una molestia, hay que editar un archivo con ordenes creadas por extraterrestres.

Los encoders con interfaz gráfica tienen opciones limitadas, a veces se caen, son lentos, y hay que esperar que implementen opciones por interfaz.

CRF es mejor que bitrate constante


El encodeo de bitrate constante limita la misma cantidad de bits (según la prefijada) para cada imagen, ya sea con mucho o poco movimiento, y eso también es un desperdicio de bits que no son utilizados de mejor forma.

En cambio CRF se preocupa de brindar una calidad de imagen constante (pero no bitrate constante), otorgando los bits necesarios para cada escena, no limita el uso de bits y no desperdicia nada. Por ende siempre usa CRF en x264 (H.264/AVC) y vpx (VP8/VP9).

No confíes en el peso de un video y bitrate


Un video de peso pequeño puede tener mejor calidad de imagen que uno de peso grande, pero esto depende totalmente del tipo de encodeo.

Por ejemplo un encodeo de bitrate constante con compresión rápida puede crear archivos grandes debido al desperdicio de bits, pero en CRF con compresión lenta puede tener menor peso y hasta menos bitrate general, y aún así tener mejor calidad de imagen. Por esto es bueno encodear con CRF (mejor aún si es un CRF bajo con compresión lenta). Aunque un video con mucha acción puede pesar mucho más (si utiliza un CRF bajo).

Si encodeas una serie y cada capítulo dura lo mismo pero tienen peso diferente, no te preocupes, el CRF decidió que cantidad de bits usar y así preservar la calidad de cada uno, por eso el peso varia.

Usa 10bit


Comúnmente la mayoría de las fuentes (Blu-ray, HDTV) vienen en 8bit de profundidad de color, ¿entonces por qué encodear a 10bit en H.264? La gracia de pasar 8bit a 10bit es que nos ahorramos problemas de degradado de colores, los típicos cuadrados e imperfecciones con fondos de tonos oscuros, y así no tenemos que utilizar filtros que retoquen la imagen para combatir el banding. Otra cosa es que 10bit ayuda a disminuir el peso del video.

Además H.265/HEVC también utilizará un perfil 10bit, y se están desarrollando extensiones para soportar 12bit para el 2014. 8bit utiliza hasta 256 tonos por color, 10bit hasta 1024 tonos y 12bit hasta 4096 tonos.

Usa audio sin pérdidas con FLAC


El problema del audio DTS y Dolby Digital, es que ambos traen pérdida de calidad de audio, así que deja de utilizarlos. Usa LPCM, DTS-HD MA o Dolby TrueHD que son sin pérdidas, y pásalos a FLAC. Lo único que hace FLAC es comprimir externamente y mantener el audio sin pérdidas de calidad, es como un zip de audio. Y mantén la profundidad de audio de 24-bit, con una frecuencia de muestreo de 48kHz (usada actualmente en blu-rays), aunque en realidad no necesitas más de 44kHz a 16-bit (calidad CD), pero si viene por defecto nos ahorramos re-encodeos. FLAC soporta hasta 8 canales de audio y 32 bits de profundidad.

Usa estéreo 2.0, el sonido 5.1 es redundante


El problema con el sonido 5.1 es que divide la señal estéreo para 6 altavoces que tienen que ir posicionados alrededor tuyo en 360º grados, si no lo usas de esa forma entonces no sirve de nada, y solamente lo usan en películas. Eso es redundante, pone bits extras, además de ser un gasto digital y físico innecesario. En cambio estéreo 2.0 gasta lo necesario en bits y calidad de audio al usar solo dos altavoces al frente, todos los sonidos están ahí. Estéreo 2.0 se encuentra por defecto en todos los equipos, y todas las series/películas/juegos/música lo incluyen. Además en UHDTV se implementarán los 22.2 canales de audio ¿te imaginas 22 altavoces alrededor tuyo?. Pero estéreo 2.0 seguirá ahí siempre. En el caso de no incluirse estéreo 2.0 sin pérdidas de sonido (ver codecs de arriba), entonces usa 5.1 de algunos de los codecs sin pérdidas.

Usa subtitulos flotantes blancos, no los pegues


Por favor no te atrevas a pegar subtitulos o logos al video (hardsub), eso arruina la calidad del video totalmente. Esto va dedicado a todos los Fansubs en español: utilicen subtitulos flotantes (softsub) en blanco con fuente sans-serif, nada de colores ni karaokes que nadie volverá a leer por segunda vez. Si es un SRT (SubRip) dentro de un MKV mejor aún.

Usa contenedor MKV


MKV soporta una ilimitada cantidad de codecs de video/audio, con pistas de múltiples subtítulos, y marcas de capítulos (ideal para video con intros o adelantos como en series). MP4 solo sirve para contenido RAW y su soporte de codecs es limitado. MKV es soportado en hardware reciente. Y el contenedor siempre se está actualizando en FFmpeg, gracias al equipo de desarrollo abierto, Matroska.

No uses filtros para "mejorar" la imagen


No pongas filtros de pastelación o agudizar lineas (especialmente los Fansubs), solo estás arruinando el video. Intenta preservar la fuente del video lo más que puedas, y eso se hace no poniendo sobrefiltros de imagen. El granulado del blu-ray está ahí para dar detalle y textura a la imagen, déjalos.

No toques el balance de colores


Deja todos los colores, brillos, contrastes y gama intactos. Si la fuente es buena no es necesario, y como ahora todo es Blu-ray o HDTV no es necesario, a menos que estés encodeando material para re-masterizar de una cinta magnética. Aunque en realidad ahí tendrías que escanear y limpiar imperfecciones, pero ese es otro tema.

Mantén la resolución o bájala, pero no la subas


Subir la resolución de imagen de un video hace mal, estás dando pixeles y lineas que no existen y se distorsiona la imagen. Mantener la resolución de imagen o bajarla no brinda esos problemas. Cuidado con las supuestas resoluciones 1080p que no lo son, común en series de anime.

Mantén la relación de aspecto


La mayoría de los casos hay que dejar el aspecto de imagen intacto de una fuente, he visto hasta canales de tv metiendo el dedo y modificandolo. Esta es una de las razones de porqué una transmisión SD en 4:3 se ve mal en un televisor HDTV 16:9, se ve estirado a lo ancho (a parte de la falta de pixeles y lineas). También depende del caso, por ejemplo si hay una imagen cortada y debe realizarse un letterbox con otro aspecto puede servir.

Usa un FPS estandarizado


Los FPS (imágenes por segundo) actualmente se utilizan hasta los 30 o 24 FPS en consumo masivo. Si la fuente viene en 60 y sabes que la verán en reproductores de consumo masivo, entonces es demasiado y lo debes dejar en 30, debido a que todos los reproductores blu-ray ven los videos 1080p hasta 30fps, y la mayoría trae lector de archivos integrado. Además que si decides subirlo a YouTube, el sitio lo puede reproducir hasta 30fps. Pero no estés en contra de los altos FPS, actualmente el cine graba a 24 y se espera que se trasladen a los 48.

Actualización: YouTube ahora soporta videos hasta 60fps a 4K, así que no está demás usarlo.

UHDTV tendrá la capacidad de transmitir hasta 120 FPS progresivos, y HDTV llega hasta los 60, pero eso no quiere decir que hagas todo al máximo, depende del reproductor, así que sé razonable con los dispositivos actuales.

Usa codecs estables y actualizados, no uses packs de codecs


Sé que en Windows muchos usan packs de codecs, pero no lo hagas, se mantienen desactualizados y no sabes que estás instalando. Hay tres opciones en Windows, buscar e instalar separadamente cada decoder, instalar FFdshow tryouts (utiliza Libavcodec) o instalar LAV Filters. En Ubuntu usamos GStreamer que incluye todo, pero estoy acostumbrado a usar Libavcodec directamente en FFmpeg y el reproductor mpv.

Usa un reproductor bueno, nada de adornos


Para todo en reproducción uso MPlayer2 ahora uso mpv, el cual es multiplataforma (Ubuntu, OS X, Windows), es rápido y liviano. En Windows también puedes usar MPC-HC (Media Player Classic Home Cinema). Ambos soportan 10bit y son rápidos. VLC no, es lento como un tractor.

Encodea cuando sea necesario


Si ves que la fuente, por ejemplo de HDTV, tiene buena imagen con la resolución que necesitas y un peso aceptable, entonces déjala intacta, fue tomada de una capturadora de TV que ya encodeo la imagen, por ende re-encodear otra vez afectaría la calidad de imagen. Pero si tiene un peso monstruoso como un blu-ray en 1080p, entonces usa el mismo codec (H.264/AVC en su mayoría) para encodear. Copiar directamente video/audio no es pecado.

Todo es sobre mantener la calidad


Trata de ser lo menos invasivo posible con el video y audio a encodear, intenta no alterarlo demasiado, que se vea lo más parecido a la fuente original. Si tienes que usar más espacio para mantener un nivel de calidad comparable a la fuente, entonces hazlo. Si tienes tiempo para hacer un encodeo mejor, entonces hazlo. Deja de quejarte del tamaño del archivo, la calidad de imagen y sonido lo es todo. Y deja de usar codecs pésimos y configuraciones que sacrifican calidad por tener compatibilidad con tu teléfono.

Atento a la nueva generación de codecs


Si, H.264/AVC es un sueño con su encoder x264, pero no te apegues demasiado. Ya están apareciendo encoders privados para H.265/HEVC, y el nuevo encoder abierto x265, que está basado en el código fuente de x264. VP9 (video) y Opus (audio) son otros a considerar, a pesar de ser orientados para su uso en web y streaming, son buenos aliados y abiertos, pero todavía están en etapa temprana al igual que H.265/HEVC. Hay que estar observando su progreso como nuevos codecs y encoders, ver su uso orientado para televisoras, discos de consumo e Internet.

Siempre investiga sobre que tiene mejor desempeño, o lo próximo en venir, como el codec de video Daala. Se supone que Daala replanteará la forma en como las imágenes son tratadas al encodear y decodificar un video, incluso piensa ser superior a H.265/HEVC. Daala es desarrollado por Xiph, el mismo equipo tras FLAC, Vorbis y Theora.

Y atento con las resoluciones 4K y 8K para UHDTV, ya se están comercializando televisores con esas resoluciones. H.265/HEVC será parte primordial en el futuro.

También sigan poniendo el ojo en blu-ray, debido a que en el futuro los blu-ray usarán 4K, agregando más capas al disco y mejor compresor (H.265/HEVC). Pero no confundir con los "Mastered in 4K", debido a que esos utilizan una fuente 4K que fue encodeada a 1080p para el blu-ray.