Quanto às possibilidades de definir a profundidade de bits : Depende dos seus arquivos de origem e no seu formato de saída.
Por exemplo, leve pcm_s16le
e pcm_s24le
- ambos processarão arquivos PCM, mas com 16 bits / 24 bits de profundidade de bits, respectivamente. (Você pode encontrar esta informação com ffmpeg -h encoder=<YOUR_ENCODER>
.)
Se você tiver um formato que pode levar várias profundidades de bit (como libmp3lame
), o FFmpeg especificará por padrão o valor usado observando o arquivo de origem: Então, se você usar -c:a libmp3lame
e seu arquivo de entrada um pouco de profundidade de 16 bits, então o FFmpeg usará 16 bits. Se você tiver um arquivo de 32 bits e quiser codificá-lo em um codec que possa conter apenas 16 bits, o FFmpeg fará uma amostragem para você.
Você também pode especificar por si mesmo usando -sample_fmt
.
Quanto à sua fórmula de taxa de bits : o FFmpeg, como praticamente todas as outras ferramentas, vê o número de canais de áudio, a profundidade de bits e a taxa de amostragem como valores fixos (o que significa que não mudar intra-arquivo), enquanto a taxa de bits é a variável que se correlaciona com a qualidade da codificação. Isso, no entanto, só é verdadeiro para codecs com perdas; é por isso que re-codificar um arquivo WAV 200 vezes não fará diferença, enquanto re-codificar os mesmos arquivos 20 vezes com um codificador de MP3 bastante decente já poderia levar a resultados insuportáveis.
Codecs com perda de qualidade adicionam qualidade à sua equação: por exemplo, em MP3, um valor de 320k
teria uma qualidade muito boa, pois o codificador não precisaria descartar muitas informações para permanecer dentro dos valores especificados. Se você usou -b:a 64k
, o codificador teria que eliminar muitas informações para atingir a taxa de bits especificada. Os codificadores diminuirão o mínimo necessário para atingir a taxa de bits: Muito banalizado e, portanto, apenas exemplos teóricos de informações que podem ser descartadas:
- Se combinar todas as freqüências de 8-16kHz em uma onda senoidal semi-complexa faria com que o codificador atingisse a taxa de bits, ele o faria.
- Se excluir todos os sinais abaixo de -32 dB faria o truque, bastaria.
Para algumas explicações do mundo real sobre quais informações serão descartadas, sugiro que você comece lendo artigo da Wikipédia sobre compactação de dados de áudio .