03.09.2019, 09:11
Hallo,
ich habe mir nach den o.a. Erfahrungen mal die innere Struktur von mp4-, aac- umd mp3-Files angesehen. Bei mp4 speziell diejenigen, die Container für AAC-LC sind (und von VLC erzeugt wurden).
Alle diese Files enthalten u.a. die Audio-Daten in Blöcken, "frames" genannt. In diesen Blöcken gibt es für jeden Kanal einen "global_gain" Wert (1 Byte) , mit dem der Pegel des Kanals im Block in 1.505 dB Schritten (bzw. 4te-Wurzel(2) als Faktor) skaliert werden kann, ohne die Codierung "anzufassen".
Auf Basis dieser Erkenntnisse habe ich für alle 3 Fälle je eine Kommando-Zeilen-Utility geschrieben, mit der man solche Files umskalieren kann.
Denn Spitzepegel in Audio-Files kann man sich von ffmpeg melden lassen. Das geht zB unter Windows mit dem Befehl
ffmpeg -y -i <filename> -af astats -f null NUL
Der Output ist eine lange Liste statistischer Informationen, u.a. RMS/Effektiv-Werte beider Kanäle bei Stereo und die Peak/Spitzen-Werte, auch oberhalb von 0 dB auf Basis der Rekonstruktionswerte im Gleitkomma-Format vor Beschneidung auf das 16 Bit-Integer-Format der PCM-Daten, die meist zum D/A-Wandler der Soundcard geschickt werden.
ffmpeg kennt auch eine "Filter-Option" namend "volumedetect". Die ist jedoch ungeeignet, da sie auch bei zu hoch skalierten Pegeln immer nur maximal 0 dB meldet, auch wenn der Spitzenpegel tatsächlich darüber liegen würde (wenn nicht geclippt würde).
Die Utilities sollten sich bei Bedarf auch unter Linux kompilieren lassen.
"Spaßeshalber" habe ich damit Files im Pegel um + oder - 90 dB geändert, in Audacity geladen, mit der "Amplify"-Option wieder auf ursprünglichen Pegel gebracht und vom Original abgezogen. Die Differenz lag meist unter -90 dB.
Vermutlich ließe sich das Verfahren bei Bedarf auch auf direkte Mitschnitte von Sat-Radio anwenden (Mpeg 1 Layer II ?). Da ich selbst bislang noch keinen Sat-Zugang habe, bräuchte ich zum Ausprobieren ein ganz kurzes File-Beispiel (wenige Sekunden reichen).
Wer lieber Windows-Programme mit GUI benutzt, kann mp3-Files zB mit mp3directCut umskalieren ("Normieren") und aac/mp4-Files mit dem Programm aacgain
http://aacgain.altosdesign.com/
MfG Kai
ich habe mir nach den o.a. Erfahrungen mal die innere Struktur von mp4-, aac- umd mp3-Files angesehen. Bei mp4 speziell diejenigen, die Container für AAC-LC sind (und von VLC erzeugt wurden).
Alle diese Files enthalten u.a. die Audio-Daten in Blöcken, "frames" genannt. In diesen Blöcken gibt es für jeden Kanal einen "global_gain" Wert (1 Byte) , mit dem der Pegel des Kanals im Block in 1.505 dB Schritten (bzw. 4te-Wurzel(2) als Faktor) skaliert werden kann, ohne die Codierung "anzufassen".
Auf Basis dieser Erkenntnisse habe ich für alle 3 Fälle je eine Kommando-Zeilen-Utility geschrieben, mit der man solche Files umskalieren kann.
Denn Spitzepegel in Audio-Files kann man sich von ffmpeg melden lassen. Das geht zB unter Windows mit dem Befehl
ffmpeg -y -i <filename> -af astats -f null NUL
Der Output ist eine lange Liste statistischer Informationen, u.a. RMS/Effektiv-Werte beider Kanäle bei Stereo und die Peak/Spitzen-Werte, auch oberhalb von 0 dB auf Basis der Rekonstruktionswerte im Gleitkomma-Format vor Beschneidung auf das 16 Bit-Integer-Format der PCM-Daten, die meist zum D/A-Wandler der Soundcard geschickt werden.
ffmpeg kennt auch eine "Filter-Option" namend "volumedetect". Die ist jedoch ungeeignet, da sie auch bei zu hoch skalierten Pegeln immer nur maximal 0 dB meldet, auch wenn der Spitzenpegel tatsächlich darüber liegen würde (wenn nicht geclippt würde).
Die Utilities sollten sich bei Bedarf auch unter Linux kompilieren lassen.
"Spaßeshalber" habe ich damit Files im Pegel um + oder - 90 dB geändert, in Audacity geladen, mit der "Amplify"-Option wieder auf ursprünglichen Pegel gebracht und vom Original abgezogen. Die Differenz lag meist unter -90 dB.
Vermutlich ließe sich das Verfahren bei Bedarf auch auf direkte Mitschnitte von Sat-Radio anwenden (Mpeg 1 Layer II ?). Da ich selbst bislang noch keinen Sat-Zugang habe, bräuchte ich zum Ausprobieren ein ganz kurzes File-Beispiel (wenige Sekunden reichen).
Wer lieber Windows-Programme mit GUI benutzt, kann mp3-Files zB mit mp3directCut umskalieren ("Normieren") und aac/mp4-Files mit dem Programm aacgain
http://aacgain.altosdesign.com/
MfG Kai