Documentación del Resampler de FFmpeg
1 Descripción
El resampler de FFmpeg ofrece una interfaz de alto nivel para las utilidades de remuestreo de audio de la biblioteca libswresample. En concreto, permite realizar el remuestreo de audio, la remezcla de la disposición de canales de audio y la conversión del formato y la disposición de empaquetado del audio.
2 Opciones del resampler
El resampler de audio admite las siguientes opciones con nombre.
Las opciones se pueden establecer indicando -option value en las herramientas de FFmpeg, option=value en el filtro aresample, asignando el valor directamente en las opciones de SwrContext, o mediante la API de libavutil/opt.h para su uso mediante programación.
uchl, used_chlayout
Establece la disposición de canales de entrada utilizada. De forma predeterminada no está establecida. Esta opción solo se usa para remapeos especiales.
isr, in_sample_rate
Establece la frecuencia de muestreo de entrada. El valor predeterminado es 0.
osr, out_sample_rate
Establece la frecuencia de muestreo de salida. El valor predeterminado es 0.
isf, in_sample_fmt
Especifica el sample format de entrada. De forma predeterminada se establece en none.
osf, out_sample_fmt
Especifica el sample format de salida. De forma predeterminada se establece en none.
tsf, internal_sample_fmt
Establece el sample format interno. El valor predeterminado es none. Si no se establece explícitamente, se elige de forma automática.
ichl, in_chlayout ochl, out_chlayout
Establece la disposición de canales de entrada/salida.
Consulte (ffmpeg-utils) la sección Channel Layout del manual de ffmpeg-utils(1) para conocer la sintaxis necesaria.
clev, center_mix_level
Establece el nivel de mezcla central. Es un valor expresado en decibelios y debe estar en el intervalo [-32,32].
slev, surround_mix_level
Establece el nivel de mezcla envolvente (surround). Es un valor expresado en decibelios y debe estar en el intervalo [-32,32].
lfe_mix_level
Establece el nivel de mezcla del canal LFE en los canales que no son LFE. Se usa cuando hay una entrada LFE pero no hay salida LFE. Es un valor expresado en decibelios y debe estar en el intervalo [-32,32].
rmvol, rematrix_volume
Establece el volumen de la remezcla (rematrix). El valor predeterminado es 1.0.
rematrix_maxval
Establece el valor de salida máximo para la remezcla. Puede usarse para decidir entre evitar el recorte (clipping) o evitar la reducción de volumen. Un valor de 1.0 evita el recorte.
flags, swr_flags
Establece los flags usados por el conversor. El valor predeterminado es 0.
Admite los siguientes flags individuales:
res
fuerza el remuestreo; este flag obliga a usar el remuestreo incluso cuando las frecuencias de muestreo de entrada y salida coinciden.
dither_scale
Establece la escala del dither. El valor predeterminado es 1.
dither_method
Establece el método de dither. El valor predeterminado es 0.
Valores admitidos:
‘rectangular’
selecciona el dither rectangular.
‘triangular’
selecciona el dither triangular.
‘triangular_hp’
selecciona el dither triangular con paso alto.
‘lipshitz’
selecciona el dither con conformación de ruido Lipshitz.
‘shibata’
selecciona el dither con conformación de ruido Shibata.
‘low_shibata’
selecciona el dither con conformación de ruido low Shibata.
‘high_shibata’
selecciona el dither con conformación de ruido high Shibata.
‘f_weighted’
selecciona el dither con conformación de ruido f-weighted.
‘modified_e_weighted’
selecciona el dither con conformación de ruido modified-e-weighted.
‘improved_e_weighted’
selecciona el dither con conformación de ruido improved-e-weighted.
resampler
Establece el motor de remuestreo. El valor predeterminado es swr.
Valores admitidos:
‘swr’
selecciona el SW Resampler nativo; en este caso no se aplican las opciones de filtro precision y cheby.
‘soxr’
selecciona el SoX Resampler (donde esté disponible); en este caso no se aplican compensation ni las opciones de filtro filter_size, phase_shift, exact_rational, filter_type y kaiser_beta.
filter_size
Solo para swr; establece el tamaño del filtro de remuestreo. El valor predeterminado es 32.
phase_shift
Solo para swr; establece el desplazamiento de fase (phase shift) del remuestreo. El valor predeterminado es 10 y debe estar en el intervalo [0,30].
linear_interp
Si está habilitado (opción predeterminada), usa interpolación lineal. Deshabilítelo si prefiere priorizar la velocidad sobre la calidad cuando exact_rational falla.
exact_rational
Solo para swr; si está habilitado, intenta usar un phase_count exacto basado en las frecuencias de muestreo de entrada y salida. Sin embargo, si este valor es mayor que 1 << phase_shift, el phase_count pasa a ser 1 << phase_shift como alternativa. Está habilitado de forma predeterminada.
cutoff
Establece la relación de la frecuencia de corte (swr: punto de 6dB; soxr: punto de 0dB); debe ser un valor de coma flotante entre 0 y 1. El valor predeterminado es 0.97 con swr y 0.91 con soxr (que, con una frecuencia de muestreo de 44100, conserva toda la banda de audio hasta 20kHz).
precision
Solo para soxr; la precisión en bits con la que se calculará la señal remuestreada. El valor predeterminado de 20 (que, con un dithering adecuado, es apropiado para una profundidad de bits de destino de 16) equivale a la ’High Quality’ de SoX; un valor de 28 equivale a la ’Very High Quality’ de SoX.
cheby
Solo para soxr; selecciona sin rolloff de banda de paso (Chebyshev) y una aproximación de mayor precisión para relaciones ’irracionales’. El valor predeterminado es 0.
async
Solo para swr; sincronización de audio con las marcas de tiempo mediante un único parámetro, usando estiramiento, compresión, relleno y recorte. Al establecerlo en 1 se habilitan el relleno y el recorte; valores mayores representan la cantidad máxima, en muestras, que los datos pueden estirarse o comprimirse por cada segundo. El valor predeterminado es 0, por lo que no se aplica ninguna compensación para que las muestras coincidan con las marcas de tiempo de audio.
first_pts
Solo para swr; asume que el primer pts debería tener este valor. La unidad de tiempo es 1 / frecuencia de muestreo. Esto permite rellenar o recortar el comienzo del flujo. De forma predeterminada no se asume ningún valor esperado para el pts del primer fotograma, por lo que no se realiza ningún relleno ni recorte. Por ejemplo, podría establecerse en 0 para rellenar el comienzo con silencio si un flujo de audio empieza después que el de vídeo, o para recortar las muestras con un pts negativo debido al retardo del encoder.
min_comp
Solo para swr; establece la diferencia mínima entre las marcas de tiempo y los datos de audio (en segundos) que activa el estiramiento, la compresión, el relleno o el recorte de los datos para que coincidan con las marcas de tiempo. De forma predeterminada, el estiramiento, la compresión, el relleno y el recorte están deshabilitados (min_comp = FLT_MAX).
min_hard_comp
Solo para swr; establece la diferencia mínima entre las marcas de tiempo y los datos de audio (en segundos) que activa la adición o eliminación de muestras para que coincidan con las marcas de tiempo. En la práctica, esta opción es un umbral para elegir entre la compensación dura (recorte/relleno) y la suave (compresión/estiramiento). Tenga en cuenta que toda compensación está deshabilitada de forma predeterminada mediante min_comp. El valor predeterminado es 0.1.
comp_duration
Solo para swr; establece la duración (en segundos) durante la cual se estiran o comprimen los datos para que coincidan con las marcas de tiempo. Debe ser un valor de coma flotante de doble precisión no negativo; el valor predeterminado es 1.0.
max_soft_comp
Solo para swr; establece el factor máximo por el cual se estiran o comprimen los datos para que coincidan con las marcas de tiempo. Debe ser un valor de coma flotante de doble precisión no negativo; el valor predeterminado es 0.
matrix_encoding
Selecciona la codificación estéreo matriciada.
Acepta los siguientes valores:
‘none’
selecciona ninguna.
‘dolby’
selecciona Dolby.
‘dplii’
selecciona Dolby Pro Logic II.
El valor predeterminado es none.
filter_type
Solo para swr; selecciona el tipo de filtro de remuestreo. Esto solo afecta a las operaciones de remuestreo.
Acepta los siguientes valores:
‘cubic’
selecciona cúbico.
‘blackman_nuttall’
selecciona sinc con ventana Blackman Nuttall.
‘kaiser’
selecciona sinc con ventana Kaiser.
kaiser_beta
Solo para swr; establece el valor beta de la ventana Kaiser. Debe ser un valor de coma flotante de doble precisión en el intervalo [2,16]; el valor predeterminado es 9.
output_sample_bits
Solo para swr; establece el número de bits de muestra de salida usados para el dithering. Debe ser un entero en el intervalo [0,64]; el valor predeterminado es 0, lo que significa que no se usa.
3 Véase también
ffmpeg, ffplay, ffprobe, libswresample
4 Autores
Los desarrolladores de FFmpeg.
Para más detalles sobre la autoría, consulte el historial de Git del proyecto (https://git.ffmpeg.org/ffmpeg), por ejemplo escribiendo el comando git log en el directorio de fuentes de FFmpeg, o consultando el repositorio en línea en https://git.ffmpeg.org/ffmpeg.
Los responsables de cada componente específico figuran en el archivo MAINTAINERS del árbol de código fuente.
Alojamiento proporcionado por telepoint.bg