O freio de mão usa o codificador x264 para conversão de vídeo. Existe um site com uma visão geral de todas as opções do x264 e seus equivalentes do FFmpeg . No entanto, eles estã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 de detalhes - mas chegaremos lá.
Muitas das opções básicas do freio de mão (por exemplo, taxa de quadros) não são específicas para x264 e estão espalhadas pela documentação on-line do FFmpeg .
Antes de começarmos, verifique se você usa uma versão recente do FFmpeg. Seu site de download possui versões estáticas para todos os principais sistemas operacionais.
Vamos lá:
--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
. (O freio de mão --cfr
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ê deseja 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-o com -s:v 1920x1080
, ou se desejar usar os filtros -filter:v "scale=1920:1080"
,.
--encoder x264 --vb 5200
Defina o codificador com -c:v libx264
e a taxa de bits para constante com -b:v 5200K
. Observe que ainda não estamos lá quando se trata de configurações de qualidade.
--aencoder faac --ab 128 --mixdown stereo
Semelhante ao anterior, com -c:a libfaac -b:a 128K -ac 2
. Observe que o FAAC não é mais suportado no FFmpeg; em vez disso, use o codificador FFmpeg embutido com -c:a aac -b:a 128K
ele.
-x bitrate=5200:vbv-bufsize=5200:vbv-maxrate=5200
Isso define o modo de codificação para VBV, que visa um cenário de streaming em vez de apenas uma taxa de bits constante ou qualidade constante. A qualidade constante também é chamada de CRF , o padrão para x264 - é chamado de "Fator de taxa" no freio de mão. Embora o CRF geralmente ofereça a melhor codificação de qualidade, o modo VBV oferece um arquivo mais adequado para transmissão on-line ou para determinados dispositivos com recursos limitados.
Para definir o VBV, use as opções -maxrate 5200K
e -bufsize 5200K
em 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
Essas 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 seja diretamente mapeada para as opções do ffmpeg.
Aqui está a versão "TL; DR" se você for preguiçoso, não se importa com os detalhes ou se as coisas não funcionarem: Use -preset:v medium
(ou deixe de fora, pois a predefinição média é o padrão). As predefinições x264 escolhem um conjunto de opções que trocam a velocidade de codificação pela eficiência da compactação. Eles estão convenientemente chamado de ultrafast
, superfast
, veryfast
, faster
, fast
, medium
a slow
, slower
e veryslow
. Escolha o que você se sentir confortável.
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 a 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 a codificação de qualidade constante para uma conversão para todos os fins, use isso e altere o -crf
parâmetro de 18 para 28, onde inferior significa melhor qualidade e 23 é o 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