[OpenBSD]

[Index de la FAQ] [Section 12 - Questions spécifiques aux plates-formes] [Section 14 - Configuration des disques]

13 - Multimedia


Table des matières


13.1 - Comment configurer mon périphérique audio ?

Les périphériques concernant l'audio sous OpenBSD sont : /dev/audio, /dev/sound, /dev/audioctl et /dev/mixer. Pour une belle introduction à la couche de support audio, vous pouvez lire la page de manuel audio(4).

Tous les matériels audio supportés sont déjà inclus dans le noyau GENERIC, il n'y a donc pas besoin de configuration supplémentaire ou d'installation de drivers. Pour trouver des informations spécifiques à la puce de votre carte son, vous devrez déterminer quelle puce vous avez. Les puces supportées peuvent être trouvées sur la page des matériels supportés pour votre plate-forme. Si vous avez déjà OpenBSD lancé, cherchez l'apparition d'un driver de carte son dans la sortie de la commande dmesg(1), et lisez le manuel du driver pour des informations plus spécifiques comme les options et autres détails sur celui-ci. Voici un exemple d'une puce audio dans une sortie dmesg :

auich0 at pci0 dev 31 function 5 "Intel 82801BA AC97" rev 0x04: irq 10, ICH2 AC97 ac97: codec id 0x41445360 (Analog Devices AD1885) ac97: codec features headphone, Analog Devices Phat Stereo audio0 at auich0

Vous pouvez tester si votre matériel audio fonctionne correctement en lui envoyant un fichier audio (souvent d'extension .au). Si vous ne disposez pas de fichier audio, vous pouvez envoyer n'importe quel fichier texte ou binaire sur le périphérique :

$ cat filename > /dev/audio
Si vous entendez quelque chose (si ne n'est pas un fichier audio le son ne sera pas agréable), cela signifie que la puce de votre matériel est supportée par OpenBSD et fût reconnue et configurée par le noyau lors du démarrage.

Remarque : Toutes les variantes et utilisations de chaque puce n'ont pas été testées ou débuguées.

Si vous n'avez entendu aucun son après avoir lancé la commande précédente, il peut y avoir plusieurs raisons possibles :

Notez que même si vous avez entendu du son, cela ne signifie pas forcément que tout fonctionnera comme espéré. Si vous rencontrez des problèmes en jouant du son, voici d'autres vérifications à effectuer :

Pour configurer vos périphériques audio, comme la vitesse de lecture, vous pouvez utiliser audioctl(1). Pour configurer le volume sonore et les autres paramètres de mixage, vous pouvez utiliser mixerctl(1). Ces deux utilitaires sont fournis avec le système de base.

Par exemple, pour configurer le volume sonore des canaux gauche et droite à 200, vous pourriez lancer la commande (voir note 2 plus bas) :

$ mixerctl outputs.master=200,200 outputs.master: 255,255 -> 207,207
Remarquez que la valeur est devenue 207. La raison à cela est que le périphérique de ma carte audio est un codec AC'97, qui utilise seulement 5 bits pour le contrôle, ce qui ne laisse que 32 valeurs possibles. Evidemment, les autres matériels peuvent avoir une résolution différente.

Pour activer le canal "master", vous devriez faire :

$ mixerctl outputs.master.mute=off outputs.master.mute: on -> off

Pour que vos changements soient permanents vous devrez éditer /etc/mixerctl.conf, par exemple :

$ cat /etc/mixerctl.conf outputs.master=200,200 outputs.master.mute=off outputs.headphones=160,160 outputs.headphones.mute=off
Note 1 : Vous pourriez voir que plus de sorties sont disponibles sur votre carte son ou votre carte mère. Ceci est du au fait que beaucoup de puces audio sont généralement utilisées pour connecter les jacks sur les sorties, et toute option de chaque puce audio n'est pas forcément accessible depuis le monde extérieur.

Note 2 : Sur votre système, il se peut que les sorties des périphériques soient désignées autrement. Ainsi, vous pourriez ne pas avoir "outputs.master" comme dans l'exemple précédent et devriez ajuster "outputs.output" ou encore autre chose. Cela dépend du pilote audio mais il est facile de trouver la dénomination correcte en listant tous les contrôles possibles avec :

$ mixerctl -a

13.2 - Jouer différents types de formats audio

Audio digitalisée

Formats audio sans perte (AU, PCM, WAV, FLAC, TTA)

Certains formats audio sans perte peuvent être joués sans qu'un logiciel tierce partie ne soit nécessaire, ils contiennent les enregistrements digitaux non compressés en flots d'octets. Ces formats incluent les fichiers Sun audio (AU), les fichiers raw PCM (sans en-têtes) et les RIFF WAV.

Pour jouer un tel fichier, vous devrez connaître ses paramètres principaux : le type d'encodage, le nombre de canaux, la fréquence, et le nombre de bit par morceau. Si vous ignorez ces paramètres, vous pourrez les retrouver en utilisant l'utilitaire : file(1).

$ file music.au music.au: Sun/NeXT audio data: 16-bit linear PCM, stereo, 44100 Hz
$ file music.wav music.wav: Microsoft RIFF, WAVE audio data, 16 bit, stereo 44100 Hz
La seule chose qu'il vous reste à savoir sur ces fichiers d'exemple est qu'ils sont encodés dans le format d'octet "little-endian" utilisant la quantisation linéaire signée. Vous pouvez vérifier cela en lisant son en-tête avec hexdump(1). Si vous utilisez un fichier sans en-tête (raw), il n'y a aucun moyen de connaître les paramètres à l'avance. Configurez les paramètres suivants en utilisant audioctl(1).
play.encoding=slinear_le play.rate=44100 play.channels=2 play.precision=16
Ensuite, envoyez le fichier audio au périphérique son :
$ cat music.au > /dev/sound
Si vous avez appliqué les bons paramètres, vous devriez entendre ce que vous souhaitiez entendre.

Remarque : Utilisez toujours /dev/sound, et non /dev/audio, si vous souhaitez que les paramètres appliqués restent en place.

Il y a d'autres utilitaires que vous pouvez utiliser, comme aucat(1) et audio/waveplay dans les paquetages et les ports. Bien sur, des logiciels populaires comme XMMS sont aussi capables de jouer ces fichiers aussi bien que d'autres formats;

A l'inverse de ce qui a été dit précédemment, il existe des formats audio sans perte de qualité. Free Lossless Audio Codec (FLAC) et TTA en sont des exemples. L'implémentation FLAC a été portée sous OpenBSD et peut être trouvée dans audio/flac dans les paquetages et les ports.

Formats audio utilisant la compression par perte (Ogg Vorbis, MP3, WMA, AAC)

La compression par perte de qualité est souvent utilisée pour l'audio ou les autres fichiers multimédia. L'idée est qu'un certain volume de données est supprimé pendant la compression, en utilisant une méthode qui fait que le résultat compressé est toujours très exploitable et dispose d'une bonne qualité pour être joué. L'avantage de ces techniques est qu'ils autorisent de plus gros ratios de compression, ce qui résulte en une plus faible place disque utilisée et de plus besoins en bande passante.

Un bon exemple est le format libre, ouvert et non déposé Ogg Vorbis. Pour jouer des fichiers Ogg Vorbis, vous pouvez utiliser l'utilitaire ogg123, qui est inclus dans le paquetage audio/vorbis-tools. Par exemple :

$ ogg123 music.ogg Audio Device: Sun audio driver output Playing: music.ogg Ogg Vorbis stream: 2 channel, 44100 Hz Time: 00:02.95 [02:21.45] of 02:24.40 (133.1 kbps) Output Buffer 87.5%
Bien sur, les plugins Ogg Vorbis existent pour beaucoup d'autres logiciels audio.

Un autre exemple est le très populaire encodage MPEG-1 Audio Layer 3 (MP3), qui a, cependant, ses problèmes de redistribution et brevets. Beaucoup de programmes peuvent jouer des fichiers MP3, consultez la section audio du système de paquetages et de ports et choisissez celui que vous souhaitez.

Que dire du format Windows Media Audio (WMA) ? Les fichiers de ce type peuvent être lus en utilisant x11/mplayer qui se sert de l'architecture FFmpeg.

Un bon point de départ pour en savoir plus sur les différents formats de fichiers audio est de lire l'article Wikipedia suivant : Audio file formats (en anglais).

Les périphériques audio au taux d'échantillonnage fixe

Certaines cartes son ne peuvent utiliser qu'un taux d'échantillonnage fixe. Ainsi, vous pourriez être en train d'essayer de lire un fichier à 22050 Hz au travers d'un périphérique sonore bloqué à 48000 Hz.

Il existe des utilitaires audio dans les paquetages et l'arbre des ports qui peuvent résoudre ce problème en ré-échantillonnant le son. Par exemple, x11/mplayer lancé avec l'option "-srate" permet de spécifier l'échantillonnage désiré. Vous devriez spécifier le taux utilisé par votre carte son. Le serveur de sons de KDE, artsd, ainsi que certains jeux supportent des options similaires. Référez-vous à la documentation de votre application afin de voir si celle-ci supporte le ré-échantillonnage.

Son synthétisé

MIDI

Le protocole "Musical Intrument Digital Interface" (MIDI) fournit une méthode standardisée et efficace pour représenter une performance musicale sous forme de données électroniques. Un fichier MIDI peut être très petit par rapport à un fichier audio traditionnel, car il ne contient que les informations nécessaires au synthétiseur pour jouer les sons.

Les deux technologies qui sont utilisées dans les synthétiseurs musicaux sont :

La plupart des informations concernant MIDI sur OpenBSD peuvent être trouvées dans la page de manuel midi(4).

L'outil principal pour prendre en charge les fichiers MIDI standards est midiplay(1). Pour obtenir une liste des périphériques MIDI disponibles sur votre système, essayez ceci :

$ midiplay -l 0: SB MIDI UART 1: SB Yamaha OPL3 2: PC speaker
Dans cet exemple, nous voyons une sortie UART sur laquelle un périphérique externe peut être connecté, le synthétiseur intégré Yamaha OPL3 FM et le classique vieux PC Speaker.

Remarque : Toutes les cartes ne disposent pas de synthétiseur MIDI intégré, vous pourriez ne voir qu'une sortie UART et un "PC speaker" listé.

Jouer un fichier MIDI standard, dans cet exemple à travers le synthétiseur OPL3, est aussi simple que :

$ midiplay -d 1 file.mid
Remarquez que nous avons spécifié le périphérique MIDI de numéro 1, car le périphérique 1 est utilisé par défaut.

Plus d'informations : Tutorial sur la synthétisation MIDI et de Musique

MOD

Un module "Soundtracker" est un format binaire qui mixe les plages audio avec des ordres de séquences, autorisant à jouer de très grands morceaux de musique digitalisée avec un qualité raisonnablement bonne.

Le moyen le plus simple de jouer vos fichiers MOD favoris sur OpenBSD est probablement d'utiliser le logiciel XMMS, disponible via les paquetages et les ports. Vous devriez installer le "subpackage" -mikmod pour XMMS afin de lui permettre d'utiliser la bibliothèque sonore MikMod, qui supporte les modules de formats MOD, S3M, IT et XM.

Vous trouverez aussi liste de "trackers" dans la section audio de la collection de ports et de paquetages, comme par exemple tracker, soundtracker. Avec ces trackers, vous ne pouvez pas seulement jouer mais aussi générer vos propres modules. Remarquez que tous les trackers ne sont pas supportés par les outils de l'arbre des ports. Vous êtes invités à envoyer un port de votre programme de tracker favori.

13.3 - Comment jouer des CDs dans OpenBSD ?

Pour jouer un CD audio, en utilisant la sortie analogique de votre lecteur CD-ROM, vous pouvez

Un utilitaire pratique en ligne de commande appelé cdio(1) a été inclut dans le système de base. Appelé sans paramètres, il entrera en mode interactif. Si vous souhaitez jouer un CD-ROM, entrez :

$ cdio play

Cela lira depuis le premier lecteur CD-ROM, cd0, par défaut. Notez que l'utilisateur qui lance cdio doit bénéficier des permissions de lecture sur le périphérique CD-ROM (ex. /dev/rcd0c). Etant donné que par défaut ce périphérique n'est accessible en lecture que par root et le groupe "operator", pour plus de facilité vous pouvez ajouter l'utilisateur au groupe operator en éditant la ligne correspondante dans /etc/group. Une autre solution est de modifier les permissions du périphérique comme vous le souhaitez.

Vous aurez peut-être besoin d'activer l'entrée CD au niveau du mixeur de sons. Au même titre que les sorties, le nom réel de ce canal d'entrée varie selon les systèmes. Mais la commande à utiliser ressemble à la commande suivante :

$ mixerctl inputs.cd.mute=off

Si vous préférez une belle GUI, il y a beaucoup de lecteurs de CDs basés sur X11 dans la collection de paquetages et de ports. Consultez simplement la section audio.

13.4 - Puis-je utiliser OpenBSD pour enregistrer des séquences audio ?

Oui, pour le faire vous pouvez utiliser /dev/sound ou /dev/audio comme périphérique d'entrée.

Premièrement, configurez les paramètres d'enregistrement corrects à l'aide de audioctl(1), exemple :

record.encoding=mulaw record.rate=8000 record.channels=1 record.precision=8
J'utilise ici une quantisation non uniforme avec l'algorithme mu-law, un seul canal, une fréquence de 8000 Hz et 8 bits par morceau. Les algorithmes mu-law et A-law sont spécialement utiles lors de la digitalisation de la voix, car il fournissent une meilleure efficacité au codage. Cela signifie que la qualité de l'enregistrement sera meilleure pour un nombre de bit par morceau donné, ou que moins de bits seront requis pour une qualité donnée.

Si vous décidez d'adopter les valeurs ci-dessus (seulement celles-ci !), vous pouvez utiliser le périphérique /dev/audio qui les utilise par défaut, donc vous n'avez pas besoin de les configurer explicitement ici.

Puis, soyez sur de sélectionner le bon matériel pour enregistrement et que la source n'est pas muette. Vous pouvez configurer les paramètres nécessaires en utilisant mixerctl(1). Par exemple :

inputs.mic.mute=on inputs.mic.preamp=on inputs.mic.source=mic0 record.source=mic record.volume=255,255 record.volume.mute=off record.mic=0 record.mic.mute=off
Dans cet exemple j'enregistrerais à partir d'un microphone. La pré-amplification a été activée, car sinon le son enregistré peut être quelque peu silencieux.

Pour faire l'enregistrement utilisez simplement cat(1) ou dd(1):

$ dd if=/dev/audio of=myvoice.raw
Appuyez sur [CTRL]-C pour mettre fin à l'enregistrement. La sortie est une séquence d'octets brute. Ce son peut être joué, comme expliqué dans Jouer différents formats audio. Pour un test rapide, en considérant que les paramètres audio sont configurés correctement :
$ dd if=myvoice.raw of=/dev/audio

Une fois de plus si vous spécifiez d'autres paramètres d'encodage, vous devrez utiliser le périphérique /dev/sound. Un autre exemple de paramètres d'encodage :

record.encoding=slinear_le record.rate=22050 record.channels=2 record.precision=8
Le résultat sera un PCM avec une quantisation linéaire (uniforme) signée, enregistré dans l'ordre little-endian à une fréquence de 22050 Hz, en stéréo, et en utilisant 8 bits pour représenter une morceau. (2^8 = 256 niveaux de quantisation).

Note : Vous souhaiterez probablement convertir cet enregistrement brut (sans en-tête) en un format utilisable pour un traitement ultérieur. Lisez FAQ 13 - Conversion afin d'en savoir plus.

13.5 - Parlez moi de l'encodage Ogg Vorbis et MP3 ?

Ces formats ont déjà été mentionnés dans Jouer différents formats audio. Dans cette section nous donnerons une brève introduction à l'encodage de tels fichiers. Si vous êtes intéressé par le fonctionnement de ces codecs de compression audio, de plus amples informations peuvent être trouvées dans les articles Wikipedia concernant Vorbis et MP3.

Ogg Vorbis

L'encodage de formats audio raw, WAV ou AIFF en Ogg Vorbis peut être réalisé via l'utilitaire oggenc, faisant partie du paquetage audio/vorbis-tools, qui est disponible via le système de ports et de paquetages d'OpenBSD.

Disons que vous avez un certain nombre de fichier WAV à encoder, par exemple votre album favori que vous venez juste d'extraire de son CD. Pour encoder tous ces fichiers en utilisant une fréquence d'environ 192 kbps, vous pouvez utiliser une commande comme celle ci :

$ oggenc *.wav -b 192
Une fois terminé, cela vous fournira un ensemble de fichiers .ogg dans le dossier courant. Des exemples plus précis ainsi que les options d'encodage peuvent être trouvés dans le manuel oggenc.

MPEG-1 Audio Layer 3 (MP3)

Si pour quelque raison que ce soit, vous souhaitez utiliser le format MP3, vous pouvez utiliser "Lame ain't an MP3 encoder" (LAME), un outil d'éducation utilisé pour apprendre l'encodage MP3. Lame est inclut dans l'arbre des sources OpenBSD. Notez que pour des raisons de brevets MP3, vous ne trouverez pas ce paquetage dans le Set de CDs officiels.

Ci-dessous ce trouve un exemple simple d'encodage d'un fichier WAV avec une fréquence de 192 kbps :

$ lame -b 192 track01.wav track01.mp3
Pour toutes les options et les détails, merci de consulter le manuel fournit avec lame.

13.6 - Comment lire des vidéos DVDs sous OpenBSD ?

Pour l'instant, OpenBSD supporte les médias DVD à travers le système de fichiers ISO 9660 qui est aussi utilisé pour les CD-ROMs et, depuis la version 3.8, également à travers le système de fichiers plus récent, Universal Disk Format (UDF), présent sur certains DVDs. Cependant, presque tous les disques DVD-Video et DVD-ROM utilisent le format passerelle UDF, qui est une combinaison des systèmes de fichiers DVD MicroUDF (sous-ensemble de UDF 1.02) et ISO 9660. Ce format est utilisé afin de garantir la compatibilité ascendante.

Puisque la plupart des ordinateurs disposant d'un lecteur DVD-ROM utilisent un décodage logiciel, il est recommandé d'avoir au moins un processeur Pentium II 350-MHz ou équivalent pour disposer d'une bonne qualité d'écoute.

Quelques utilitaires de lecture DVD populaires ont été portés sur OpenBSD. Comme par exemple ogle ,mplayer, xine, et kaffeine. Veuillez lire les instructions d'installation livrées avec ces paquetages, car ces fichiers peuvent nécessiter plus de configuration. Avec ces utilitaires il est possible de lire des DVD directement en accédant au périphérique raw. Bien sur, il est possible de monter d'abord le DVD en utilisant mount_cd9660(8), et de jouer les fichiers sur ce système de fichiers ou un autre.

Remarque :

13.7 - Comment graver des CDs et DVDs ?

13.7.1 - Introduction et configuration de base

Vous devriez tout d'abord être sur que votre graveur CD/DVD a bien été reconnu et configuré par le noyau. La plupart des périphériques SCSI sont reconnus. Les matériels IDE/ATAPI et USB sont supportés au travers de l'émulation SCSI. Vous trouverez rapidement votre périphérique dans la sortie d'un dmesg(1). Cherchez simplement les lignes commençant par "cd", par exemple :
cd0 at scsibus0 targ 0 lun 0: <TOSHIBA, CD-ROM XM-5702B, 2826> SCSI0 5/cdrom removable cd1 at scsibus1 targ 4 lun 0: <PLEXTOR, CD-R PX-R412C, 1.04> SCSI2 5/cdrom removable

Mais cdrecord -scanbus ne fonctionne pas!

Oui. OpenBSD utilise un espace de nommage de périphérique différent de celui du système d'exploitation pour lequel cdrecord a été écrit. Tous les périphériques doivent être dans la sortie dmesg, comme mentionné ci-dessus. L'information dont vous avez besoin se trouve ici.

Error: mount_cd9660: /dev/cd2c on /mnt/cdrom: No such file or directory

Par défaut, l'installeur OpenBSD ne crée que deux périphériques cd cd0 et cd1. Pour commencer à utiliser votre périphérique cd2, vous devez créer le périphérique nécessaire pour celui-ci. La méthode recommandée pour cela est d'utiliser le script MAKEDEV(8) (Sélectionnez votre plate-forme) :
# cd /dev # ./MAKEDEV cd2
Dans ce qui suit, nous accèderons principalement au graveur de CD/DVD à travers le périphérique raw et non le périphérique block.

Vérifier le fonctionnement du graveur de CD/DVD

Il est recommandé de vérifier que votre graveur de CD/DVD fonctionne correctement. Dans cet exemple, j'utilise un graveur DVD USB 2.0 :
cd2 at scsibus2 targ 1 lun 0: <LITE-ON, DVDRW LDW-851S, GS0C> SCSI0 5/cdrom removable
Essayez de l'utiliser en y montant un CD/DVD. Si vous le souhaitez, vous pouvez aussi vérifier les taux de transfert que vous obtenez en copiant des fichiers sur votre disque dur. La commande time(1) sera votre meilleure amie.

Si quelque chose se passe mal ici et que vous obtenez des erreurs durant cette phase, il est important de les corriger avant de commencer à écrire un CD/DVD.

Je souhaite maintenant graver un CD ! Pouvons nous commencer ?

Auparavant, il est judicieux de garder quelques conseils en tête :

13.7.2 - Graver des CDs

Créer des CD-ROMs de données

Tout d'abord, vous devrez créer un système de fichier ISO 9660 à mettre sur un CD-ROM. Pour cela vous pouvez utiliser l'utilitaire mkhybrid(8) fournit dans le système de base ou mkisofs du paquetage cdrtools qui peut être plus performant avec de grosses arborescences. Dans l'exemple suivant, nous utiliserons mkisofs bien que l'utilisation de mkhybrid soit similaire.

Comme exemple d'utilisation, j'ai essayé de sauvegarder les sources d'OpenBSD dans une image ISO 9660 :

$ mkisofs -R -o sys.iso /usr/src/sys Using ALTQ_RMC.000;1 for /usr/src/sys/altq/altq_rmclass_debug.h (altq_rmclass.h) ... Using XFS_DEV-.000;1 for /usr/src/sys/xfs/xfs_dev-common.c (xfs_dev-bsd.c) 12.06% done, estimate finish Sun Mar 27 21:18:47 2005 24.09% done, estimate finish Sun Mar 27 21:18:43 2005 ... 84.32% done, estimate finish Sun Mar 27 21:18:38 2005 96.37% done, estimate finish Sun Mar 27 21:18:38 2005 Total translation table size: 0 Total rockridge attributes bytes: 0 Total directory bytes: 1822720 Path table size(bytes): 10674 Max brk space used 469000 41508 extents written (81 Mb)

L'option -R demande à mkisofs de rajouter des extensions Rock Ridge dans l'image ISO 9660. Le "Rock Ridge Interchange Protocol" a été crée pour supporter le système de fichiers POSIX à l'intérieur du système de fichiers ISO 9660, comme les longs nom de fichiers, les créateurs de fichiers, les permissions, les liens de fichiers, les fichiers de périphériques, les hiérarchies de fichiers profondes (plus de 8 niveaux de sous-dossiers), etc...

Si vous souhaitez que les longs noms de fichiers sur votre CD-ROM soient lisibles sur les systèmes Windows et DOS, vous devriez ajouter le paramètre -J pour inclure les extensions Joliet dans l'image ISO 9660.

Après avoir crée les systèmes de fichiers, vous pouvez le vérifier en montant l'image ISO 9660. Si tout se passe bien, vous êtes maintenant prêt à écrire le CD-R(W). Un paquetage souvent utilisé pour cela est le programme cdrecord, inclus dans le paquetage cdrtools, disponible dans le système de port et de paquetages OpenBSD.

Si vous utilisez un média non réinscriptible, comme un CD-R, il est souvent judicieux de faire un essai avant de graver effectivement le CD- ROM, dans le but de ne pas gaspiller de disques.

# cdrecord -v -dummy dev=/dev/rcd1c sys.iso
Si tout se passe bien, vous êtes prêt à graver l'image créée dans l'exemple précédant sur un CD-R(W) vierge. Vous pourrez utiliser une commande similaire à :
# cdrecord -v dev=/dev/rcd1c sys.iso
En utilisant les options spécifiées ci-dessus, nous demandons à cdrecord de fournir une sortie verbeuse et d'utiliser le second périphérique CD- ROM comme graveur de CD. Notez que nous passons le périphérique raw à cdrecord.

Pour vérifier que le CD-ROM a bien été écrit, vous pouvez le monter et vérifier que tout ce qui doit y être y est. Pour monter le système de fichier, vous devez utiliser le périphérique block pour le lecteur de CD-ROM, qui dans ce cas est toujours le graveur de CD :

# mount /dev/cd1c /mnt/cdrom

Créer des CDs audio

Pour graver des CDs audio, vous pouvez utiliser cdrecord avec le paramètre -audio, ou bien utilisant l'utilitaire cdrdao pour écrire dans le mode Disc-At-Once et éviter les trous entre les différentes pistes audio. Chacun de ces utilitaires sont disponibles au travers du système de ports et de paquetages OpenBSD.

Comme exemple, je ferais une copie de sauvegarde d'un de mes CDs de musique. Cela implique deux étapes :

  1. Copier les pistes audio depuis votre CD original: vous pouvez faire cela a l'aide de logiciels comme cdparanoia, cdda2wav (inclus dans le paquetage sysutils/cdrtools), et cdrdao. Par exemple :
    # cdrdao read-cd --device /dev/rcd0c cdtracks.toc
    Cette commande va extraire uen série de fichiers WAV depuis votre premier lecteur cd CD-ROM vers votre disque dur, et compiler un fichier de "Table of Contents (TOC)" (Table de matières).
  2. Ecrire les pistes audio sur un cd vierge comme mentionné ci-dessus en utilisant cdrecord ou cdrdao, exemple :
    # cdrdao write --device /dev/rcd1c cdtracks.toc
    Si vous le souhaitez, vous pouvez essayer la commande cdrdao simulate au préalable.

13.7.3 - Graver des DVDs

Il y a quelques détails importants à propos des DVDs que vous devriez savoir avant de créer vos propres DVDs.

Remarques importantes :

Differents formats de DVD

Il y a plusieurs formats différents de DVD. Les plus utilisés sont les formats DVD-R, DVD-RW, DVD+R et DVD-RW (R signifie enregistrable une seule fois, RW signifie qu'il peut être réécrit quelques milliers de fois). Il existe d'autres standards plus compétitifs.

Un format différent est le DVD-RAM, qui a principalement été développé comme un lecteur de données et dispose de fonctions d'écriture de paquets avancées, autorisant à l'utiliser comme une sorte de disque dur optique. DVD-RAM n'est pas recommandé pour une utilisation vidéo car les vidéos sont écrites sur le disque dans un format non compatible avec les lecteurs de DVD normaux.

Le point le plus important est d'utiliser le média adapté à votre graveur de DVD. Si vous souhaitez la compatibilité avec d'autres lecteurs de DVD, veuillez lire cette section de la FAQ DVD.

Vitesse de gravure DVD

Il est important de spécifier que les indications de vitesses des DVDs diffèrent de celles des CD-ROMs. La table suivante en donne un aperçu :

Vitesse de Lecture/Ecriture DVD Taux de transfert (Mo/s) Vitesse de Lecture/Ecriture CD-R(W)
1x 1.32 9x
2x 2.64 18x
4x 5.28 36x
8x 10.57 72x

Comme on peut le voir dans le tableau, les taux de transfert sont relativement hauts, et vous devrez vérifier que votre bus (SCSI, (E)IDE/ATAPI, USB) est assez performant pour les supporter. Spécifiquement, les vielles interfaces USB 1.0 et 1.1 travaillent à des taux plus bas, avec des vitesses de transfert de 1.5 Mbit/s et 12 Mbit/s, respectivement. Cela signifie que l'USB 1.0 a une vitesse maximum de 178.8 kByte/s et USB 1.1 de 1.43 MB/s. USB 2.0 est plus rapide : 480 Mbit/s ou 57.2 MB/s. En général, les vitesses des bus SCSI et (E)IDE/ATAPI sont correctes.

Graver les DVDs

Basiquement, le processus est très similaire à celui d'écrire des CD- R(W)s. Le logiciel, cependant, diffère. A ce moment, la meilleure option est growisofs depuis le paquetage sysutils/dvd+rw-tools. Cet utilitaire écrit une image ISO 9660 sur le média DVD. Tous les formats DVD sont supportés par dvd+rw-tools.

Dans le cas où vous voudriez plus d'informations sur le média présent dans votre graveur de DVD (par exemple si vous avez perdu le texte d'information dans la boite du cd ou êtes simplement désorganisé comme moi), vous pouvez utiliser l'utilitaire dvd+rw-mediainfo. Il y a deux options pour écrire le DVD:

J'ai crée une image ISO 9660 pré-masteurisée depuis les modules CVS d'OpenBSD (src, XF4, ports et www) présents dans le dossier /cvs de mon disque. J'ai utilisé la commande suivante, qui ressemble beaucoup à celle que j'ai utilisé pour créer l'image CD-ROM précédente.

$ mkisofs -R -o cvs.iso /cvs
Si vous le souhaitez, testez le système de fichiers ISO 9660 en montant l'image. Pour écrire cette image (environ 2Go) sur un disque DVD, on peut utiliser :
# growisofs -dvd-compat -Z /dev/rcd2c=cvs.iso Executing 'builtin_dd if=cvs.iso of=/dev/rcd2c obs=32k seek=0' /dev/rcd2c: pre-formatting blank DVD+RW... /dev/rcd2c: "Current Write Speed" is 4.1x1385KBps. 23822336/1545832448 ( 1.5%) @3.9x, remaining 5:19 42172416/1545832448 ( 2.7%) @3.9x, remaining 5:20 60522496/1545832448 ( 3.9%) @3.9x, remaining 4:54 ... 1504706560/1545832448 (97.3%) @3.9x, remaining 0:07 1523318784/1545832448 (98.5%) @3.9x, remaining 0:04 1541898240/1545832448 (99.7%) @3.9x, remaining 0:00 /dev/rcd2c: flushing cache /dev/rcd2c: writing lead-out /dev/rcd2c: reloading tray
L'option -Z demande a growisofs de graver une session initiale sur le périphérique, qui dans ce cas est mon graveur de DVD, attaché à cd2. L'option -dvd-compat finalise le disque, ce qui signifie qu'aucune nouvelle session ne peut y être rajoutée. Cela devrait fournir une meilleure compatibilité avec les lecteurs DVD et quelques vielles unités DVD-ROM.

Remarquez comment growisofs indique la vitesse d'écriture, dans notre cas 3.9x, ce qui est ce que l'on peut attendre en combinant les vitesses du média et du graveur, comme indiqué par le dvd+rw-mediainfo.

Si vous ne disposez pas de suffisamment de place pour stocker une image de ISO 9660 four un DVD, vous pouvez écrire vos données directement sur le DVD. Essayons simplement une simulation de création du système de fichiers.

# growisofs -dry-run -Z /dev/rcd2c -R /cvs
Si cela fonctionne, retirez simplement l'option -dry-run et commencez l'écriture du DVD.
# growisofs -Z /dev/rcd2c -R /cvs

Il est aussi possible d'ajouter des données à un DVD existant, en utilisant l'option -M, qui fond une nouvelle session dans une session existante :

# growisofs -M /dev/rcd2c -R /mydata
Pour plus d'informations à propos de growisofs, consultez sa page de manuel.

Lorsque vous avez terminé d'écrire le DVD, montez le et vérifiez que tout ce que vous souhaitiez présent y soit effectivement.

Pourquoi je n'obtiens pas la vitesse que je veux ?

Au lieu de la vitesse d'écriture précédente, vous pourriez voir quelque chose comme ceci :
4784128/1545832448 ( 0.3%) @0.7x, remaining 26:50 7929856/1545832448 ( 0.5%) @0.7x, remaining 29:05 14123008/1545832448 ( 0.9%) @0.7x, remaining 27:06 ...
ce qui est bien plus lent. Cela signifie qu'il ne transite pas assez d'informations sur l'un des bus que votre DVD utilise. Dans l'exemple précédent, le graveur de DVD USB fut installé sur une machine sur laquelle le driver ehci(4), utilisé par les contrôleurs USB 2.0, ne s'est pas initialisé correctement. Comme d'habitude, vous êtes invités à envoyer des patchs et résultats de vos tests. Le graveur de DVD fut ralenti par l'interface USB 1.1 plus lente, ce qui a réduit la vitesse de gravure. L'USB 1.1 est limité à 12 Mbit/s, ce qui correspond à 1.43 MB/s ou 1.08x en terme de vitesse DVD. Le graveur de DVD est descendu à une plus basse vitesse de gravure pour diminuer le risque de buffer overrun (défaut de données à écrire).

13.8 - Je voudrais mes fichiers multimédia au format FOO.

Conversion entre différents formats audios

Admettons que vous souhaitiez convertir le son enregistré avec FAQ 13 - Enregistrer des séquences audio. Cet enregistrement a été enregistré en format brut. Il serait utile de le convertir car le format brut ("raw") ne contient pas d'en-tête et les paramètres devront être spécifiés à chaque utilisation du fichier.

Un bon outil de conversion de format est audio/sox, disponible au travers des ports et des paquetages. sox supporte les formats AIFF, AU, MP3, Ogg Vorbis, RIFF WAV et raw, ainsi que certains autres plus exotiques. Ci-dessous vous trouverez un exemple de conversion de l'enregistrement vers le format RIFF WAV.

$ sox -U -c 1 -r 8000 -b myvoice.raw myvoice.wav
Notez que les paramètres spécifiés correspondent aux paramètres d'enregistrement spécifiés avant l'enregistrement. Cela n'est qu'un exemple. De nombreux autres programmes et bibliothèques peuvent être utilisés en conversion audio.

Note : Il n'est pas recommandé de convertir entre différents formats de compression dits destructeurs ("lossy"). Par exemple, les codecs MP3 et Vorbis suppriment certaines informations du fichier audio original. Ainsi, lorsque vous convertissez un fichier MP3 en Ogg Vorbis, le résultat final sonnera certainement moins bon que l'original.

Conversion entre différents formats vidéos

Il est important de faire une distinction entre Pour le moment, le support des containeurs MPEG et AVI est le plus abouti. Aucun utilitaire présent dans l'arbre des ports n'est encore capable de créer des containeurs MP4.

Il existe deux utilitaires populaires, multimedia/transcode et mencoder (qui fait partie de x11/mplayer). Ils utilisent ou peuvent utiliser la bibliothèque libavcodec disponible dans le port graphics/ffmpeg et qui génère un format de sortie de bonne qualité. Vous pouvez bien sûr utiliser ffmpeg directement. Il devrait aussi être possible d'utiliser l'encodeur XviD présent dans multimedia/xvidcore.

La documentation, qui vient avec ces paquetages sous la forme de pages de manuel ou de documents HTML dans /usr/local/share/doc, contient de nombreux exemples, c'est pourquoi il est HAUTEMENT recommandé de lire ces documents.

13.9 - Est-il possible de lire des fichiers en streaming sous OpenBSD ?

Oui, c'est possible. De nombreux streams audio et vidéos fonctionneront sans soucis sur un nombre limité de plates-formes. Certains, quant à eux, ne fonctionneront pas.

Ce document ne représente pas une réponse exhaustive sur la manière de faire fonctionner tous les formats de streaming possibles sur n'importe qu'elle architecture. Tout d'abord, vous devriez vous renseigner sur la technologie de streaming. Quoi qu'un peu daté, le chapitre à propos du streaming tiré du livre "Designing Web Audio" aux éditions O'Reilly représente un bon début.

La première chose à savoir est qu'il existe plusieurs protocoles de streaming. Le protocole de streaming définit la façon dont les flux seront envoyés à travers le réseau. Ils ont été développés afin de garantir une transmission audio/vidéo efficace en temps réel par internet. En bref, le protocole de streaming est un protocole applicatif (niveau 7) capable d'utiliser les protocoles de transport UDP ou TCP (niveau 4). Le protocole de transport UDP ("User Datagram Protocol") convient parfaitement pour ce type d'application puisqu'il n'effectue aucune retransmission de paquets ou autre type de charge réseau. Un certain nombre de protocoles spécialisés mais propriétaires ont été développés, par exemple Microsoft Media Services (MMS - services média de Microsoft) et le Real Time Streaming Protocol (RTSP - protocole de transmission de flux en temps réel). Comme nous le verrons, HTTP (qui utilise TCP) est également parfois utilisé, même s'il ne permet pas de transmettre des flux à une vitesse régulière comme UDP, RTSP et MMS.

Ensuite, il y a le format de streaming qui représente la façon dont les données audio/vidéo ont été organisées et peuvent être lues. Les formats de streaming les plus utilisés sont le MP3, Real Audio (RA, RM) et le Windows Media (ASF) qui sont tous des technologies propriétaires. Parfois, vous rencontrerez certains streams au format Ogg Vorbis.

Pour l'exemple, j'expliquerai, en quelques étapes, comment j'arrive à écouter Radio 1, une des stations radios nationales belges. Sous OpenBSD, les plugins (modules externes) de navigateurs ne sont pas disponibles, ce qui signifie que la mise en place se résume rarement en un "clic et lecture".

Les flux Windows Media (ASF) fonctionneront la plupart du temps bien qu'ils puissent contenir des données aux formats supportés uniquement grâce au port graphics/win32-codecs qui ne tourne que sous i386 ('pkg_info win32-codecs' vous donnera la liste des codecs supportés). Certains flux Real Audio peuvent fonctionner sous i386 en utilisant mplayer en conjonction avec les ports graphics/win32-codecs et emulators/fedora/base (lisez ce fil de la liste de discussion des ports).

13.10 - Puis-je utiliser un plugin Java avec mon navigateur ? (spécifique à i386)

Le plugin Java fait partie du kit de développement Java ("Java Development Toolkit" - JDK). Pour des raisons de licence ,OpenBSD ne peut pas distribuer de paquetages binaires du JDK. Cela signifie que vous devrez le compiler à partir des ports. De plus amples informations sur la compilation du JDK sont disponibles dans FAQ 8 - Languages de programmation. Une fois le paquet créé, vous pouvez installer le JDK complet ou simplement l'environnement d'exécution Java ("Java Runtime Environment" - JRE) qui se trouve dans un sous-paquet ("subpackage") et contient le plugin web.

A la fin de l'installation, des instructions seront affichées afin d'utiliser le plugin Java avec Firefox ou un navigateur basé sur Mozilla. Créez le lien comme expliqué et vous devriez voir le plugin Java lorsque vous entrerez "about:plugins" dans la barre d'adresse.

Note : Le plugin java a seulement été testé avec les navigateurs Firefox et Mozilla. S'il fonctionne également pour vous avec un autre navigateur, n'hésitez pas à nous le faire savoir.

13.11 - Puis-je utiliser un plugin Flash avec mon navigateur ? (spécifique à i386)

Le plugin Flash est distribué par Macromedia sous forme binaire uniquement. Macromedia ne fourni pas de plugin natif pour OpenBSD mais il existe un plugin pour Linux qui peut être utilisé sous émulation. Ce plugin n'est disponible que pour les plates-formes i386.

Avant de poursuivre, vous devriez vous renseigner sur l'émulation Linux dans la page de manuel compat_linux(8) ainsi que FAQ 9 - Exécution des binaires Linux sous OpenBSD.

Si vous avez assimilé ces documents mais n'avez pas encore installé les fichiers nécessaires, ajoutez simplement le paquetage fedora. En admettant que vous ayez correctement défini la variable PKG_PATH (voyez FAQ 15),

# pkg_add -i fedora_base
La première commande définira automatiquement kern.emul.linux=1, mais pas de façon permanente. Si vous avez besoin de l'émulation Linux en permanence, vous devez le spécifier dans /etc/sysctl.conf, comme expliqué dans FAQ 9 - Exécution des binaires Linux sous OpenBSD.

Une autre chose que vous devriez savoir est que les bibliothèques partagées ainsi que les modules Linux ne peuvent pas être utilisés avec des exécutables OpenBSD, ce qui signifie que vous aurez également besoin d'un navigateur Linux.

Un candidat serait le navigateur Opera, disponible dans l'arbre des ports. OpenBSD ne distribue pas de paquetage car la licence d'Opéra n'est pas claire à ce sujet. Cependant, l'installation ne devrait pas prendre de temps puisqu'il est distribué sous forme binaire par Opera Software. Après cela vous pouvez facilement installer le plugin Flash en utilisant les ports.

# cd /usr/ports/www/opera # make install # cd /usr/ports/www/opera-flashplugin # make install

Note : La dernière étape devrait suffire en elle-même car le système des ports devrait installer les dépendances automatiquement. Cependant, dans un souci de clarté nous séparons le processus en plusieurs étapes afin d'en faciliter la compréhension.

Si vous avez suivi ce guide, le plugin Flash devrait être listé lorsque vous tapez "about:plugins" dans la barre d'adresse.

[Index de la FAQ] [Section 12 - Questions spécifiques aux plates-formes] [Section 14 - Configuration des disques]


[back] www@openbsd.org
$OpenBSD: faq13.html,v 1.38 2007/06/23 18:29:30 jufi Exp $