Por favor, leia a documentação do FFmpeg e execute ffmpeg -h full
a lista de opções. Além disso, dê uma olhada neste artigo que escrevi, que mostra as diferenças entre os modos de controle de taxa em codificadores como x264 e x265.
Geralmente, aqui está o que as opções significam:
-b:v
(ou -vb
o mesmo) especifica a taxa de bits média alvo para o codificador usar:
-b
<int>
E..VA
. definir taxa de bits (em bits / s) (de 0 a INT_MAX)
-minrate
especifica uma tolerância mínima a ser usada:
-minrate
<int>
E..VA
. Defina a tolerância mínima à taxa de bits (em bits / s). Mais útil na configuração de uma codificação CBR. É de pouco uso caso contrário. (de INT_MIN a INT_MAX)
-maxrate
especifica uma tolerância máxima. No entanto, como a documentação indica, isso é usado apenas em conjunto com bufsize
:
-maxrate
<int>
E..VA
. Defina a tolerância máxima à taxa de bits (em bits / s). Requer bufsize
ser definido. (de INT_MIN a INT_MAX)
-bufsize
<int>
E..VA
. definir o tamanho do buffer do controle de rato (em bits) (de INT_MIN a INT_MAX)
Isso faz sentido apenas para a codificação de taxa de bits variável, onde, em vez de usar uma taxa de bits constante ou um modelo de qualidade constante, o codificador simula uma transmissão com um buffer virtual no decodificador. As opções -minrate
/ -maxrate
/ -bufsize
controlam esse tamanho do buffer. Normalmente, você usa esse modo apenas para streaming, pois a técnica restringirá a taxa de bits para não exceder um determinado valor que faria com que o buffer do decodificador fosse excedido ou insuficiente.
Para resumir, você tem várias opções para limitar a taxa de bits:
Para configurar um processo CBR, você deve verificar o que o codificador oferece. Normalmente, você não pode obter uma taxa de bits constante "perfeita", pois o codificador não desperdiçará bits. A configuração de -b:v
, -minrate
e -maxrate
nos mesmos níveis conseguirá isso, por exemplo, para libx264:
ffmpeg -i input.mp4 -c:v libx264 -x264-params "nal-hrd=cbr" -b:v 1M -minrate 1M -maxrate 1M -bufsize 2M output.ts
Aviso: isso pode resultar em baixa qualidade para vídeos difíceis de codificar e desperdiçar bits. A menos que você precise absolutamente obter uma saída de taxa constante, não use esta opção.
Configure um processo de taxa de bits restrita / variável para streaming. Use -b:v 3500K -maxrate 3500K -bufsize 1000K
, por exemplo. Você terá que ajustar os tamanhos de taxa e buffer para o contexto, obviamente. Quanto maior o tamanho do buffer, maior a variação de taxa de bits permitida.
Use uma meta de qualidade constante e limite a taxa de bits apenas para detectar picos. Por exemplo, use -c:v libx264 -crf 23 -maxrate 4M -bufsize 4M
para codificar na taxa de bits variável com um CRF de destino 23, mas limite a saída a um máximo de 4 MBit / s.