¿Es posible la normalización de picos simple usando FFmpeg?

¿Es posible la normalización de picos simple usando FFmpeg?

Tengo capturas de video sin pérdidas de cintas de video, algunas de las cuales desafortunadamente tienen su volumen de salida limitado tanto por la falta de control deslizante de volumen en la videocámara para cualquier cosa que no sea el altavoz incorporado como por la falta de configuraciones de volumen del dispositivo de captura de video USB Dazzle DVC100 (y misterioso incapacidad de materializarse en el mezclador de audio de Windows o en el panel de dispositivos de grabación a pesar de que VirtualDub2 lo detecta y graba perfectamente).

Inicialmente, había estado usando esto para normalizar el audio.

-af loudnorm=I=-16:LRA=11:TP=-1.5

Sin embargo, tras una lectura adicional deldocumentación de FFmpegy elArtículo de Wikipedia sobre normalización de audio, Me doy cuenta de que la "normalización del volumen" es diferente de la "normalización del pico". Dado que la función de ffmpeg loudnormnombra precisamente eso, necesito estar seguro de que lo que estoy haciendo es exactamente lo que quiero.

Simplemente quiero aumentar el volumen tanto como sea posible sin recortarysin perder ningún rango dinámico ni promediar los niveles de volumen en toda la grabación. ¿Es esto posible en ffmpeg? He buscado bastante y loudnormparece ser tan popular que ahoga cualquier otra cosa relacionada con la normalización.

Respuesta1

Puede ejecutar el filtro de detección de volumen primero para identificar el volumen máximo. Luego ejecute el filtro de volumen en una segunda pasada para agregar una ganancia uniforme.

Pase 1

ffmpeg -i input -af volumedetect -vn -f null -

Producción:

[Parsed_volumedetect_0 @ 0000022356a12940] n_samples: 495350
[Parsed_volumedetect_0 @ 0000022356a12940] mean_volume: -28.9 dB
[Parsed_volumedetect_0 @ 0000022356a12940] max_volume: -4.2 dB
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_4db: 26
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_5db: 107
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_6db: 182
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_7db: 153
[Parsed_volumedetect_0 @ 0000022356a12940] histogram_8db: 158

El volumen máximo es tu pico.

Pase 2

ffmpeg -i input -af volume=+4.2dB -c:v copy output

información relacionada