O Handbrake usa o codificador x264 para conversão de vídeo. Há um site com uma visão geral de todas as opções x264 e suas contrapartes do FFmpeg . No entanto, estes são um pouco obsoletos e algumas dessas opções não funcionam mais ou podem ter sido renomeadas. Você deve usar os perfis x264 para a maioria das opções detalhadas, mas chegaremos lá.
Muitas das opções básicas do Handbrake (por exemplo, taxa de quadros) não são específicas de x264, e estão espalhadas na documentação on-line do FFmpeg .
Antes de começar, verifique se você usa uma versão recente do FFmpeg. Seu site de download tem compilações estáticas para todos os principais sistemas operacionais.
Vamos:
-
--input "d:\input.mpg" --output "d:\output.mp4"
A sintaxe do FFmpeg é
ffmpeg -i input.mpg … d:\output.mp4
. -
--rate 29.97
Especifique a taxa de quadros de vídeo com
-r 29.97
. (--cfr
do Handbrake apenas define uma taxa de quadros constante. Não é necessário aqui). -
--arate 44.1
Defina a taxa de amostragem de áudio com
-ar 44100
(em Hz). -
--format mp4
Não é necessário porque o FFmpeg sabe que você quer MP4.
-
--width 1920 --height 1080 --custom-anamorphic --display-width 1920 --keep-display-aspect --modulus 8 --crop 0:0:0:0
Isso não faz nada além de definir o tamanho para 1920 × 1080. No FFmpeg, faça isso com
-s:v 1920x1080
, ou se você quiser usar os filtros,-filter:v "scale=1920:1080"
. -
--encoder x264 --vb 5200
Defina o codificador com
-c:v libx264
e a taxa de bits como constante com-b:v 5200K
. Note que ainda não estamos lá quando se trata de configurações de qualidade. -
--aencoder faac --ab 128 --mixdown stereo
Semelhante ao acima, com
-c:a libfaac -b:a 128K -ac 2
. Note que o FAAC não é mais suportado no FFmpeg; Em vez disso, use o codificador FFmpeg interno com-c:a aac -b:a 128K
. -
-x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200
Isso define o modo de codificação como VBV , que tem como alvo um cenário de streaming, em vez de apenas uma taxa de bits constante ou uma qualidade constante . A qualidade constante também é chamada de CRF , o padrão para x264 - é chamado de "Taxa Fator" no Handbrake . Enquanto o CRF geralmente oferece a melhor qualidade de codificação, o modo VBV oferece um arquivo mais adequado para streaming on-line ou para determinados dispositivos com recursos limitados.
Para definir o VBV, use as opções
-maxrate 5200K
e-bufsize 5200K
no ffmpeg.Para definir o CRF, use
-crf 23
no ffmpeg. -
level=42
Use
-level 42
. Este é o Nível H.264 . -
bframes=2:min-keyint=60:keyint=60:ref=4
Defina o número de quadros B com
-bf 2
. O intervalo mínimo do quadro-chave é definido com-keyint_min 60
e o intervalo máximo com-g 60
. O número de imagens de referência é definido com-refs 4
. -
me=umh:merange=64:subme=7:8x8dct:cabac=1
Estas são opções que você pode definir no ffmpeg, adicionalmente, com
-x264-params me=umh:merange=64:subme=7:8x8dct:cabac=1
- como qualquer outra configuração do codificador x264 que não esteja diretamente mapeada para as opções do ffmpeg.Aqui está a versão "TL; DR" se você é preguiçoso, não se importa com os detalhes, ou se as coisas não funcionam: Use
-preset:v medium
(ou deixe de fora, porque a predefinição média é padrão) . As predefinições x264 escolhem um conjunto de opções que negociam a velocidade de codificação para eficiência de compactação. Eles são convenientemente denominados deultrafast
,superfast
,veryfast
,faster
,fast
,medium
aslow
,slower
everyslow
. Escolha o que você se sentir confortável com.
Então, para resumir, a versão longa:
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
Ou o curto que eu usaria (com codificação VBV e algumas opções detalhadas removidas):
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
Alterando para uma codificação de qualidade constante para uma conversão para todos os propósitos, use isso e altere o parâmetro -crf
de 18 para 28, onde menor significa melhor qualidade e 23 é padrão:
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