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

Posts Tagged ‘open source

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.

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 , ,

libebur128 : une bibliothèque EBU R128 open source

with one comment

Une bonne petite bibliothèque en C pour effectuer des mesures EBU R128 et sous licence libre de surcroît (licence MIT), c’est ce que vous trouverez à l’adresse suivante : http://www-public.tu-bs.de:8080/~y0035293/libebur128.html. (Mise à jour du 10/12/2011 : libebur128 est maintenant hébergé à l’adresse suivante : https://github.com/jiixyj/libebur128).

Au menu (si je puis dire, c’est un outil en ligne de commande) : mesure du loudness intégré, du LRA et du maximum true peak sur l’ensemble d’un fichier, et possibilité de générer un tableau de l’évolution du loudness momentary ou short-term en fonction du temps.

Il y a plusieurs dépendances à installer, et l’auteur propose, outre le code source, deux exécutables pour Linux et Windows.

J’ai effectué un certain nombre de tests pour évaluer la précision des résultats et jusqu’à présent, cet outil paraît avoir une très bonne conformité à la recommandation. Pour le moment, le seuil relatif pour la mesure du niveau de loudness est à -8 dB et le chevauchement des mesures short-term est à 50%. Il est probable que la recommandation évolue prochainement vers un seuil relatif à -10 dB et un chevauchement de 75%, donc attention aux résultats à l’avenir.

Merci à Jan Kokemüller pour cet outil.

Mise à jour du 3 avril 2011 :

La bibliothèque est maintenant en version 0.3.0, avec chevauchement à 75%.

Pour suivre les versions de cette bibliothèque, le plus simple est de s’abonner à ce fil de discussion où les nouvelles versions sont annoncées : libebur128 – (yet another) EBU R 128 implementation.

Written by manu

24/03/2011 at 17:56

Publié dans Outils

Tagged with , ,