Ist eine einfache Spitzennormalisierung mit FFmpeg möglich?

Ist eine einfache Spitzennormalisierung mit FFmpeg möglich?

Ich habe verlustfreie Videoaufnahmen von Videobändern, bei einigen davon ist die Ausgabelautstärke leider dadurch begrenzt, dass der Camcorder keinen Lautstärkeregler für etwas anderes als den eingebauten Lautsprecher hat und das USB-Videoaufnahmegerät Dazzle DVC100 keine Lautstärkeeinstellungen hat (und auf mysteriöse Weise nicht im Windows-Audiomixer oder im Aufnahmegerätefenster angezeigt wird, obwohl VirtualDub2 sie problemlos erkennt und davon aufnimmt).

Anfangs habe ich dies verwendet, um den Ton zu normalisieren.

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

Doch bei weiterer Lektüre derFFmpeg-Dokumentationund dasWikipedia-Artikel zur Audionormalisierung, mir ist klar, dass „Lautstärkenormalisierung“ etwas anderes ist als „Spitzennormalisierung“. Da die loudnormFunktion von ffmpeg genau so heißt, muss ich sicher sein, dass ich genau das mache, was ich will.

Ich möchte lediglich die Lautstärke so weit wie möglich erhöhen, ohne dass es zu Übersteuerungen kommt.Undohne den Dynamikumfang zu verlieren oder die Lautstärke über die gesamte Aufnahme zu mitteln. Ist das in ffmpeg möglich? Ich habe ziemlich viel gesucht und es loudnormscheint so beliebt zu sein, dass alles andere, was mit Normalisierung zu tun hat, übertönt wird.

Antwort1

Sie können zuerst den Volumedetect-Filter ausführen, um die Spitzenlautstärke zu ermitteln. Führen Sie dann in einem zweiten Durchgang den Lautstärkefilter aus, um eine gleichmäßige Verstärkung hinzuzufügen.

Durchgang 1

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

Ausgabe:

[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

Die maximale Lautstärke ist Ihr Peak.

Durchgang 2

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

verwandte Informationen