Documentação do reamostrador do FFmpeg
1 Descrição
O reamostrador do FFmpeg oferece uma interface de alto nível para os utilitários de reamostragem de áudio da biblioteca libswresample. Em particular, permite realizar a reamostragem de áudio, a remixagem (rematrix) do layout de canais de áudio e a conversão do formato e do layout de empacotamento do áudio.
2 Opções do reamostrador
O reamostrador de áudio admite as seguintes opções nomeadas.
As opções podem ser definidas indicando -option value nas ferramentas do FFmpeg, option=value no filtro aresample, definindo o valor diretamente nas opções do SwrContext ou usando a API de libavutil/opt.h para uso programático.
uchl, used_chlayout
Define o layout de canais de entrada utilizado. Por padrão, não está definido. Esta opção é usada apenas para remapeamentos especiais.
isr, in_sample_rate
Define a taxa de amostragem de entrada. O valor padrão é 0.
osr, out_sample_rate
Define a taxa de amostragem de saída. O valor padrão é 0.
isf, in_sample_fmt
Especifica o sample format de entrada. Por padrão, é definido como none.
osf, out_sample_fmt
Especifica o sample format de saída. Por padrão, é definido como none.
tsf, internal_sample_fmt
Define o sample format interno. O valor padrão é none. Caso não seja definido explicitamente, ele é escolhido automaticamente.
ichl, in_chlayout ochl, out_chlayout
Define o layout de canais de entrada/saída.
Consulte (ffmpeg-utils) a seção Channel Layout do manual do ffmpeg-utils(1) para conhecer a sintaxe necessária.
clev, center_mix_level
Define o nível de mixagem central. É um valor expresso em decibéis e deve estar no intervalo [-32,32].
slev, surround_mix_level
Define o nível de mixagem surround. É um valor expresso em decibéis e deve estar no intervalo [-32,32].
lfe_mix_level
Define o nível de mixagem do canal LFE nos canais que não são LFE. É usado quando há uma entrada LFE, mas não há saída LFE. É um valor expresso em decibéis e deve estar no intervalo [-32,32].
rmvol, rematrix_volume
Define o volume da remixagem (rematrix). O valor padrão é 1.0.
rematrix_maxval
Define o valor de saída máximo para a remixagem. Pode ser usado para decidir entre evitar o clipping ou evitar a redução de volume. Um valor de 1.0 evita o recorte.
flags, swr_flags
Define as flags usadas pelo conversor. O valor padrão é 0.
Admite as seguintes flags individuais:
res
força a reamostragem; esta flag força o uso da reamostragem mesmo quando as taxas de amostragem de entrada e saída coincidem.
dither_scale
Define a escala do dither. O valor padrão é 1.
dither_method
Define o método de dither. O valor padrão é 0.
Valores aceitos:
‘rectangular’
seleciona o dither retangular.
‘triangular’
seleciona o dither triangular.
‘triangular_hp’
seleciona o dither triangular com passa-alta.
‘lipshitz’
seleciona o dither com modelagem de ruído Lipshitz.
‘shibata’
seleciona o dither com modelagem de ruído Shibata.
‘low_shibata’
seleciona o dither com modelagem de ruído low Shibata.
‘high_shibata’
seleciona o dither com modelagem de ruído high Shibata.
‘f_weighted’
seleciona o dither com modelagem de ruído f-weighted.
‘modified_e_weighted’
seleciona o dither com modelagem de ruído modified-e-weighted.
‘improved_e_weighted’
seleciona o dither com modelagem de ruído improved-e-weighted.
resampler
Define o motor de reamostragem. O valor padrão é swr.
Valores aceitos:
‘swr’
seleciona o SW Resampler nativo; nesse caso, as opções de filtro precision e cheby não se aplicam.
‘soxr’
seleciona o SoX Resampler (quando disponível); nesse caso, não se aplicam a compensação nem as opções de filtro filter_size, phase_shift, exact_rational, filter_type e kaiser_beta.
filter_size
Somente para swr, define o tamanho do filtro de reamostragem. O valor padrão é 32.
phase_shift
Somente para swr, define o deslocamento de fase da reamostragem. O valor padrão é 10 e deve estar no intervalo [0,30].
linear_interp
Utiliza interpolação linear quando habilitado (o padrão). Desative essa opção se preferir priorizar a velocidade em vez da qualidade quando exact_rational falhar.
exact_rational
Somente para swr, quando habilitado, tenta usar um phase_count exato baseado nas taxas de amostragem de entrada e saída. No entanto, se esse valor for maior que 1 << phase_shift, o phase_count será 1 << phase_shift como alternativa. Está habilitado por padrão.
cutoff
Define a proporção da frequência de corte (swr: ponto de 6dB; soxr: ponto de 0dB); deve ser um valor de ponto flutuante entre 0 e 1. O valor padrão é 0.97 no swr e 0.91 no soxr (que, com uma taxa de amostragem de 44100, preserva toda a banda de áudio até 20kHz).
precision
Somente para soxr, a precisão em bits com que o sinal reamostrado será calculado. O valor padrão de 20 (que, com um dithering adequado, é apropriado para uma profundidade de bits de destino de 16) corresponde a ’High Quality’ da SoX; um valor de 28 corresponde a ’Very High Quality’ da SoX.
cheby
Somente para soxr, seleciona nenhum rolloff de banda de passagem (Chebyshev) e uma aproximação de maior precisão para razões ’irrational’. O valor padrão é 0.
async
Somente para swr, sincronização de áudio com marcas de tempo usando um único parâmetro simples, por meio de esticamento, compressão, preenchimento e corte. Definir esse valor como 1 habilita o preenchimento e o corte; valores maiores representam a quantidade máxima, em amostras, que os dados podem ser esticados ou comprimidos a cada segundo. O valor padrão é 0, portanto nenhuma compensação é aplicada para fazer as amostras corresponderem às marcas de tempo de áudio.
first_pts
Somente para swr, presume que o primeiro pts deve ter este valor. A unidade de tempo é 1 / taxa de amostragem. Isso permite preenchimento/corte no início do fluxo. Por padrão, nenhuma suposição é feita sobre o pts esperado do primeiro quadro, portanto nenhum preenchimento ou corte é feito. Por exemplo, isso pode ser definido como 0 para preencher o início com silêncio se um fluxo de áudio começar depois do fluxo de vídeo, ou para cortar quaisquer amostras com pts negativo devido ao atraso do encoder.
min_comp
Somente para swr, define a diferença mínima entre as marcas de tempo e os dados de áudio (em segundos) que aciona o esticamento, a compressão, o preenchimento ou o corte dos dados para que correspondam às marcas de tempo. Por padrão, o esticamento, a compressão, o preenchimento e o corte estão desabilitados (min_comp = FLT_MAX).
min_hard_comp
Somente para swr, define a diferença mínima entre as marcas de tempo e os dados de áudio (em segundos) que aciona a adição ou remoção de amostras para que correspondam às marcas de tempo. Na prática, esta opção é um limiar para escolher entre a compensação rígida (corte/preenchimento) e a suave (compressão/esticamento). Observe que toda a compensação está desabilitada por padrão por meio de min_comp. O valor padrão é 0.1.
comp_duration
Somente para swr, define a duração (em segundos) durante a qual os dados são esticados/comprimidos para corresponder às marcas de tempo. Deve ser um valor de ponto flutuante de precisão dupla não negativo; o valor padrão é 1.0.
max_soft_comp
Somente para swr, define o fator máximo pelo qual os dados são esticados/comprimidos para corresponder às marcas de tempo. Deve ser um valor de ponto flutuante de precisão dupla não negativo; o valor padrão é 0.
matrix_encoding
Seleciona a codificação estéreo matricial.
Aceita os seguintes valores:
‘none’
seleciona nenhuma.
‘dolby’
seleciona Dolby.
‘dplii’
seleciona Dolby Pro Logic II.
O valor padrão é none.
filter_type
Somente para swr, seleciona o tipo de filtro de reamostragem. Isso afeta apenas as operações de reamostragem.
Aceita os seguintes valores:
‘cubic’
seleciona cúbico.
‘blackman_nuttall’
seleciona sinc com janela Blackman Nuttall.
‘kaiser’
seleciona sinc com janela Kaiser.
kaiser_beta
Somente para swr, define o valor beta da janela Kaiser. Deve ser um valor de ponto flutuante de precisão dupla no intervalo [2,16]; o valor padrão é 9.
output_sample_bits
Somente para swr, define o número de bits de amostra de saída usados para dithering. Deve ser um número inteiro no intervalo [0,64]; o valor padrão é 0, o que significa que não é usado.
3 Veja também
ffmpeg, ffplay, ffprobe, libswresample
4 Autores
Os desenvolvedores do FFmpeg.
Para mais detalhes sobre a autoria, consulte o histórico do Git do projeto (https://git.ffmpeg.org/ffmpeg), por exemplo, digitando o comando git log no diretório de fontes do FFmpeg, ou navegando pelo repositório on-line em https://git.ffmpeg.org/ffmpeg.
Os responsáveis por cada componente específico estão listados no arquivo MAINTAINERS na árvore de código-fonte.
Hospedagem fornecida por telepoint.bg