Ubuntu Suomen keskustelualueet
Ubuntun käyttö => Multimedia ja grafiikka => Aiheen aloitti: elohope - 30.09.21 - klo:09.14
-
En ole mielestäni saanut kunnolla normalisoitua mp3-åånitiedostoja mp3gain-ohjelmalla. Löysin äskettäin avuksi ffmpeg-ohjelman ominaisuuden, joka kertoo, miten paljon volyymia voi nostaa ilman että ääni säröytyy.
Alla olevassa skriptissä yhdistetään ohjelmat ffmpeg ja mp3gain. Jälkimmäinen asentuu Ubuntuun snapin kautta.
Skriptissä oletetaan, että normalisoitavat tiedostot ovat hakemistossa "Kansio".
Skriptissä ffmpeg laskee normalisointitarpeen ja mp3gain toteuttaa normalisoinnin. Tämä skripti normalisoi biisin volyymin vain jos volyymia tarvitsee nostaa ja vain jos noston määrä on yli 1 dB.
Yhdistäminen tuntuu toimivan lyhyen kokemuksen perusteella, mutta onko syytä olla varovainen?
#!/bin/bash
echo "Paina Enter, jos muutetaan biisien voluumeja. Muulla merkillä lopetetaan tähän."
read Lopetusvalinta
if [ "$Lopetusvalinta" != "" ] ; then
exit
fi
Kansio="/home/$USER/Musiikki/Normalisoitavat/"
# Tiedostot joihin tulevat tiedot käsitellyistä biiseistä:
eikasitelty="/home/$USER/eikasitelty.txt"
if [ -e "${eikasitelty}" ]; then echo "" > "${eikasitelty}"; fi
kasitelty="/home/$USER/kasitelty.txt"
if [ -e "${kasitelty}" ]; then echo "" > "${kasitelty}"; fi
IFS=$'\n'
for biisi in $(find "${Kansio}" -name "*.mp3")
do
# Välitulokset tallentuvat /tmp-kansioon:
echo "" > /tmp/tulos1.txt
echo "" > /tmp/tulos2.txt
# Biisien äänityksen tason mittaaminen:
ffmpeg -i "${biisi}" -af volumedetect -f null -y nul &> /tmp/tulos1.txt
# Näin monta desibeliä biisin volyymia voitaisiin nostaa:
grep "max_volume" /tmp/tulos1.txt > /tmp/tulos2.txt
# Korjaustarvetta siistitään, mm. desimaalit pois.
korjaustarve="$(awk -F " " '{print $(NF-1)}' /tmp/tulos2.txt)"
pyoristettytarve="$(echo "$korjaustarve" | awk -F "." '{print $(NF-1)}')"
suuntakorjaus=$(( -1 * pyoristettytarve ))
valmiskorjaus="$(echo $suuntakorjaus | awk -F "." '{print $1}')"
if (( valmiskorjaus > 1 ))
then
# cp "${biisi}" "/home/$USER/Desktop/b/"
# bittinopeus=$(ffprobe -v error -show_entries format=bit_rate -of default=noprint_wrappers=1:nokey=1 "${biisi}")
mp3gain -g "${valmiskorjaus}" "${biisi}" # lisää -p jos haluat että tiedoston muutospäiväys ei muutu
echo "Korjaus: "${valmiskorjaus}" ${biisi}"
echo "${biisi}" >> "${kasitelty}"
else
echo "${biisi}" >> "${eikasitelty}"
fi
done
# ~/normalisoi_mp3gain_ja_ffprobe-ohjelmilla.sh
-
Kaikki soittimet eivät tue mp3gain ohjelman merkintöjä. Itsellä enempi ongelma liian suuri äänenvoimakkuus. Mitä uudempi äänite sitä kovemmin soi. Kiva tietää, että mp3gain on saatavilla. Poistunut uudemmista Ubuntuista ja olen kaivannut sitä. Äänitiedostojen "normalisoiminen" haastavaa kun useampia formaatteja käytössä. Kertoisiko ffmpeg myös kappalen suurimman voluumin?
-
Käyttämällä Arch Linuxissa komentoa
ffmpeg -i Djonkana.mp3 -af volumedetect -f null -y nul &> tulos1.txt
saadaan mm. että "max_volume: -1.6 dB".
Tämä ymmärtääkseni kertoo, että kyseisessä biisissä maksimivolyymi
jää 1.6 dB alle 90 dB:n eli äänen särkymisrajan.
Ehkä joku osaa selittää alla olevat tulokset vielä tarkemmin?
Alla komennon tulos kokonaisuudessaan.
ffmpeg version n4.4 Copyright (c) 2000-2021 the FFmpeg developers
built with gcc 11.1.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
libavutil 56. 70.100 / 56. 70.100
libavcodec 58.134.100 / 58.134.100
libavformat 58. 76.100 / 58. 76.100
libavdevice 58. 13.100 / 58. 13.100
libavfilter 7.110.100 / 7.110.100
libswscale 5. 9.100 / 5. 9.100
libswresample 3. 9.100 / 3. 9.100
libpostproc 55. 9.100 / 55. 9.100
[mp3 @ 0x55e973968a80] Estimating duration from bitrate, this may be inaccurate
Input #0, mp3, from '/home/jorma/Desktop/Djonkana.mp3':
Metadata:
title : Djonkana
artist : Boubacar Traoré
genre : Other
Duration: 00:04:02.90, start: 0.000000, bitrate: 64 kb/s
Stream #0:0: Audio: mp3, 22050 Hz, stereo, fltp, 64 kb/s
Stream mapping:
Stream #0:0 -> #0:0 (mp3 (mp3float) -> pcm_s16le (native))
Press [q] to stop, [?] for help
Output #0, null, to 'nul':
Metadata:
title : Djonkana
artist : Boubacar Traoré
genre : Other
encoder : Lavf58.76.100
Stream #0:0: Audio: pcm_s16le, 22050 Hz, stereo, s16, 705 kb/s
Metadata:
encoder : Lavc58.134.100 pcm_s16le
size=N/A time=00:00:00.00 bitrate=N/A speed=N/A
size=N/A time=00:04:02.83 bitrate=N/A speed=1.21e+03x
video:0kB audio:20918kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_volumedetect_0 @ 0x55e97397eb40] n_samples: 10710144
[Parsed_volumedetect_0 @ 0x55e97397eb40] mean_volume: -19.9 dB
[Parsed_volumedetect_0 @ 0x55e97397eb40] max_volume: -1.6 dB
[Parsed_volumedetect_0 @ 0x55e97397eb40] histogram_1db: 11
[Parsed_volumedetect_0 @ 0x55e97397eb40] histogram_2db: 195
[Parsed_volumedetect_0 @ 0x55e97397eb40] histogram_3db: 852
[Parsed_volumedetect_0 @ 0x55e97397eb40] histogram_4db: 3301
[Parsed_volumedetect_0 @ 0x55e97397eb40] histogram_5db: 8584
-
Melko uutta kääntäjää tuo Arch Linux käyttää. Ubuntussani vielä gcc 9.
max_volume kertonee paljonko äänenvoimakkuutta voidaan nostaa. histogram_3db: 852 kertonee kuinka monessa kohtaa ääni säröytyy jos äänen voimakkuutta nostetaan 3 db.
mp3gain-ohjelmalla on muistaakseni vipi, joka estää säröytymisen. Myös vipu albumeille.Itsellä levyn kappaleet yhdessä kansiossa ja jos menee muuttamaan vaikka Dark Side of the Moon levyn tasoja voi tulla ongelmia kun kappaleiden välissä ei taukoa. Loistava levy edelleen äänen testailuun. Soittimen pitää osata soittaa kappaleet ilman taukoa.
Jos albumikokonaisuudet tärkeitä pitää etsiä albumin max ja muuttaa kaikkia kappaleita yhtä paljon. Jonkin tapahtuman biisilista sitten taas niin, että soivat suunnilleen samalla volyymilla. mp3gain ei muuta kappaletta vaan kirjoittaa ohjeen soittimelle metatietoihin joka muuttaa äänenvoimakkuutta sen mukaan. Hyvä soitin lukee seuraavan kappaleen etukäteen ja säätää äänenvoimakkuuden ennen toiston alkua. mp3gainin lisäksi suosikkini musan toistoon on myös poistunut valikoimista. Se ei ole Ubuntun vika, jos joidenkin ohjelmien kehitys loppuu.
-
... histogram_3db: 852 kertonee kuinka monessa kohtaa ääni säröytyy jos äänen voimakkuutta nostetaan 3 db.
Hyvä tietää, kiitos. Minulle tuo oli mysteeri.
Kuuntelen musiikkia uutisten lomassa, joten haeskelen tasapainoa puheen ja musiikin volyymien välille. Lupaava uusi löytö on ffmpegin speechnorm -suodatin, jolla voi aika laadukkaasti nostaa hiljaisempien uutislähetysten äänentasoa.