L'enregistrement mp3 en temps r�el, 2�me partie

ArticleCategory: [Artikel Kategorie]

Applications

AuthorImage:[Bild des Autors]

[Photo of the Author]

TranslationInfo:[Author and translation history]

original in nl Philip de Groot

nl to en Philip de Groot

en to fr Laurent Richard

AboutTheAuthor:[Über den Autor]

Il va bient�t obtenir son doctorat � l'universit� de Nijmegen avec pour sujet la chimiom�trie. Il aime travailler avec Linux et �crit r�guli�rement ses exp�riences.

Abstract:[Zusammenfassung]

Cet article est la suite d'une pr�c�dente publication � propos de l'enregistrement de mp3 en temps r�el d'�missions radio par exemple. Dans le pr�c�dent article, nous montrions comment un gros fichier mp3 est obtenu, par exemple 650 MB pour 12 heures ou 1.3 gigabytes pour 24 heures de musique approchant la qualit� CD (128 kbit/s; stereo). Comment manipuler un tel fichier ? Est-il possible de faire des enregistrements encore plus longs ou de compresser la musique encore mieux ? Qu'en est-il de la qualit� des enregistrements de mp3 ? Nous allons nous attacher � r�pondre � ces questions.

ArticleIllustration:[Titelbild des Artikels]

[Illustration]

ArticleBody:[Der eigentliche Artikel]

Editer des fichiers mp3

Supposons que vous ayez fait un magnifique enregistrement de 24 heures, par exemple le Top 300 des ann�es 80 comme diffus� sur Loostad radio, et que vous vouliez partager ce fichier en d'autres fichiers plus petits, et donc plus appropri�s. Pendant le processus de partage, vous voulez aussi enlever les publicit�s et les bulletins d'actualit�. Comment faire cela au mieux ? Une fa�on de le faire aurait �t� de :
Th�oriquement, ce proc�d� fonctionnerait et contrairement � une id�e re�ue, le r�encodage d'un signal mp3 d�cod� avec le m�me algorithme mp3 n'a pas comme cons�quence une perte de qualit�. Il y a cependant dans la pratique quelques probl�mes:

En bref, vous avez besoin d'un programme qui soit capable d'�diter les fichiers mp3 PROPREMENT DITS ! De tels programmes existent, mais pas (pour le moment) sous Linux. Un certain nombre de ces programmes sont disponibles sous Windows, mais la plupart ont un gos probl�me: ils ne sont pas capables de manipuler un fichier mp3 d'une taille de 650 MB! J'ai trouv� un programme qui est capable de faire le travail, si vous �tes patient: l'�diteur mp3 'Manns'. J'utilise ce programme sous Windows98. Dans l'interface graphique, vous pouvez indiquer le commencemment et la fin du morceau d�sir� du fichier mp3 initial. Vous pouvez copier ce morceau dans un nouveau fichier avec la commande 'trim'. Ce programme est un 'donationware ', ce qui signifie que vous n'�tes pas oblig�s de le payer, mais vous �tes invit�s � le faire si le programme convient � vos besoins. Ce programme a deux inconv�nients: il est terriblement LENT sur un fichier de 650 MB et il peut seulement manipuler des taux CONSTANTS !!! La recherche du d�but de la derni�re heure, par exemple dans un enregistrement mp3 de 24 heures, prend un bon moment et r�clame des acc�s disque �normes. Toutefois, d�couper le morceau d�sir� du fichier mp3 est tr�s rapide (sans perte de la qualit� mp3). Jusqu'ici, je n'ai rencontr� aucun probl�me concernant l'�coute du fichier mp3 apr�s utilisation de cet �diteur. N�anmoins, je contr�le toujours les fichiers extraits en les chargeant dans l'�diteur de mp3. Si le chargement se d�roule correctement, les fichiers extraits sont corrects. Durant mes premi�res exp�riences avec cet �diteur, il m'est arriv� de cliquer sur le bouton 'trim' pendant des acc�s importants au disque. La cons�quence a �t� que les fichiers mp3 endommag�s n'�taient plus lisibles ! Pour vous donner une indication: l'�dition d'un fichier de 650 MB r�clame approximativement 1 heure, surtout pass�e � attendre (ce qui peut �tre tr�s frustrant)!

Cr�er des enregistrements de mp3 de longue dur�e (>24 heures)

Rien n'emp�che de r�aliser des enregistrement de 24 heures � partir d'une �mission de radio. Le fichier reste raisonnablement petit (par exemple 1,3 Go pour 24 heures) et peut facilement �tre enregistr� sur le disque dur. Le probl�me est diff�rent si vous voulez faire un enregistrement de, par exemple, une semaine. Il ne tiendra probablement pas sur votre disque dur et vous voudrez surmonter ce probl�me. Je me suis trouv� dans cette situation lors de l'enregistrement de 'Alltimes Top 2000' pendant la p�riode de No�l et du Nouvel An 2000 (144 heures de musique!), diffus� par la station de radio nationale publique des Pays-Bas: Radio 2. Mon disque dur �tait beaucoup trop petit pour pouvoir sauvegarder tous les enregistrements, donc j'ai d� r�soudre le probl�me d'une autre fa�on. Voici la recette pour y parvenir:
J'ai employ� le proc�d� ci-dessus pour enregistrer le Top2000 compl�tement et sans aucun probl�me ! J'ai utilis� 12 CD de sauvegarde qui ne seront plus jamais utilis�s, mais vous devez faire quelques d�penses pouvoir obtenir ce genre d'enregistrements. Comment �a fonctionne ? J'ai eu l'id�e en lisant le CD-Burning-Howto et les �tapes n�ccessaires sont expliqu�es ci-desous.:


L'avantage de cette approche est l'utilisation r�duite du processeur, pour cr�er les CD mp3. Les images existent d�j� ! Vous pouvez automatiser la proc�dure compl�te en utilisant un script: monter les images, commencer l'enregistrement des mp3, terminer l'enregistrement des mp3 et d�monter l'image apr�s 12 heures d'enregistrement, monter une deuxi�me image et continuer l'enregistrement des mp3, et ainsi de suite. J'ai grav� les CD manuellement, juste au cas o� certains probl�mes se pr�senteraient (ce qui fut le cas une fois, pour cause de support d�fecueux). Pour cette raison, j'ai cr�� 4 images: 3 images de secours au cas o� je rencontrerais des probl�mes lors de la gravure de CD (en me donnant au maximum 36 heures pour r�soudre le probl�me). Le script que j'ai utilis� ressemble � celui-ci:


#!/bin/sh
echo "loading modules for sound support..."
modprobe -k snd-card-sb16
modprobe -k snd-pcm-oss
modprobe -k snd-mixer-oss
echo "setting mixer..."
amixer set Line 31 unmute capture; amixer set Master 31; amixer set PCM 31
cd /where/ever/you/stored/the/images/
for i in 1 2 3; do
	for ii in 1 2 3 4; do
	echo "mounting image_$ii on /mnt ..."
        mount -t ext2 -o loop=3D/dev/loop1 image_$ii /mnt
        echo "starting mpegrec ..."
        mpegrec -b 128 -x -mj -o /mnt/top2000_$ii.mp3
	echo "umount /mnt"
        umount /mnt
	done
done

J'ai tout fait SANS X Window, utilisant le prompt Bash. J'ai charg� le support du son manuellement, ainsi que l'�mulation OSS (n�cessaire pour obtenir des pilotes ALSA qui fonctionnent) et le pilote du mixeur (bien s�r, vous pouvez automatiser ceci en utilisant un d�clencheur pr�-installation/post-installation dans /etc/conf.modules). La quatri�me ligne configure le mixeur correctement : la source d'enregistrement est 'line-in' et le volume a �t� ouvert au maximum . Apr�s r�glage de ces options, le script g�re le montage et le d�montage des images. En ce qui concerne les options de mpegrec: '-mj' indique un enregistrement st�r�o combin�. J'ai fait ceci parce que j'esp�rais des fichiers mp3 plus petits en utilisant cette option (ils devaient tous tenir sur 670-680 MB). Ceci s'est r�v�l� faux: le fait d'utiliser les enregistrements st�r�o ou combin�-st�r�o n'est pas pris en compte ! Quand je ferai de nouveaux enregistrements, j'utiliserai la st�r�o ordinaire. Le programme 'mpegrec' devrait s'arr�ter apr�s 12 heures. Pour r�aliser cette t�che, j'ai adapt� le code source et j'ai chang� le maximum de 24 heures (qui est simplement donn� dans le code source) en 12 heures. Malheureusement, cette approche n'a pas fonctionn�: le programme a continu� d'enregistrer apr�s 12 heures! J'ai d� arr�ter l'enregistrement toutes les 12 heures (on n'a rien sans rien...). Le script a pris soin des parties restantes. Je ne comprends plus rien � 'mpegrec': je devrais �tudier le code source tr�s attentivement...

Note:
La version la plus r�cente de cdrecord (cdrecord-1.9) m'a pos� des probl�mes avec la cr�ation des CD. La version pr�c�dente, cdrecord-1.8.1, fonctionnait sans aucun probl�me. J'ai r�solu cela en faisant �voluer les micrologiciels de mon graveur CD, un Philips CDD 3610, de la version 3,02 � la version 3,09. Au d�but, j'esp�rais que les probl�mes de gravure CD �taient provoqu�s par le noyau 2.4.3, mais ceci a sembl� �tre faux!

La qualit� des enregistrements mp3

En raison des discussions sur mon pr�c�dent article via la page anglaise de discussion , j'ai re�u un lien vers un site Web contenant des informations int�ressantes � propos de l'enregistrement de mp3. La qualit� mp3 et la connection mp3-bitrate y est particuli�rement bien expliqu�e, se concentrant sur le programme 'lame'. L'adresse est: http://www.r3mix.net/.


R�capitulation des faits les plus importants:

Tout ceci est discut� en d�tail sur le site web mentionn� si dessus!

Cr�er des enregistrements mp3 aussi petits que possible

Ci-dessous, je discuterai d'un script qui a �t� soumis par un lecteur (par courrier �lectonique). Le script ressemble � ce qui suit:


#!/bin/bash

echo "record $1 named ($3) for $2 seconds"
aumix -f ~/.aumixrc
/usr/bin/yes x | /usr/bin/radio $1 >/dev/null 2>/dev/null
sox -V -r 44100 -c 2 -t ossdsp -w -s /dev/dsp -t wav - 2>/dev/null |
lame - ~/$3.`/bin/date "+%H%M.%m-%d-%y"`.mp3 --resample 16 -b 8 -a -m m -h --lowpass 4 --highpass .12 --voice&
sleep $2
kill -9 $!
# copiez la sortie vers un r�pertoire diff�rent. Si vous le souhaitez,
# remplacez cp par rcp ou scp et copiez vers une autre machine :
cp $3.*`/bin/date "+.%m-%d-%y"`.mp3 /tmp/outputdir

Le but principal du script est d'obtenir des enregistrements radio compr�hensibles qui ne n�cessitent que 3.5 Mo/heure d'espace disque! Par compr�hensible, je veux dire qu'on devrait pouvoir interpr�ter les paroles de l'enregistrement. Bien s�r, la qualit� de la musique est horrible! La premi�re ligne du script configure le mixeur et lance un programme de carte radio et 'sox'. Le 'truc' r�side dans les options de 'lame', que nous allons �tudier maintenant:

--resample 16 -b 8 -a -m m -h --lowpass 4 --highpass .12 --voice
--resample 16 Redefinit la fr�quence d'�chantillonage du fichier de sortie de 44 kHz � 16 kHz.
-b 8 Fixe la fr�quence d'�chantillonage � 8 kbit/s (bouh !).
-a Combine le canal st�reo � un enregistrement mono.
-m m Force l'encodage mp3 en mono.
-h Une option pour utiliser la haute-qualit� d'enregistrement mp3 (plus lent).
--lowpass 4 Fixe le filtre 'lowpass' � une valeur de 4 kHz. Tous les signaux (fr�quences) plus �lev�e que 4 kHz sont retir�s.
--highpass .12 Fixe le filtre 'highpass' � une valeur de .12 kHz. Tous les signaux (fr�quences) en dessous de .12 kHz sont retir�es.
--voice Utilise une technique de compression mp3 optimis�e pour la parole.

Il est clair qu'un compactage �lev� peut �tre obtenu pour la parole. La plupart du temps, ceci ne sera pas choisi. Maintenant, au moins la possibilit� est indiqu�e!

Un script standard pour cr�er des enregistrements mp3

Ce script a �t� envoy� via les pages de discussion (j'appr�cie ce choix; chacun peut profiter de cette information !). C'est le grand avantage des pages de discussion disponibles pour l'article pr�c�dent (et �galement pour l'article actuel). Chacun peut signaler ses exp�riences, demander un conseil � d'autres visiteurs si des ennuis surgissent, en bref: une quantit� d'information �norme est rassembl�e et (si tout va bien) est disponible pour chacun! Le script, appel� 'mp3_record', ressemble � ce qui suit:

#!/bin/sh
 /usr/local/bin/mpegrec \
 -l 5400 \
 -x '--preset fm \
 --tt "Computers in Your Life" \
 --tl "Open Line with Tom Wieble" \
 --ta "Tom Wieble" --ty `date +%Y` \
 --tg "Speech" \
 --tc "Copyright (c) 1997 - `date +%Y` WOSU" -c' \
 -o open_line_`date +%d%b%y`_`date +%H%M`.mp3

L'option '-l 5400' fixe le temps d'enregistrement � 90 minutes. Toutes les options apr�s '-x' sont directement redirig�es vers 'lame' (lignes 4 � 9) et l'option '-o' sauvegarde le fichier sous 'date_et_heure.mp3'. Ces lignes peuvent �tre adapt�es comme vous le souhaitez. A cette fin, il pourrait �tre int�ressant de se pencher de plus pr�s sur les option de 'lame'. Les options actuelles sous expliqu�es dans le tableau ci-dessous:

=
--preset fm Lame conna�t certains r�glages standards. 'fm' sert aux enregistrements d'�missions en fm, mais je n'aime pas les qualit�s d'enregistrement compar� au taux d'�chantillonage standard de 128 kbit/s. La raison principale vient des filtres appliqu�s dans 'lame'.
--tt "Computers in Your Life" '--tt' d�finit le titre de l'enregistrement (30 caract�res max).
--tl "Open Line with Tom Wieble" '--tl': album, ou: source originelle (30 caract�res max).
--ta "Tom Wieble" --ty `date +%Y` '--ta': artiste (30 caract�res max).
--tg "Speech" '--tg': genre (nom ou num�ro).
--tc "Copyright (c) 1997 - `date +%Y` WOSU" -c" '--tc': commentaires (informations compl�mentaires; 30 caract�res max).

En r�sum�: une mani�re agr�able de cr�er un fichier mp3, incluant une date d'enregistrement et l'heure et pouvant inclure toute sorte d'information compl�mentaire. Ecrire tout cela dans un script r�clame du temps, mais c'est bien de voir que c'est r�alisable !