
Mi Canon 60D crea archivos .MOV al grabar video y descubrí que el contenedor .MOV tiene una transmisión de video H264 y una transmisión de audio PCM.
He usado ffmpeg y GSpot para ver algunos de mis videos y veo tasas de bits bastante altas (22,000 kbps para 640x480, 45,000 para 1920x1080).
Me gustaría reducir el tamaño de los archivos, pero mantener la calidad bastante alta. He jugado con la cosa más simple que se me ocurrió, reducir la tasa de bits y eso hace lo que esperaba: reducir la tasa de bits a la mitad y el tamaño del archivo es aproximadamente la mitad. Pero me pregunto si hay una manera de determinar una tasa de bits objetivo "buena", o si tiene algún sentido intentar lograr una tasa de bits variable.
Respuesta1
Pero me pregunto si hay una manera de determinar una "buena" tasa de bits objetivo...
Una buena tasa de bits objetivo es aquella que:
- es compatible con la red desde la que estás transmitiendo el material (por ejemplo, una red 3G, WiFi doméstica, etc.), lo cual es bastante fácil de calcular
- se ve bientú, que es una medida muy subjetiva
22 Mbit/s o 45 Mbit/s son bastante altos para el usuario medio, y especialmente para vídeos ya comprimidos como h.264. Definitivamente podrías seguir adelante y reducir la tasa de bits a un valor "sano", siempre teniendo en cuenta la capacidad de almacenamiento que puedes permitirte y la calidad que quieres perder.
También puedes cambiar el tamaño del vídeo de 1080p a 720p si realmente no necesitas el tamaño o no tienes la capacidad de procesamiento para editarlo.
… o si tiene algún sentido intentar hacer una tasa de bits variable
El objetivo de la tasa de bits constante es adaptarse a un escenario de transmisión de medios donde hay un cuello de botella que limita la tasa de bits máxima del video transmitido. En el mundo multimedia actual, esto ya no tiene necesariamente sentido.
Cuando comprimes un video en una cantidad constante de bits por segundo, básicamente le dices a un codificador que use siempre la misma cantidad de bits para codificar el mismo período de tiempo. ¿Es ese el mejor enfoque? Como ya habrás adivinado, no lo es. Citando elGuía CRFde Handbrake (volveré a esto más adelante):
El ojo percibe más detalles en objetos inmóviles que cuando están en movimiento. Debido a esto, un compresor de video puede aplicar más compresión (eliminar más detalles) cuando las cosas se mueven y aplicar menos compresión (retener más detalles) cuando las cosas están quietas. Subjetivamente, el vídeo parecerá tener mayor calidad.
Por lo quehaceTiene sentido utilizar una velocidad de bits variable siempre que sea posible. Hará que el vídeo se vea mejor, incluso con el mismo tamaño de archivo que un vídeo con una velocidad de bits constante.
Aún más, la mayoría de los codificadores (el más famoso esx264– realizar a menudomuymalo cuando les dices que usen una velocidad de bits constante. Es mejor darles un poco más de "libertad" en el sentido de cuántos bits quieren gastar en un marco. Después de todo, ese es el trabajo del codificador y no el tuyo. Y eso se llama "calidad constante".
Ya basta, ¿qué significa eso en la práctica? Si usa FFmpeg para codificar videos, entonces ya está usando una herramienta suficientemente buena. Si ahora también tienes x264 instalado y usas la última versión de ambos, entonces estás usando uno de los mejores codificadores que están disponibles de forma gratuita actualmente. En lugar de codificar con una velocidad de bits fija, deje que x264 elija cuánto quiere gastar. Haga esto usando elFactor de tasa constanteopción.
En un caso muy simple, esto significa establecer un valor entre 17 y 23. Elijo MP4 como contenedor de salida en lugar de MOV porque haymejores herramientaspara remultiplexación disponible:
ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4
Cuanto menor sea el valor, mejor será la calidad y mayor será el resultado. Viceversa, cuanto más alta, menor es la calidad. Al mismo tiempo, por supuesto, reducirá la tasa de bits promedio necesaria. Controlarla guía de codificación x264para más información sobre ffmpeg
.
Su tarea ahora es encontrar un valor CRF que:
- reduce la tasa de bits general hasta el punto que puede permitirse
- no reduce demasiado la calidad, para que el vídeo siga viéndose bien
Sí, esto implica mucha codificación y prueba y error, pero esto es un asunto diario cuando sintonizas y codificas un video.
Ah, y si no te gusta la línea de comando,freno de manoes una herramienta gratuita multiplataforma que hace exactamente lo mismo. Incluso tiene un control deslizante CRF:
Respuesta2
Pruebe la CLI de HandBrake
Quería reducir algunos archivos MOV y no me importaba conocer todos los detalles sobre las opciones de video.CLI de freno de manoes lo que usé. Los ajustes preestablecidos son buenos:
HandBrake ofrece ajustes preestablecidos codificados y nuevos de fábrica que son exactamente iguales a los ajustes preestablecidos integrados en MacGui.
En mi caso, esto funcionó muy bien:
HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"
Sin ajustes preestablecidos, la salida fue muy pequeña pero no de buena calidad. El ajuste preestablecido "Normal" me pareció bueno, pero puedes ver otros disponibles con HandBrakeCLI --preset-list
o modificar todas las opciones tú mismo si lo prefieres.