THD+N : audio, broadcast et à-côtés

Posts Tagged ‘r128

libebur128 modulaire

leave a comment »

Depuis quelques jours, l’excellente bibliothèque libebur128 a été séparée en deux dépôts git : la bibliothèque elle même, et loudness-scanner, l’application qui permet de mesurer des fichiers par l’intermédiaire de modules externes comme libsndfile ou FFmpeg.

Cela permet de simplifier la compilation pour ceux qui ne souhaitent que la bibliothèque. On peut aussi voir dans les discussions qu’il y aura peut-être bientôt un paquet debian.

Publicités

Written by manu

26/11/2013 at 19:09

Publié dans Outils

Tagged with , ,

Mesure loudness avec des logiciels libres

leave a comment »

La vidéo de la présentation que j’ai eu le plaisir de présenter aux RMLL2013. Au menu : libebur128, FFmpeg et freelcs. En anglais (enfin … presque).

La présentation peut être trouvée ici.

Written by manu

18/07/2013 at 22:42

Publié dans Outils

Tagged with , ,

Mesure loudness avec FFmpeg

leave a comment »

J’ai eu la bonne surprise de découvrir que FFmpeg propose désormais un filtre ebur128 ! Pour en bénéficier, il vous faudra utiliser (au moins) la version 1.1 de FFmpeg, qui n’est peut-être pas encore installée par votre gestionnaire de paquets favori.

Étant donné que j’étais impatient de tester cette nouvelle fonctionnalité,  j’ai fait une installation (non standard) de FFmpeg à partir des sources de la version 1.2 « Magic ».

Ce filtre propose deux modes d’utilisation : production d’un rapport dans le Terminal, ou création d’une fenêtre affichant graphiquement la mesure.

Mode Terminal :

(J’ai supprimé une partie des lignes).

manu@debian-wheezy:~/Sources/ffmpeg-1.2$ ./ffmpeg -nostats
 -i '/home/manu/Musique/seq-3341-3-16bit.wav' -filter_complex ebur128 -f null -
ffmpeg version 1.2 Copyright (c) 2000-2013 the FFmpeg developers
 built on Apr 28 2013 08:32:29 with gcc 4.7 (Debian 4.7.2-5)
 configuration: --enable-gpl
 libavutil 52. 18.100 / 52. 18.100
 libavcodec 54. 92.100 / 54. 92.100
 libavformat 54. 63.104 / 54. 63.104
 libavdevice 54. 3.103 / 54. 3.103
 libavfilter 3. 42.103 / 3. 42.103
 libswscale 2. 2.100 / 2. 2.100
 libswresample 0. 17.102 / 0. 17.102
 libpostproc 52. 2.100 / 52. 2.100
[wav @ 0x34b6020] max_analyze_duration 5000000 reached at 5013333 microseconds
Guessed Channel Layout for Input Stream #0.0 : stereo
Input #0, wav, from '/home/manu/Musique/seq-3341-3-16bit.wav':
 Duration: 00:01:00.00, bitrate: 1536 kb/s
 Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 48000 Hz, stereo, s16, 1536 kb/s
Output #0, null, to 'pipe:':
 Metadata:
 encoder : Lavf54.63.104
 Stream #0:0: Audio: pcm_s16le, 48000 Hz, stereo, s16, 1536 kb/s
Stream mapping:
 Stream #0:0 (pcm_s16le) -> ebur128
 ebur128 -> Stream #0:0 (pcm_s16le)
Press [q] to stop, [?] for help
[Parsed_ebur128_0 @ 0x34b8660] t: 0.0999792 M:-120.7 S:-120.7 I: -70.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.199979 M:-120.7 S:-120.7 I: -70.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.299979 M:-120.7 S:-120.7 I: -70.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.399979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.499979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.599979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.699979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.799979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.899979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 0.999979 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.09998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.19998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.29998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.39998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.49998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.59998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.69998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.79998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.89998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 1.99998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 2.09998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 2.19998 M: -40.0 S:-120.7 I: -40.0 LUFS LRA: 0.0 LU
...
(snip)
...
[Parsed_ebur128_0 @ 0x34b8660] t: 59.5 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 59.6 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 59.7 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 59.8 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 59.9 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU
[Parsed_ebur128_0 @ 0x34b8660] t: 60 M: -40.0 S: -40.0 I: -23.0 LUFS LRA: 17.0 LU
size=N/A time=00:01:00.00 bitrate=N/A
video:0kB audio:11250kB subtitle:0 global headers:0kB muxing overhead -100.000191%
Summary:
Integrated loudness:
 I: -23.0 LUFS
 Threshold: -37.5 LUFS
Loudness range:
 LRA: 17.0 LU
 Threshold: -47.4 LUFS
 LRA low: -40.0 LUFS
 LRA high: -23.0 LUFS

Mode graphique :

manu@debian-wheezy:~/Sources/ffmpeg-1.2$ ./ffplay -f lavfi -i
 "amovie='/home/manu/Musique/seq-3341-3-16bit.wav',ebur128=video=1:meter=18 [out0][out1]"
ffplay version 1.2 Copyright (c) 2003-2013 the FFmpeg developers
 built on Apr 28 2013 10:59:36 with gcc 4.7 (Debian 4.7.2-5)
 configuration: --enable-gpl --enable-nonfree
 libavutil 52. 18.100 / 52. 18.100
 libavcodec 54. 92.100 / 54. 92.100
 libavformat 54. 63.104 / 54. 63.104
 libavdevice 54. 3.103 / 54. 3.103
 libavfilter 3. 42.103 / 3. 42.103
 libswscale 2. 2.100 / 2. 2.100
 libswresample 0. 17.102 / 0. 17.102
 libpostproc 52. 2.100 / 52. 2.100
[wav @ 0x2b76320] max_analyze_duration 5000000 reached at 5013333 microseconds
[Parsed_amovie_0 @ 0x2b514c0] Channel layout is not set in output stream 0, guessed channel layout is 'stereo'
[lavfi @ 0x2b51d80] Estimating duration from bitrate, this may be inaccurate
Input #0, lavfi, from 'amovie='/home/manu/Musique/seq-3341-3-16bit.wav',ebur128=video=1:meter=18 [out0][out1]':
 Duration: N/A, bitrate: N/A
 Stream #0:0: Video: rawvideo (RGB[24] / 0x18424752), rgb24, 640x480 [SAR 1:1 DAR 4:3], 48k tbr, 48k tbn, 48k tbc
 Stream #0:1: Audio: pcm_f64le, 48000 Hz, stereo, dbl, 6144 kb/s
[Parsed_ebur128_1 @ 0x2b4ffc0] Summary:vq= 0KB sq= 0B f=0/0

Integrated loudness:
 I: -23.0 LUFS
 Threshold: -37.5 LUFS

Loudness range:
 LRA: 17.0 LU
 Threshold: -47.4 LUFS
 LRA low: -40.0 LUFS
 LRA high: -23.0 LUFS

Et vous obtenez un graphique :

capture écran mesure r128 avec FFmpeg

Écran mesure r128 avec FFmpeg

Pour le moment, il n’est pas possible de mesurer le true-peak.

Written by manu

28/04/2013 at 12:23

Publié dans Outils

Tagged with , ,

r128x avec interface graphique

leave a comment »

Le projet r128x vient d’être mis à jour avec une version graphique. Ce logiciel permet les mesures de loudness, lra et true-peak de fichiers audio sous Mac OS x.6 et au delà. Il est distribué sous licence GPL.

Written by manu

14/04/2013 at 06:08

Publié dans Outils

Tagged with ,

r128x, mesure loudness sous Mac OS X

with 2 comments

Pour ceux que l’installation de libebur128 rebute malgré mes conseils, j’ai essayé d’utiliser cette bibliothèque pour développer une application Mac OS X en ligne de commande qui puisse être utilisée sans devoir installer des bibliothèques supplémentaires.

r128x utilise donc libebur128 pour les mesures Integrated Loudness et Loudness Range, et fait appel aux services de CoreAudio pour lire les fichiers audio et effectuer le sur-échantillonage nécessaire à la mesure True Peak. Licence open source.

Il y a un exécutable Intel téléchargeable directement ici.

Written by manu

16/09/2012 at 12:56

Publié dans Outils

Tagged with , ,

freelcs : correction du loudness open source

leave a comment »

Lors des RMLL 2012, j’ai eu l’occasion de découvrir freelcs, un serveur de correction du loudness sur des fichiers. Cette application met en place un serveur auprès duquel vous pouvez déposer des fichiers audio. Ces fichiers sont ensuite analysés et éventuellement corrigés pour atteindre un niveau cible de -23 LUFS. L’application produit en même temps un graphique du loudness du fichier.

Cette application a été développée par un salarié de la télévision publique Finlandaise Yle.

Pour le moment, installeur sous Ubuntu 12.04 LTS avec une documentation détaillée.

Written by manu

16/07/2012 at 08:10

Publié dans Outils

Tagged with , ,

Installer libebur128 sur Mac

leave a comment »

Il y a quelque temps, j’avais mentionné cette bibliothèque opensource, libebur128.

Depuis, le projet a migré sur github et je ne trouve plus de binaires téléchargeables. Ayant quelques centaines de fichiers à mesurer prochainement, je me suis lancé dans l’installation de la bibliothèque et des applications associées sur mon MacBook Pro.

Edit du 17/09/2012 : si MacPorts vous rebute, allez voir par ici une version Mac OS X.

Edit du 18/05/2013 : Cette procédure ne fonctionne plus aujourd’hui. Il y a des problèmes de liens vers les bibliothèques, sans que j’arrive à comprendre d’où ça vient.

Edit du 23/05/2013 : Un contournement qui semble fonctionner (bien que tout cela reste à éclaircir) : après avoir effectué la configuration (cmake ..), ouvrez le fichier libebur128/build/CMakeCache.txt. Aux alentours de la ligne 1277, remplacez

LIBAVFORMAT_LDFLAGS:INTERNAL=-L/opt/local/lib;-lavformat

par

LIBAVFORMAT_LDFLAGS:INTERNAL=-L/opt/local/lib;-lavformat;-lavcodec;-lavutil

puis make.

(Fin des edits)

Point de départ : un MacBook Pro 2011 i7 sous Snow Leopard (X.6.8), muni des outils développeurs Apple.

Les dépendances

La bibliothèque elle-même ne requiert aucun autre élément, mais pour utiliser les applications, il faut :

  • glib
  • gtk
  • taglib

Pour pouvoir lire un certain nombre de fichiers, j’ai aussi installé :

  • ffmpeg (pour lire l’audio dans des fichiers vidéo)
  • libsndfile (pour les fichiers wav)

Heureusement, il y a une solution simple pour installer tout cela sur Mac, c’est MacPorts.

Je vous rappelle que pour utiliser MacPorts, il faut avoir les outils développeurs Apple installés.

Donc, installer les outils développeurs si ce n’est pas déjà fait puis installer MacPorts (un installeur mpkg standard Mac).

Une fois MacPorts installé, il faut utiliser le Terminal (/Applications/Utilitaires/Terminal) pour installer les logiciels cités :


sudo port install glib2

sudo port install gtk2

sudo port install taglib

sudo port install ffmpeg

sudo port install libsndfile

Hop, c’est terminé pour les dépendances. Il reste néanmoins à installer l’utilitaire cmake pour faciliter la compilation :

sudo port install cmake

Récupérer les sources

Pour récupérer les sources, le plus simple est d’utiliser git installé en standard sur votre Mac.

[Edit]

On me susurre dans l’oreillette que non, git n’est pas installé en standard sur Snow Leopard. J’avais du l’installer un jour et oublier. Il y a deux options pour installer git sur Snow Leopard :

Avec MacPorts en utilisant le commande


sudo port install git-core

Ou en utilisant un paquet Mac que l’on trouve chez git-osx-installer.

[/Edit]

Lancer le Terminal, normalement par défaut vous êtes dans votre $HOME. Puis :


git clone https://github.com/jiixyj/libebur128

cd libebur128/

git submodule init

git submodule update

Voilà, vous disposez des sources mises à jour.

Compilation

Vous êtes normalement toujours dans le répertoire libebur128/. Saisissez maintenant :


mkdir build

cd build

cmake ..

make

Si tout se passe bien, vous avez terminé !

Utilisation

Si vous êtes toujours dans le répertoire build/, saisissez :


./loudness scan -l -p dbtp /chemin/vers/unfichier.wav

Et voilà, de bien beaux résultats.

Loudness,      LRA,  True peak
-23.0 LUFS,  0.0 LU, -22.9 dBTP, seq-3341-1-16bit.wav

Written by manu

11/12/2011 at 09:52

Publié dans Outils

Tagged with , ,