Handbrake utiliza el codificador x264 para la conversión de video. Hay un sitio con una descripción general de todas las opciones x264 y sus contrapartes FFmpeg . Sin embargo, estos están un poco en desuso y algunas de estas opciones ya no funcionan o podrían haber cambiado de nombre. Debería usar los perfiles x264 para la mayoría de las opciones de detalles, pero llegaremos allí.
Muchas de las opciones básicas de freno de mano (por ejemplo, velocidad de fotogramas) no son específicas de x264, y están dispersas en la documentación en línea de FFmpeg .
Antes de comenzar, verifique que use una versión reciente de FFmpeg. Su sitio de descarga tiene compilaciones estáticas para todos los principales sistemas operativos.
Vamonos:
--input "d:\input.mpg" --output "d:\output.mp4"
La sintaxis de FFmpeg es ffmpeg -i input.mpg … d:\output.mp4
.
--rate 29.97
Especifique la velocidad de cuadros de video con -r 29.97
. (El freno de mano --cfr
solo establece una velocidad de fotogramas constante. No es necesario aquí).
--arate 44.1
Establezca la frecuencia de muestreo de audio con -ar 44100
(en Hz).
--format mp4
No es necesario porque FFmpeg sabe que quieres MP4.
--width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0
Esto no hace nada más que configurar el tamaño a 1920 × 1080. En FFmpeg, hacerlo con -s:v 1920x1080
, o si desea utilizar los filtros, -filter:v "scale=1920:1080"
.
--encoder x264 --vb 5200
Establezca el codificador con -c:v libx264
y la velocidad de bits en constante con -b:v 5200K
. Tenga en cuenta que todavía no estamos allí cuando se trata de configuraciones de calidad.
--aencoder faac --ab 128 --mixdown stereo
Similar a lo anterior, con -c:a libfaac -b:a 128K -ac 2
. Tenga en cuenta que FAAC ya no es compatible con FFmpeg; en su lugar, use el codificador FFmpeg incorporado con -c:a aac -b:a 128K
.
-x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200
Esto establece el modo de codificación en VBV que apunta a un escenario de transmisión en lugar de solo una tasa de bits constante o una calidad constante. La calidad constante también se llama CRF , el valor predeterminado para x264, se llama "Factor de velocidad" en Handbrake. Si bien CRF generalmente le brinda codificaciones de la mejor calidad, el modo VBV le brinda un archivo que es más adecuado para la transmisión en línea o para ciertos dispositivos con capacidades limitadas.
Para configurar VBV, use las opciones -maxrate 5200K
y -bufsize 5200K
en ffmpeg.
Para configurar CRF, use -crf 23
en ffmpeg.
level=42
Uso -level 42
. Este es el nivel H.264 .
bframes=2:min-keyint=60:keyint=60:ref=4
Establezca el número de B-Frames con -bf 2
. El intervalo mínimo de fotogramas clave se establece con -keyint_min 60
, y el intervalo máximo con -g 60
. El número de imágenes de referencia se establece con -refs 4
.
me=umh:merange=64:subme=7:8x8dct:cabac=1
Estas son opciones que también puede configurar en ffmpeg -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1
, como cualquier otra configuración de codificador x264 que no esté directamente asignada a las opciones de ffmpeg.
Aquí está la versión "TL; DR" si eres flojo, no te importan los detalles o si las cosas no funcionan: úsalo -preset:v medium
(o déjalo fuera, ya que el valor predeterminado medio es predeterminado). Los preajustes x264 eligen un conjunto de opciones que intercambian la velocidad de codificación por la eficiencia de compresión. Están convenientemente el nombre de ultrafast
, superfast
, veryfast
, faster
, fast
, medium
a slow
, slower
y veryslow
. Elija lo que le resulte más cómodo.
Entonces, para resumir, la versión larga:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -level 42 -bf 2 -keyint_min 60 -g 60 -refs 4 -x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1 -c:a aac -b:a 128K -ar 44100 d:\output.mp4
O el corto que usaría (con la codificación VBV y algunas opciones de detalles eliminadas):
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -b:v 5200K -maxrate 5200K -bufsize 5200K -c:a aac -b:a 128K -ar 44100 d:\output.mp4
Cambie a una codificación de calidad constante para una conversión de uso múltiple, use esto y cambie el -crf
parámetro de 18 a 28, donde menor significa mejor calidad y 23 es el valor predeterminado:
ffmpeg -i input.mpg -c:v libx264 -r 29.97 -s:v 1920x1080 -crf 23 -c:a aac -b:a 128K -ar 44100 d:\output.mp4