|
|
Ce document est disponible en: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce Arabic |
par Philip de Groot L´auteur: 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. Sommaire: |
Résumé:
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.
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)!
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!
Récapitulation des faits les plus importants:
#!/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 | 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!
#!/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 !
|
Site Web maintenu par l´équipe d´édition LinuxFocus
© Philip de Groot, FDL LinuxFocus.org Cliquez ici pour signaler une erreur ou envoyer un commentaire à Linuxfocus |
Translation information:
|
2001-07-24, generated by lfparser version 2.17