O FFmpeg não inclui predefinições e perfis baseados em arquivos de texto para a libx264, ou seja, o que você usou com a opção -vpre
. Estes foram depreciados e removidos em favor do acesso aos presets x264 reais, perfis (e músicas) com as opções -preset
, -profile:v
e -tune
. Os arquivos de texto antigos apenas emularam os presets e perfis x264 oficiais e, devido a várias limitações, não puderam oferecer a funcionalidade completa que o novo sistema oferece. Também é muito mais fácil de manter.
Além disso, muitos codificadores têm suas próprias opções separadas; também chamado de "opções privadas". Você terá que olhar para o áudio e video opções de codificador para codecs comuns na documentação on-line do FFmpeg ou verifique a saída de ffmpeg -h full
para obter uma lista completa das opções suportadas. Por exemplo, x264 lista suas opções em libx264 AVOptions
na saída de ajuda completa.
Se o seu ffmpeg suporta -preset
, qualquer pré-ajuste de arquivo de texto não deve ser usado, e o FFmpeg não vem mais com presets de iPod não-padrão. É um equívoco comum que as predefinições de texto possam simplesmente ser copiadas de qualquer lugar e usadas com qualquer ffmpeg. Isso não é verdade e resultará em quebra.
Basicamente, as predefinições permitiram que você fizesse o seguinte:
Qualidade de controle
A qualidade é controlada pela especificação de uma taxa de bits através de -b:v
(para vídeo) ou -b:a
(para áudio) ou pela especificação de qualquer outro método de codificação que o codec possa suportar.
Para x264, existem vários métodos de codificação, sendo o método Fator de taxa constante mais sofisticado. Isso resulta em taxa de bits variável, mas boa qualidade geral em uma única passagem. Os valores de CRF variam de 0 a 51, mas os valores sãos estão entre 19 e 26, dependendo da sua fonte e da qualidade desejada. 23 é o padrão, então você poderia, por exemplo, escolher 18 para "alta qualidade" e 28 para "baixa qualidade", o que quer que isso signifique para você.
ffmpeg -i input.mp4 -c:v libx264 -crf 23 output.mp4
x264 tem outros métodos de codificação , mas isso está fora do escopo aqui.
Restringir o perfil H.264
Esses perfis definem um conjunto de recursos que o codificador pode usar para corresponder aos recursos de um determinado decodificador. No recente FFmpeg, use a seguinte sintaxe para especificar um perfil, onde o perfil pode ser baseline
, main
ou high
:
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline output.mp4
Para mais informações e quando você deve usar o perfil, consulte: Quais são as diferenças entre os perfis H.264?
Escolha uma codificação x264 preset
Essas predefinições afetam a velocidade de codificação. A utilização de uma predefinição mais lenta oferece melhor compactação ou qualidade por tamanho do arquivo, enquanto pré-ajustes mais rápidos resultam em pior compactação. Em geral, você deve usar apenas o preset que você pode esperar. As predefinições podem ser ultrafast
, superfast
, veryfast
, faster
, fast
, medium
(padrão), slow
e veryslow
. Aqui está um exemplo:
ffmpeg -i input.mp4 -c:v libx264 -preset slow output.mp4
Codificar vídeo sem perdas
Isso é possível especificando um CRF de 0, então use simplesmente -crf 0
:
ffmpeg -i input.mp4 -c:v libx264 -crf 0 output.mp4
Finalmente, vamos falar sobre o ProRes rapidamente. O ProRes aceita uma taxa de bits fixa com -b:v
, ou você pode especificar o perfil, que deve ser um valor entre 0 e 3 , onde as taxas de bits são escolhidas de acordo com o perfil. Maior significa melhor:
ffmpeg -i input.mp4 -c:v prores -profile:v 0 output.mov
O ffmbc Wiki sugere que os nomes dos perfis podem ser usados - isso, no entanto, falha no FFmpeg 1.0.