Tenga en cuenta que para esto, siempre debe usar la última versión de ffmpeg y preferiblemente compilarla usted mismo . Esto le da acceso a la libx265 y libfdk-aac más recientes para la codificación de audio.
Además, el ahorro en la velocidad de datos será bastante drástico si va de un DVD de ~ 10 MBit / s a alrededor de 1–2 MBit / s para video H.264 y 0.5–1 MBit / s para video H.265. Cambiar la calidad en los pasos a continuación puede influir en las tasas de bits, pero aún así la reducción de datos debería ser significativa.
H.264
Para el control de calidad / velocidad, desea utilizar el modo CRF en libx264 en lugar de una tasa de bits constante. El uso de CRF garantiza que se mantenga una calidad promedio, independiente de la resolución de video original o su complejidad. La velocidad de bits constante solo es realmente útil si está limitado por el medio de transmisión (por ejemplo, la velocidad del disco duro, el rendimiento de Internet).
Elegir el valor CRF es la parte difícil. Requiere que mires la salida. El valor predeterminado para libx264 (23) ofrece una compensación bastante buena entre tamaño y calidad. Pero dado que su fuente original ya está comprimida (y no con una muy buena calidad en comparación con los Blu-rays), es posible que desee cambiar el CRF para que sea un poco más bajo, como 20. Esto aumentará la tasa de bits necesaria en aproximadamente un tercio .
Elija el preajuste de acuerdo con el tiempo que desea esperar. slow
Parece un buen valor aquí.
ffmpeg -i input \
-c:v libx264 -crf 20 -pix_fmt yuv420p \
-x264-params keyint=240:min-keyint=20 \
-preset:v slow -profile:v baseline -level 3.0 \
-c:a libfdk_aac -vbr 4 \
output.mp4
El codificador incorporado ffmpeg AAC se puede usar si libfdk-aac no está disponible. Usar en -c:a aac -strict experimental -b:a 128k
lugar de -c:a libfdk_aac -vbr 4
.
H.265
La investigación sugiere que el uso de HEVC conducirá a un ahorro de hasta el 74% de la tasa de bits en comparación con H.264. Esto se basa en datos de visualización subjetivos de secuencias Ultra-HD. Por supuesto, depende de la complejidad temporal del contenido de origen, y la cantidad de datos guardados no será tan alta para secuencias difíciles de codificar. De cualquier manera, puede decir con seguridad que la reducción de datos del 50% es absolutamente posible.
El CRF predeterminado para libx265 es 28. Al usar el mismo contenido de origen, se obtiene aproximadamente la mitad de la tasa de bits en comparación con libx264 en CRF 23. Esto es independiente de la tasa de bits real, es decir, si la versión H.264 toma 1.5 MBit / s, entonces H.265 usará alrededor de 750 kBit / s, pero es 750 kBit / s vs. 350 kBit / s para otra secuencia. Lo ejecuté en un par de secuencias con resolución DVD-PAL y no pude notar la diferencia en términos de calidad.
ffmpeg -i input \
-c:v libx265 -pix_fmt yuv420p \
-x265-params crf=28:keyint=240:min-keyint=20 \
-preset:v slow \
-c:a libfdk_aac -vbr 4 \
output.mp4
Para obtener más información, aquí están los recursos relevantes:
keyint
en x264 / X265 es el intervalo entre IDR-tramas, es decir, el intervalo entre fotogramas clave a la que puede que el decodificador de actualización. En el medio, puede haber cuadros I sin fotogramas clave, por ejemplo, cuando se produce un corte de escena. Es equivalente al-g
parámetro si no me equivoco.-c:a aac -strict experimental
que se indica en mi respuesta. Y estoy de acuerdo, no trataría de construirlo en Windows.libopus > libvorbis >= libfdk_aac > aac > libmp3lame >= libfaac >= eac3/ac3 > libtwolame > vorbis > mp2 > wmav2/wmav1
menor: solo para AAC: (porque es un poco confuso, con 3 codificadores disponibles):libfdk_aac > aac > libfaac
el signo> = significa mayor o igual calidad."