MPlayer - Le Lecteur Vidéo

http://www.mplayerhq.hu


Table des matières

Comment lire cette documentation
1. Introduction
1.1. Histoire
1.2. Installation
1.2.1. Logiciels nécessaires
1.2.2. Codecs
1.2.3. Cartes graphiques
1.2.3.1. Cartes YUV
1.2.3.2. Cartes non-YUV
1.2.3.3. Cartes Cirrus-Logic
1.2.4. Cartes son
1.2.5. Fonctionalités
1.3. À propos de l'interface graphique?
1.4. Sous-titres et OSD
1.4.1. Format de sous-titres propre à MPlayer (MPsub)
1.4.2. Installer l'OSD et les sous-titres
1.4.3. Menu OSD
1.5. RTC
2. Fonctionnalités
2.1. Formats supportés
2.1.1. Formats vidéo
2.1.1.1. Fichiers MPEG
2.1.1.2. Fichiers AVI
2.1.1.3. Fichiers ASF/WMV
2.1.1.4. Fichiers QuickTime/MOV
2.1.1.5. Fichiers VIVO
2.1.1.6. Fichiers FLI
2.1.1.7. Fichiers RealMedia (RM)
2.1.1.8. Fichiers NuppelVideo
2.1.1.9. Fichiers yuv4mpeg
2.1.1.10. Fichiers FILM
2.1.1.11. Fichiers RoQ
2.1.1.12. Fichiers OGG/OGM
2.1.1.13. Fichiers SDP
2.1.1.14. Fichiers PVA
2.1.1.15. Fichiers NSV
2.1.1.16. Fichiers Matroska
2.1.1.17. fichiers NUT
2.1.1.18. Fichiers GIF
2.1.2. Formats Audio
2.1.2.1. Fichiers MP3
2.1.2.2. Fichiers WAV
2.1.2.3. Fichiers OGG/OGM (Vorbis)
2.1.2.4. Fichiers WMA/ASF
2.1.2.5. Fichiers MP4
2.1.2.6. CD audio
2.1.2.7. XMMS
2.2. Codecs Supportés
2.2.1. Codecs vidéo
2.2.1.1. DivX4/DivX5
2.2.1.2. FFmpeg/libavcodec
2.2.1.3. Codecs XAnim
2.2.1.4. Vidéo VIVO
2.2.1.5. Vidéo MPEG-1/2
2.2.1.6. MS Video1, Cinepak CVID, et autres vieux codecs
2.2.1.7. RealVideo
2.2.1.8. XviD
2.2.1.9. Sorenson
2.2.1.10. x264
2.2.1.10.1. Qu'est ce que le x264?
2.2.1.10.2. Qu'est ce que le H.264?
2.2.1.10.3. Comment puis-je jouer des vidéos H.264 avec MPlayer?
2.2.1.10.4. Comment puis-je encoder des vidéos avec MEncoder et x264?
2.2.2. Codecs audio
2.2.2.1. Décodage AC3 logiciel
2.2.2.2. Décodage AC3 matériel
2.2.2.3. support libmad
2.2.2.4. VIVO audio
2.2.2.5. RealAudio
2.2.2.6. Codecs QDesign
2.2.2.7. Codec Qualcomm
2.2.2.8. Codec AAC
2.2.3. Comment importer les codecs Win32
2.2.3.1. codecs VFW
2.2.3.2. Codecs DirectShow
2.3. Sorties vidéo
2.3.1. Réglage MTRR
2.3.2. Sortie vidéo pour cartes graphiques traditionnelles
2.3.2.1. Xv
2.3.2.1.1. Cartes 3dfx
2.3.2.1.2. Cartes S3
2.3.2.1.3. Cartes nVidia
2.3.2.1.4. Cartes ATI
2.3.2.1.5. Cartes NeoMagic
2.3.2.1.6. Cartes Trident
2.3.2.1.7. Cartes Kyro/PowerVR
2.3.2.2. DGA
2.3.2.3. SDL
2.3.2.4. SVGAlib
2.3.2.5. Sortie Framebuffer (FBdev)
2.3.2.6. Framebuffer Matrox (mga_vid)
2.3.2.7. Support YUV 3Dfx
2.3.2.8. Sortie OpenGL
2.3.2.9. AAlib - affichage en mode texte
2.3.2.10. libcaca - Librairie ASCII Art en couleur
2.3.2.11. VESA - sortie sur BIOS VESA
2.3.2.12. X11
2.3.2.13. VIDIX
2.3.2.13.1. Cartes ATI
2.3.2.13.2. Cartes Matrox
2.3.2.13.3. Cartes Trident
2.3.2.13.4. Cartes 3DLabs
2.3.2.13.5. Cartes nVidia
2.3.2.13.6. Cartes SiS
2.3.2.14. DirectFB
2.3.2.15. DirectFB/Matrox (dfbmga)
2.3.3. Décodeurs MPEG
2.3.3.1. sorties et entrées DVB
2.3.3.2. DXR2
2.3.3.3. DXR3/Hollywood+
2.3.4. Autres matériels de visualisation
2.3.4.1. Zr
2.3.4.2. Blinkenlights
2.3.5. Sortie TV
2.3.5.1. Cartes Matrox G400
2.3.5.2. Cartes Matrox G450/G550
2.3.5.3. Cartes ATI
2.3.5.4. Voodoo 3
2.3.5.5. nVidia
2.3.5.6. Neomagic
2.4. Périphériques de sortie audio
2.4.1. Synchronisation audio/vidéo
2.4.2. Dépannage
2.5. Entrée TV
2.5.1. Compilation
2.5.2. Astuces d'utilisation
2.5.3. Exemples
3. Utilisation
3.1. Ligne de commande
3.2. Contrôles
3.2.1. Configuration des contrôles
3.2.2. Control from LIRC
3.2.3. Mode esclave
3.3. Streaming depuis le réseau ou les pipes
3.3.1. Sauvegarder du contenu flux
3.4. Flux distants
3.4.1. Compilation du serveur
3.4.2. Utilisation de flux distants
3.5. Listes d'Edition de Décision (EDL)
3.5.1. Utiliser un fichier EDL
3.5.2. Faire un fichier EDL
3.6. Audio Avancé
3.6.1. Lecture Surround/Multi-canal
3.6.1.1. DVDs
3.6.1.2. Lire des fichiers stéréo sur quatre haut-parleurs
3.6.1.3. AC3/DTS Passthrough
3.6.1.4. Audio à encodage matriciel
3.6.1.5. Emulation Surround dans les écouteurs
3.6.1.6. Dépannage
3.6.2. Manipulation de Canal
3.6.2.1. Information Générale
3.6.2.2. Jouer en mono avec deux enceintes
3.6.2.3. Copié/Déplacé le canal
3.6.2.4. Mixage de canal
3.6.3. Ajustement Logiciel du Volume
4. Foire Aux Questions
5. Utilisation des CD/DVD
5.1. Lecteurs CD/DVD
5.1.1. Linux
5.1.2. FreeBSD
5.2. Lecture de DVD
5.3. Lecture de VCDs
6. Ports
6.1. Linux
6.1.1. Paquets Debian
6.1.2. Paquets RPM
6.1.3. ARM
6.2. *BSD
6.2.1. FreeBSD
6.2.2. OpenBSD
6.2.3. Darwin
6.3. Sun Solaris
6.4. Silicon Graphics Irix
6.5. HP UX
6.6. QNX
6.7. Windows
6.7.1. Cygwin
6.7.2. MinGW
6.8. Mac OS
6.8.1. MPlayer OS X
6.9. Amiga/MorphOS (GeekGadgets)
7. Encodage avec MEncoder
7.1. Encodage MPEG-4 ("DivX") deux passes
7.2. Encodage au format MPEG
7.3. Redimensionnement des films
7.4. Copie de flux
7.5. Réparer les fichiers AVIs ayant un index défectueux
7.5.1. Assembler plusieurs fichiers AVI
7.6. Encodage avec la famille de codecs libavcodec
7.7. Encodage à partir de multiples fichiers image (JPEG, PNG, TGA, SGI)
7.8. Extraction des sous-titres DVD dans un fichier Vobsub
7.9. Préserver le ratio d'aspect
7.10. Inter/intra matrices personnalisées
7.11. Créer un rip MPEG-4 ("DivX") de haute qualité à partir d'un DVD
7.11.1. Quantiseur constant contre deux passes
7.11.2. Découpage et Redimensionnement
7.11.3. Audio
7.11.4. Interlacing and Telecine
7.11.5. Filtrage
7.11.6. Exemple
7.12. Comment gérer le téléciné et le désentrelacement avec les DVDs NTSC
7.12.1. Comment trouver quel type de vidéo vous avez
7.12.1.1. Progressive
7.12.1.2. Télécinée
7.12.1.3. Entrelaçée
7.12.1.4. Progressive et télécinée mélangées
7.12.1.5. Progressive et entrelacée mélangées
7.12.2. Comment encoder chaque catégorie
7.12.2.1. Progressive
7.12.2.2. Télécinée
7.12.2.3. Entrelaçée
7.12.2.4. Progressive et téléciné mélangées
7.12.2.5. Progressive et entrelaçée mélangées
7.12.3. Notes de bas-de-page
A. Listes de diffusion
B. Comment rapporter les bogues
B.1. Comment réparer les bogues
B.2. Comment faire des tests de regression en utilisant CVS
B.3. Comment rapporter les bogues
B.4. Où rapporter les bogues
B.5. Que rapporter
B.5.1. Information Système
B.5.2. Matériel et pilotes
B.5.3. Problèmes de configuration
B.5.4. Problèmes de compilation
B.5.5. Problèmes de lecture
B.5.6. Plantages
B.5.6.1. Comment conserver les informations sur un plantage reproductible
B.5.6.2. Comment extraire les informations significatives d'un core dump
B.6. Je sais ce que je fait...
C. Bogues connus
C.1. Bogues/Problèmes spécifiques à certains systèmes ou à certains CPU
C.2. Problèmes de synchro A-V et autres problèmes audio
C.2.1. Décalage audio général ou son saccadé (existe avec tous ou de nombreux fichiers)
C.2.2. Décalage audio/désynchro spécifique à un ou quelques fichiers
C.2.3. Pas de son du tout
C.2.4. Pas d'image du tout (juste une fenêtre complètement grise/verte)
C.2.5. Problèmes de sortie vidéo
D. Format de skins MPlayer
D.1. Aperçu
D.1.1. Répertoires
D.1.2. Format d'images
D.1.3. Composants d'une skin
D.1.4. Fichiers
D.2. Le fichier skin
D.2.1. Fenêtre principale et barre de lecture
D.2.2. Sous-fenêtre
D.2.3. Menu
D.3. Polices
D.3.1. Symboles
D.4. Messages de la GUI
E. Lamentations du développeur
E.1. GCC 2.96
E.2. Distribution binaire
E.3. nVidia
E.4. Joe Barr

Comment lire cette documentation

Si c'est votre première installation, assurez-vous de tout lire d'ici jusqu'à la fin de la section Installation, et de suivre tous les liens que vous pourrez trouver. Si vous avez d'autres questions, retournez à la table des matières, lisez la FAQ ou faites une recherche dans ces fichiers. La plupart des questions devraient trouver leur réponse ici et le reste a probablement déjà été demandé sur nos listes de diffusion. Regardez leurs archives, il y a beaucoup d'informations intéressantes à y trouver.

Chapitre 1. Introduction

MPlayer est un lecteur de vidéos pour GNU/Linux (fonctionne sur de nombreux autres Un*x, et processeurs non-x86, voir la section Ports). Il lit la majorité des fichiers MPEG, VOB, AVI, OGG/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, FLI, RM, NuppelVideo, yuv4mpeg, FILM, RoQ, PVA, Matroska supportés par de nombreux codecs natifs, XAnim, RealPlayer et les DLLs Win32. Vous pouvez regarder les VideoCD, SVCD, DVD, 3ivx, RealMedia, Sorenson, Theora, ainsi que les vidéos au format MPEG-4 (DivX). L'autre point fort de MPlayer est la grande variété de pilotes de sortie supportée. Il fonctionne avec X11, Xv, DGA, OpenGL, SVGAlib, fbdev, AAlib, libcaca, DirectFB, mais vous pouvez utiliser GGI et SDL (et ainsi tous leurs pilotes) et également certains pilotes de bas niveau spécifiques à certaines cartes (pour Matrox, 3Dfx et Radeon, Mach64, Permedia3) ! La plupart d'entre eux supportent le redimmensionnement logiciel ou matériel, vous pouvez donc apprécier les films en plein écran. MPlayer supporte la décompression matérielle fournie par certaines cartes MPEG, telles que la DVB et la DXR3/Hollywood+. Et que dire de ces superbes sous-titres lissés (14 types supportés) avec des polices européennes/ISO 8859-1,2 (Hongrois, Anglais, tchèque, etc.), Cyrilliques, Coréennes, ainsi que de l'OnScreenDisplay (OSD) ?

Ce lecteur peut lire les fichiers MPEG endommagés (utile pour certains VCDs), ainsi que les mauvais fichiers AVI qui ne sont pas lisibles par le célèbre Windows Media Player. Même les fichiers AVI sans index sont lisibles, et vous pouvez reconstruire ses indexs soit temporairement avec l'option -idx, soit de manière définitive avec MEncoder, autorisant ainsi l'avance/retour rapide ! Comme vous pouvez le constater, la stabilité et la qualité sont les choses les plus importantes, mais la vitesse est également formidable. Il y a également un puissant système de filtres pour faire de la manipulation vidéo et audio.

MEncoder (Le Movie Encoder de MPlayer) est un simple encodeur de vidéos, conçu pour encoder des vidéos jouables par MPlayer (AVI/ASF/OGG/DVD/VCD/VOB/MPG/MOV/VIV/FLI/RM/NUV/NET/PVA) dans d'autres formats jouables par MPlayer (voir plus bas). Il peut encoder avec des codecs variés comme MPEG-4 (DivX4) (1 ou 2 passes),libavcodec, audio PCM/MP3/MP3 VBR.

Fonctionnalités de MEncoder

  • Encodage à partir de la grande variété de formats de fichiers et de décodeurs de MPlayer
  • Encodage dans tous les codecs libavcodec de ffmpeg
  • Encodage vidéo depuis les tuners TV compatibles V4L
  • Encodage/multiplexage vers fichiers AVI entrelacés avec index propre
  • Création de fichiers à partir de flux audio externes
  • Encodage 1, 2 ou 3 passes
  • MP3 audio VBR

    Important

    L'audio MP3 VBR peut ne pas être bien lu sur les lecteurs Windows!

  • PCM audio
  • Copie de flux (stream)
  • Synchronisation A/V de la source (basé sur PTS, peut être désactivé avec l'option -mc 0)
  • Correction FPS avec l'option -ofps (utile pour l'encodage d'un VOB 29.97fps en AVI 24fps)
  • Utilise notre très puissant système de plugins (crop, expand, flip, postprocess, rotate, scale, conversion rgb/yuv)
  • Peut encoder les sous-titres DVD/VOBsub ET texte dans le fichier de destination
  • Peut ripper les sous-titres DVD en format VOBsub

Fonctionnalités prévues

  • Toujours plus de formats/codecs disponibles (création de fichiers VOB avec des flux DivX4/Indeo5/VIVO :)

MPlayer et MEncoder peuvent être distribués selon les termes de la GNU General Public License Version 2.

1.1. Histoire

Cela a commencé un an auparavant... J'ai essayé de nombreux lecteurs de vidéos sous GNU/Linux (mtv, xmps, dvdview, livid/oms, videolan, xine, xanim, avifile, xmmp) mais ils présentaient tous des défauts, particulièrement sur certains fichiers ou avec la synchronisation audio/vidéo. La plupart étaient incapables de lire à la fois les fichiers MPEG-1, MPEG-2 et AVI (DivX). De plus ils avaient des problèmes de vitesse/qualité d'images. J'ai donc décidé d'en écrire/modifier un...

A'rpi, 2001

  • mpg12play v0.1-v0.3: 22-25 Sep 2000

    Le premier essai, réalisé en une demi-heure ! J'ai utilisé libmpeg3 de http://www.heroinewarrior.com dans sa version 0.3, mais il présentait des problèmes graves;mes de vitesse/qualité d'images.

  • mpg12play v0.5-v0.87: 28 Sep-20 Oct 2000

    Le codec MPEG a été remplacé par DVDview de Dirk Farin, du bon boulot, mais c'était lent et écrit en C++ (A'rpi déteste le C++!!!)

  • mpg12play v0.9-v0.95pre5: 21 Oct-2 Nov 2000

    Le codec MPEG était libmpeg2 (mpeg2dec) par Aaron Holtzman et Michel Lespinasse. Il est excellent, un code C rapide et bien optimisé; avec une qualité d'image parfaite et 100% compatible avec les standards MPEG.

  • MPlayer v0.3-v0.9: 18 Nov-4 Dec 2000

    Un condensé de deux programmes: mpg12playv0.95pre6 et mon nouveau lecteur de AVI 'avip' basé sur le chargeur de DLL Win32 de avifile.

  • MPlayer v0.10: 1er Jan 2001

    Les lecteurs MPEG et AVI dans un seul binaire !

  • série MPlayer v0.11pre:

    De nouveaux développeurs ont joint le projet et depuis la version 0.11 le projet MPlayer est un travail d'équipe ! Ajout du support des fichiers .ASF, et de l'encodage/décodage OpenDivX (c.f. http://www.projectmayo.com).

  • MPlayer v0.17a "The IdegCounter" 27 Avr 2001

    La finalisation de la version 0.11pre après 4 mois de développement intensif ! Essayez la, et soyez conquis ! Des dizaines de nouvelles fonctionnalités ont été apportées, le code existant amélioré et sécurisé, et de nombreux bogues ont été corrigés..

  • MPlayer 0.18 "The BugCounter" 9 Juillet 2001

    Deux mois après la 0.17, une nouvelle parution.. Compléter le support ASF, plus de formats pour les sous-titres, introduction de libao (similaire et libvo pour l'audio), encore plus stable et performant.... C'est un MUST !

  • MPlayer 0.50 "The Faszom(C)ounter" 8 Oct 2001

    Hmm. Une nouvelle sortie. Des tonnes de nouvelles fonctionnalités, une GUI en version beta, des bogues fixés, de nouveaux drivers vo et ao, portage sur de nombreux systèmes, incluant les codecs DivX Open-Source, et bien plus encore... Essayez le !

  • MPlayer 0.60 "The RTFMCounter" 3 Jan 2002

    Support des formats de fichier MOV/VIVO/RM/FLI/NUV, CRAM natif, Cinepak, codecs ADPCM, et support des codecs XAnim binaires; support des sous-titres DVD, première sortie de MEncoder, capture TV, cache, liba52, réparations innombrables.

  • MPlayer 0.90pre10 "The BirthdayCounter" 11 Nov 2002

    MPlayer 0.90pre10 "The BirthdayCounter" 11 Nov 2002 Bien que ce ne soit pas une version officielle, je la mentionne parce qu'elle est sortie 2 ans après MPlayer v0.01. Joyeux anniversaire, MPlayer !

  • MPlayer 0.90rc1 "The CodecCounter" 7 Dec 2002

    Là encore, pas une version officielle, mais après l'ajout du support Sorenson 3 (QuickTime) et Windows Media 9, MPlayer est le premier lecteur de film au monde qui supporte tous les formats vidéos connus!

  • MPlayer 0.90 "The CounterCounter" 6 Avr 2003

    Après plus d'un an, nous avons finalement conclu que le code était de nouveau suffisamment stable, et prêt à sortir en temps que version officielle. Malheureusement nous avons oublié d'incrémenter le numéro de version, et d'autres bogues ennuyeux sont apparus, donc préparez-vous pour...

  • MPlayer 0.91 13 Août 2003

    Des corrections ont été apportées à ce qui est dit ci-dessus, ainsi qu'à d'autres bogues. Ceci est la dernière version stable.

  • MPlayer 1.0pre1 "Développement sur la plage" 1er Sep 2003

    Bien que ce ne soit pas une version stable, je la mentionne car c'est la première pré-version de la série 1.0 de MPlayer et qu'elle est destinée à aider la grande chasse aux bogues. C'est un pas en avant énorme !

  • MPlayer 1.0 date encore inconnue

1.2. Installation

Un guide d'installation rapide peut être trouvé dans le fichier README. Veuillez le lire d'abord et revenir ensuite ici pour le reste des détails.

Dans ce chapitre je vais essayer de vous guider à travers la compilation et la configuration de MPlayer. Ce n'est pas facile, mais pas vraiment difficile non plus. Si vous rencontrez un comportement différent de celui de mes explications, cherchez dans la doc et vous trouverez les réponses. Si vous voyez des liens, suivez-les et lisez attentivement ce qu'ils contiennent. Cela prendra du temps, mais ça en vaut VRAIMENT la peine.

Vous aurez besoin d'un système relativement récent. Sous Linux, les noyaux 2.4.x sont recommandés.

1.2.1. Logiciels nécessaires

  • binutils - la version conseillée est la 2.11.x. Ce programme génère les instructions spécifiques MMX/3DNow!, il est donc très important.

  • gcc - versions conseillées: 2.95.3 (peut être 2.95.4) et 3.2+. N'utilisez jamais 2.96 ou 3.0.x! Ils génèrent des erreurs de code. Si vous décidez de changer votre gcc 2.96, n'optez pas en faveur d'un 3.0.x uniquement parce qu'il sera plus récent ! Les premières versions des 3.x étaient encore plus boguées que 2.96. Donc downgradez vers 2.95.x (downgradez libstdc++ également, d'autres programmes pourraient en avoir besoin) ou ne changez pas du tout (mais dans ce cas, préparez-vous à des problèmes lors de l'exécution). Si vous optez pour un 3.x, essayez toujours la dernière version, les plus anciennes avaient des bogues variés, donc assurez-vous d'utiliser au moins 3.1, il est testé et fonctionnel. Pour de plus amples informations sur les bogues de gcc 2.96 (qui ne sont toujours PAS fixés, ils ont été CONTOURNÉS dans MPlayer!), voir la section gcc 2.96 et la FAQ.

  • XFree86 - version conseillée : toujours la plus récente (4.3). Normalement, tout le monde veut cela, car à partir de la version 4.0.2, XFree86 contient l'extension XVideo (parfois appelé Xv) qui est nécessaire pour activer l'accélération YUV matérielle (affichage rapide) des cartes qui le supportent. Assurez-vous que ses paquets de développement sont également installés, sinon cela ne fonctionnera pas. Pour certaines cartes, vous n'aurez pas besoin de XFree86. Voir la liste plus bas.

  • make - version conseillée : toujours la plus récente (au moins 3.79.x). Ceci n'est en général pas très important.

  • SDL - pas obligatoire, mais peut aider dans certains cas (mauvaise sortie audio, cartes vidéos qui rament avec le pilote xv). Utilisez toujours la version la plus récente. (à partir de 1.2.x).

  • libjpeg - décodeur JPEG optionnel, utilisé par l'option -mf et certains fichiers QT MOV. Utile pour MPlayer et MEncoder si vous prévoyez de travailler avec des fichiers jpeg.

  • libpng - Décodeur (M)PNG par défaut, recommandé. Requis pour la GUI. Utile pour MPlayer et MEncoder.

  • lame - recommandé, requis pour l'encodage MP3 audio avec MEncoder, version conseillée : toujours la plus récente (au moins 3.90).

  • zlib - recommandé, nécessaire pour les entêtes MOV compressées et le support PNG.

  • libogg - optionnel, requis pour lire les fichiers au format OGG.

  • libvorbis - optionnel, requis pour lire du OGG Vorbis audio.

  • LIVE.COM Streaming Media - optionnel, requis pour lire des flux RTSP/RTP.

  • directfb - optionnel, depuis http://www.directfb.org. At least 0.9.13 is required.

  • cdparanoia - optionnel, pour le support CDDA

  • libfreetype - optionnel, pour le support des fontes TTF. Au moins 2.0.9 est requis.

  • libxmms - optionnel, pour le support des plugins d'entrée de XMMS. Au moins 1.2.7 est requis.

  • libsmb - optionnel, pour le support Samba.

  • ALSA - optionnel, pour le support de sortie audio ALSA. Au moins 0.9.0rc4 est requis.

  • bio2jack - optionnel, pour le support de la sortie audio JACK, requis seulement au moment de la compilation. Vous pouvez l'obtenir depuis http://bio2jack.sf.net. Il n'a pas d'options d'installation donc vous devez placer manuellement le fichier libbio2jack.a quelque part dans votre chemin de librairies (par ex. /usr/local/lib) ou utiliser l'option --with-bio2jack=DIR pour dire à ./configure où se trouve le fichier.

1.2.2. Codecs

  • libavcodec: Ce paquet de codecs est capable de décoder les flux vidéo encodés en H.263/MJPEG/RV10/DivX3/DivX4/DivX5/MP41/MP42/WMV1/WMV2/SVQ1/SVQ3 et les flux audio WMA (Windows Media Audio) v1/v2, sur plusieurs plateformes. Il est également considéré comme le plus rapide pour cette tâche. Voir la section FFmpeg pour de plus amples détails. Fonctionnalités:

    • ajoute le décodage des vidéos mentionnées ci dessus, sur des machines non-x86
    • encodage avec la plupart des codecs mentionnés
    • ce codec est le plus rapide disponible pour les formats DivX/3/4/5 et autre MPEG-4. Recommandé!

  • codecs Win32: Si vous prévoyez d'utiliser MPlayer sur une architecture non x86, vous en aurez probablement besoin. Téléchargez les codecs Win32 depuis notre page de codecs et installez-les dans /usr/local/lib/codecs AVANT de compiler MPlayer, sinon aucun support Win32 ne sera compilé!

    Note

    Le projet avifile a un paquet de codecs similaire, mais qui diffère du nôtre. Si vous voulez avoir tous les codecs supportés, alors installez notre paquet (ne vous inquiétez pas, avifile fonctionne avec sans problèmes).

    Fonctionnalités:

    • Vous en aurez besoin si vous voulez lire ou encoder par exemple des films enregistrés avec des compresseurs matériels divers, comme des cartes tuner ou des caméras numériques (exemple: DV, ATI VCR, MJPEG)
    • nécessaire si vous voulez lire des films WMV9/WMA9.
    • Non requis pour les vieux ASF avec vidéo MP41 ou MP42 (bien que VoxWare audio soit fréquent pour ces fichiers - ceci est géré par les codecs Win32), ou WMV7. Requis également pour WMA (Windows Media Audio), libavcodec possède un décodeur open source pour cela.

  • codecs QuickTime: sur les plateformes x86 ces codecs peuvent être utilisés pour décoder RPZA et les autres vidéos QuickTime, ainsi que les flux audio QDesign. Les instructions d'installation peuvent être trouvées dans la section codec vidéo Sorenson.

  • DivX4/DivX5: information sur ce codec disponible dans la section DivX4/DivX5. Vous ne voudrez probablement pas de ce codec car libavcodec (voir plus haut) est bien plus rapide et de meilleur qualité, tant pour le décodage que l'encodage. Fonctionnalités:

    • encodage en une passe ou deux passes avec MEncoder
    • peut lire les films au vieux format DivX3 bien plus rapidement que les DLL Win32 mais plus lentement que libavcodec!
    • les sources sont fermées, et seule une version x86 est disponible.

  • XviD: Encodage libre alternatif à DivX4Linux Caractéristiques:

    • encodage en une passe ou deux passes avec MEncoder
    • les sources sont ouvertes, donc c'est multi-plateformes.
    • Il est environ 2 fois plus rapide que DivX4 pour l'encodage - pour une qualité similaire.

  • Les codecs XAnim sont les meilleurs (plein écran, zoom YUV matériel) pour décoder les films 3ivx et Indeo 3/4/5, et quelques autres vieux formats. Et ils sont multiplateforme, c'est donc la seule façon de lire de l'Indeo sur des plateformes non-x86 (bon, à part en utilisant XAnim:). Mais par exemple les films Cinepak sont mieux joués par le décodeur Cinepak de MPlayer !

  • Pour le décodage d'Ogg Vorbis, vous aurez besoin d'installer libvorbis correctement. Vous pouvez avoir les paquetages binaires et le code source depuis le site Ogg Vorbis.

  • MPlayer peut utiliser les bibliothèques de RealPlayer 8 ou RealONE pour lire de la vidéo RealVideo 3.0 et 4.0, et de l'audio Sipro/Cook. Voir la section format de fichier RealMedia pour les instructions d'installation et plus d'information.

1.2.3. Cartes graphiques

Il y a généralement deux types de cartes graphiques. Les premières (les cartes les plus récentes) ont un zoom matériel et l'accélération YUV, les autres n'en ont pas.

1.2.3.1. Cartes YUV

Vous pouvez afficher et redimensionner (zoom) l'image dans n'importe quelle taille qui tient dans leur mémoire, avec peu d'utilisation processeur (même en zoomant), ainsi la lecture plein-écran est agréable et très rapide.

  • Cartes Matrox G200/G400/G450/G550: bien qu'un pilote Vidix soit fourni, il est recommandé d'utiliser le module noyau mga_vid à la place, il fonctionne bien mieux. Voir la section mga_vid pour son installation et son utilisation. Il est important de faire cela avant la compilation de MPlayer, sinon aucun support mga_vid ne sera construit. Voir aussi la section Matrox TV-out. Si vous n'utilisez pas Linux, votre seule possibilité est le pilote VIDIX: lisez la section VIDIX.

  • Cartes 3Dfx Voodoo3/Banshee: voir la section tdfxfb pour obtenir une grande accélération. Il est important de faire cela avant la compilation de MPlayer, sinon aucun support 3Dfx ne sera disponible. Voir aussi la section 3dfx TV-out. Si vous utilisez X, utilisez au moins la version 4.2.0, car les pilotes Xv 3dfx sont endommagés dans 4.1.0 et les versions plus anciennes.

  • Cartes ATI: un pilote VIDIX est fourni pour les cartes suivantes: Radeon, Rage128, Mach64 (Rage XL/Mobility, Xpert98). Voir aussi la section Cartes ATI de la documentation TV-out, pour savoir si la sortie TV de votre carte est supportée sous Linux/MPlayer.

  • Cartes S3: les chipsets Savage et Virge/DX possèdent l'accélération matérielle. Utilisez la plus récente version de XFree86 possible, les anciens pilotes sont bogués. Les chipsets Savage ont des problèmes avec l'affichage YV12, voir la section Xv S3. Plus anciennes, les cartes Trio n'ont pas ou peu d'accélération matérielle.

  • Cartes nVidia: très mauvais choix pour la lecture vidéo. Si vous n'avez pas une GeForce2 (ou plus récent), elle risque de ne pas fonctionner sans bogues. Le pilote intégré à XFree86 ne supporte l'accélération matérielle YUV sur aucune des cartes nVidia. Vous devrez télécharger les pilotes nVidia propriétaires depuis nVidia.com. Voir la section pilote Xv nVidia pour de plus amples détails, voir aussi la section nVidia TV-out si vous souhaitez utiliser une télé.

  • 3DLabs GLINT R3 et Permedia3: un pilote VIDIX est fourni (pm3_vid). Reportez vous à la section VIDIX pour plus de détails.

  • Autre cartes: Aucune de celles citées plus haut ?

    • Testez si le pilote XFree86 (et votre carte vidéo) supporte l'accélération matérielle. Voir la section Xv pour plus de détails.
    • Si ce n'est pas le cas, alors les fonctionnalités de votre carte vidéo ne sont pas supportées sous votre système d'exploitation :( Si le zoom matériel fonctionne sous Windows, cela ne veut pas dire qu'il fonctionnera sous Linux ou d'autres systèmes d'exploitation: cela dépend des pilotes. La plupart des fabriquants ne font pas de pilotes Linux ni ne diffusent les spécifications de leurs chipsets, donc vous n'avez pas de chance d'utiliser leur cartes. Voir Non-YUV cards.

1.2.3.2. Cartes non-YUV

L'affichage en plein-écran peut être obtenu soit en activant le redimensionnement logiciel (utilisez -zoom ou -vf, mais je vous préviens: c'est lent), ou passez dans une résolution plus basse, par exemple 352x288. Si vous n'avez pas d'accélération YUV, cette dernière méthode est recommandée. Le changement de mode vidéo peut être activé en utilisant l'option -vm et fonctionne avec les pilotes suivants:

  • en utilisant XFree86: voir les sections pilote DGA et pilote X11. DGA est recommandé! Essayez aussi DGA via SDL, parfois c'est mieux.
  • sans utiliser XFree86: essayez les pilotes dans l'ordre suivant: vesa, fbdev, svgalib, aalib.

1.2.3.3. Cartes Cirrus-Logic

  • GD 7548: intégré aux cartes mères et testé sur la gamme de portables Compaq Armada 41xx.

    • XFree86 3: fonctionne dans les modes 8/16bpp. Cependant, le pilote est dramatiquement lent et bogué en 800x600@16bpp. Recommandé: 640x480@16bpp
    • XFree86 4: le serveur X se gèle peu après le lancement à moins de désactiver l'accélération matérielle, mais dans ce cas l'ensemble devient plus lent que XFree86 3. Pas de XVideo.
    • FBdev: le framebuffer peut être activé avec le pilote clgenfb dans le noyau, bien que pour moi cela n'est fonctionné qu'en 8bpp, donc inutilisable. L'ID 7548 doit être précisé dans le source clgenfb avant la compilation.
    • VESA: la carte est limité au standard VBE 1.2, donc la sortie VESA ne peut pas être utilisé. On ne peut pas contourner ceci avec UniVBE.
    • SVGAlib: détecte un chips Cirrus plus ancien. Utilisable mais lent avec -bpp 8.

1.2.4. Cartes son

  • Soundblaster Live!: avec cette carte vous pouvez utiliser 4 ou 6 canaux AC3 (5.1) au lieu de 2. Voir la section Décodage AC3 logiciel. Pour le transfert AC3 matériel vous devez utiliser ALSA 0.9 avec l'émulation OSS!
  • C-Media avec sortie S/PDIF: Le transfert AC3 matériel est possible avec ces cartes, voir la section Décodage AC3 matériel.
  • Les Fonctions des autres cartes ne sont pas supportées par MPlayer. Il est fortement recommandé de lire la section cartes son !

1.2.5. Fonctionalités

  • Décidez si vous avez besoin d'une GUI (interface graphique). Si c'est le cas, voir la section GUI avant de compiler.

  • Si vous voulez installer MEncoder (notre excellent encodeur multi-usages), voir la section MEncoder.

  • Si vous possédez une carte tuner TV compatible V4L, et désirez voir/enregistrer et encoder des films avec MPlayer, voyez la section Entrée TV.

  • Il y a un élégant Menu OSD prêt à être utilisé. Regardez la section menu OSD.

Ensuite compilez MPlayer:

./configure
make
make install

A ce point, MPlayer est prêt à fonctionner. Le répertoire $PREFIX/share/mplayer contient le fichier codecs.conf, qui est utilisé pour donner au programme la liste des codecs et de leurs capacités. Ce fichier n'est requis que si vous voulez changer ses propriétés, car le binaire principal en contient une copie interne. Vérifiez si vous avez un codecs.conf dans votre répertoire personnel (~/.mplayer/codecs.conf) provenant d'une ancienne installation de MPlayer, et supprimez-le.

Notez que si vous avez un codecs.conf dans ~/.mplayer/, les fichiers codecs.conf du système ou celui intégré seront complètement ignorés. Ne faites pas cela à moins de vouloir jouer avec le fonctionnement interne de MPlayer car cela peut poser des problèmes. Si vous voulez changer l'ordre de recherche des codecs, utilisez les options -vc, -ac, -vfm, ou -afm soit en ligne de commande soit dans votre fichier de config (voir la page de man).

Les utilisateurs Debian peuvent construire un paquet .deb pour leur propre usage, c'est très simple. Exécutez

fakeroot debian/rules binary

dans le répertoire racine de MPlayer. Voir Création de paquets Debian pour de plus amples instructions.

Regardez toujours le listing généré par ./configure, ainsi que le fichier configure.log, ils contiennent des informations sur ce qui sera compilé, et ce qui ne le sera pas. Vous pouvez également consulter les fichiers config.h et config.mak. Si vous avez quelques librairies installées, mais pas détectées par ./configure, alors vérifiez que vous avez les fichiers d'en-tête (généralement les paquets -dev) et que leur version correspond. Le fichier configure.log vous dit généralement ce qui manque.

Bien que n'étant pas indispensables, les polices peuvent être installées pour l'affichage de l'OSD, et le support des sous-titres. La méthode recommandée est d'installer un fichier de police TTF et de dire à MPlayer de l'utiliser. Voir la section Sous-titres et OSD pour les détails.

1.3. À propos de l'interface graphique?

La GUI à besoin de GTK 1.2.x ou GTK 2.0 (elle n'est pas entièrement basée dessus, mais les menus le sont). Les skins sont stockées au format PNG, donc GTK, libpng (ainsi que leurs paquets de dev, généralement nommés gtk-dev et libpng-dev) doivent être installés. Vous pouver la compiler en spécifiant l'option --enable-gui durant l'étape ./configure. Ensuite, pour l'activer vous devrez exécuter le binaire gmplayer.

Actuellement vous ne pouvez pas utiliser l'option -gui en ligne de commande, ceci pour des raisons techniques.

MPlayer n'ayant pas de skin par défaut, vous devrez la télécharger si vous voulez utiliser la GUI. Voir la page des téléchargements. Elles pourront se placer dans le répertoire commun ( $PREFIX/share/mplayer/Skin), ou dans $HOME/.mplayer/Skin. Par défaut, MPlayer consulte ces répertoires à la recherche d'un répertoire nommé default, mais vous pouvez utiliser l'option -skin nouvelleskin, ou placer skin=nouvelleskin dans votre fichier de configuration pour utiliser la skin dans le répertoire */Skin/newskin.

1.4. Sous-titres et OSD

MPlayer peut afficher des sous-titres durant le film. Les formats suivants sont supportés:

  • VobSub

  • OGM

  • CC (closed caption)

  • MicroDVD

  • SubRip

  • SubViewer

  • Sami

  • VPlayer

  • RT

  • SSA

  • PJS (Phoenix Japanimation Society)

  • MPsub

  • AQTitle

  • JACOsub

MPlayer peut convertir les formats précédemment listés (excepté les trois premiers) dans dans les formats de destinations suivants, en utilisant ces options:

  • MPsub: -dumpmpsub

  • SubRip: -dumpsrtsub

  • MicroDVD: -dumpmicrodvdsub

  • JACOsub: -dumpjacosub

  • Sami: -dumpsami

MEncoder peut convertir les sous-titres DVD au format VOBSub.

Les options en ligne de commande diffèrent légèrement suivant les différents formats:

Sous-titres VOBSub.  Les sous-titres VOBSub consistent en un gros (plusieurs méga-octets) fichier .SUB, et d'éventuels fichiers .IDX et/ou .IFO. Si vous avez des fichiers tels que sample.sub, sample.ifo (optionnel), sample.idx - vous devrez passer à MPlayer l'option -vobsub sample [-vobsubid id] (éventuellement avec le chemin complet). L'option -vobsubid est comme l'option -sid pour les DVDs, vous pouvez choisir les pistes de sous-titres (langues) avec. Au cas où -vobsubid est omis, MPLayer essaiera d'utiliser les langues indiqués par l'option -slang et se rabattra sur l'objet langidx du fichier .IDX pour définir la langue de sous-titres. Si cela échoue, il n'y aura pas de sous-titres.

Autres sous-titres.  Les autres formats consistent en un seul fichier texte contenant le timing, l'emplacement et autres infos du texte. Utilisation: si vous avez un fichier tel que exemple.txt, vous devrez passer l'option -sub exemple.txt (éventuellement avec le chemin complet).

Réglage du timing et de l'emplacement des sous-titres:

-subdelay sec
Décale les sous-titres de sec secondes. Peut être négatif. La valeur est ajouté au compteur d'avancement du film (movie's time position counter).
-subfps DÉBIT
Spécifie le rapport trame/sec du fichier de sous-titres (nombre à virgule).
-subpos 0-100
Spécifie la position des sous-titres sur l'écran.

Si vous constatez un décalage progressif entre le film et les sous-titres en utilisant un fichier de sous-titres MicroDVD, il est probable que la vitesse du film et celle des sous-titres soient différentes. Veuillez noter que le format de sous-titres MicroDVD utilise des numéros de trames absolus pour sa synchronisation, mais il ne contient pas d'information sur les fps et de ce fait l'option -subfps devrait être utilisée avec ce format. Si vous voulez résoudre ce problème de manière permanente, vous devez convertir manuellement le débit des trames du fichier de sous-titres. MPlayer peut faire cette conversion pour vous:

mplayer -dumpmicrodvdsub -fps subtitles_fps -subfps
 avi_fps -sub subtitle_filename 
 dummy.avi

A propos des sous-titres DVD, voir la section DVD.

1.4.1. Format de sous-titres propre à MPlayer (MPsub)

MPlayer introduit un nouveau format de sous-titres appelé MPsub. Il a été conçu par Gabucino. Son principal avantage est de se baser dynamiquement sur la durée (bien qu'il possède également un mode basé sur les frames). Exemple (de DOCS/tech/mpsub.sub):

FORMAT=TIME
# premier nombre : attends cette durée après la disparition du dernier sous-titre
# second nombre  : affiche le sous-titre en cours pour tant de secondes

15 3
A long long, time ago...

0 3
in a galaxy far away...

0 3
Naboo was under an attack.

Comme vous pouvez le constater, l'objectif ici est de faciliter l'édition/synchronisation/jointure/découpage. Si vous avez un sous-titre SSA mal synchronisé avec votre version de la vidéo, faites simplement un

mplayer dummy.avi -sub source.ssa -dumpmpsub

Un fichier dump.mpsub sera créé dans le répertoire courant, contenant le texte du sous-titre au format MPsub. Vous pourrez alors aisément ajouter/soustraire du temps entre les sous-titres.

Les sous-titres sont affichés par une technique nommée 'OSD', On Screen Display (Affichage sur l'écran). L'OSD est utilisé pour afficher le temps de lecture, la barre de volume, d'avance/retour rapide, le contraste, etc.

1.4.2. Installer l'OSD et les sous-titres

Vous aurez besoin d'un paquet de polices MPlayer afin d'utiliser les fonctions d'OSD/SUB. Il y a plusieurs manières de les obtenir:

  • Utiliser le générateur de polices de TOOLS/subfont-c. C'est un outil complet pour convertir les polices TTF/Type1/etc en paquets de polices mplayer (voir TOOLS/subfont-c/README pour les détails).

  • Utiliser le plugin générateur de polices de GIMP dans TOOLS/subfont-GIMP (note: vous devez avoir le plugin HSI RAW également, voir http://realtime.ssu.ac.kr/~lethean/index.php?pagename=MplayerKoreanFonts).

  • Utiliser une fonte TrueType (TTF), par l'intermédiaire de la librairie freetype. La Version 2.0.9 ou supérieure est obligatoire! Ensuite vous avez deux méthodes:

    • utiliser l'option -font /chemin/de/police.ttf pour spécifier un fichier de polices TrueType à chaque fois

    • créer un lien symbolique:

      ln -s /chemin/de/police.ttf ~/.mplayer/subfont.ttf

    Si MPlayer a été compilé avec le support fontconfig, les méthodes ci-dessus ne fonctionneront pas, à la place -font attends un nom de police fontconfig et sinon utilise la police sans-serif par défaut. Pour obtenir une liste des polices connues de fontconfig, utilisez fc-list. Exemple: -font 'Bitstream Vera Sans'

  • Télécharger des paquetages de polices prêtes à l'emploi depuis le site de MPlayer. Note: Les polices actuellement disponibles sont limitées a l'iso 8859-1/2, mais il y en a quelques autres (incluant le Coréen, le Russe, l'ISO 8859-8, etc) dans la section contrib/font du FTP, créées par les utilisateurs.

    Les polices devront disposer du fichier font.desc approprié qui associe les positions maps unicode au code actuel du texte sous-titré. Une autre solution est d'avoir des sous-titres encodés en UTF8 et d'utiliser l'option -utf8 ou de renommer le fichier des sous-titres en <nom_video>.utf. Enregistrer de codepages différents en UTF-8 peut se faire en utilisant les programmes konwert ou iconv.

    Tableau 1.1. Quelques liens:

    URLCommentaire
    ftp://ftp.mplayerhq.hu/MPlayer/releases/fonts/ polices ISO
    ftp://ftp.mplayerhq.hu/MPlayer/contrib/fonts/ contributions d'utilisateurs
    http://realtime.ssu.ac.kr/~lethean/index.php?pagename=MplayerKoreanFonts polices Coréennes et plugin RAW

Si vous avez choisi des polices non-TTF, dézippez le fichier vers ~/.mplayer ou $PREFIX/share/mplayer. Ensuite renommez ou faites un lien symbolique de l'un d'eux sur font, par exemple:

ln -s ~/.mplayer/arial-24 ~/.mplayer/font

Vous pouvez maintenant voir un compteur dans le coin supérieur gauche du film. (Faites les apparaître/disparaître avec la touche o).

(les sous-titres sont toujours activés, pour les désactiver merci de lire la page de man)

L'OSD possède 4 états (interchangeable avec o):

  1. barre de volume + barre d'avancement (par défaut)
  2. barre de volume + barre d'avancement + compteur + position en pourcentages quand déplacement
  3. barre de volume + barre d'avancement + compteur + durée totale du média
  4. uniquement les sous-titres

Vous pouvez en modifier le comportement par défaut en spécifiant la variable -osdlevel dans le fichier config, ou en précisant l'option -osdlevel en ligne de commande.

1.4.3. Menu OSD

MPlayer possède une interface de menu OSD complètement modulable.

Note

Le menu des préférences n'est PAS IMPLÉMENTÉ pour l'instant!

Installation

  1. compilez MPlayer en passant le paramètre --enable-menu à ./configure
  2. assurez-vous que les polices OSD sont installées
  3. copiez etc/menu.conf dans votre répertoire .mplayer
  4. copiez etc/input.conf dans votre répertoire .mplayer, ou dans le fichier de config globale de MPlayer (par défaut: /usr/local/etc/mplayer)
  5. trouvez et éditez input.conf pour activer les touches correspondants aux mouvements dans le menu (c'est décrit sur place).
  6. lancez MPlayer avec par exemple:

    $ mplayer -menu fichier.avi

  7. pressez n'importe laquelle des touches menu que vous avez défini

1.5. RTC

Il y a trois méthodes de synchro dans MPlayer.

  • Pour utiliser l'ancienne méthode, vous n'avez rien à faire. Elle utilise usleep() pour régler la synchro A/V, avec une précision de +/- 10ms. Cependant parfois la synchro doit être réglé encore plus finement.
  • Le nouveau code de synchro utilise la RTC (Real Time Clock) du PC pour cette tâche, car elle à des timers précis à 1ms près. Il est automatiquement activé si disponible, mais requiert des droits root, un binaire MPlayer setuid root ou un noyau configuré dans ce but. Si vous utilisez un noyau 2.4.19pre8 ou plus récent, vous pouvez ajouter la fréquence maxi de la RTC pour les utilisateurs normaux au travers du système de fichier /proc. Utilisez cette commande pour activer la RTC pour les utilisateurs normaux:

    echo 1024 > /proc/sys/dev/rtc/max-user-freq

    Si vous n'avez pas un noyau si récent, vous pouvez aussi changer une ligne du fichier drivers/char/rtc.c et recompiler votre noyau. Trouvez la section suivante

           * We don't really want Joe User enabling more
           * than 64Hz of interrupts on a multi-user machine.
           */
          if ((rtc_freq > 64) && (!capable(CAP_SYS_RESOURCE)))
       

    et changez le 64 en 1024. Cependant, vous devriez savoir ce que vous faites. Vous pouvez voir l'efficacité du nouveau timer sur la ligne d'état. Les fonctions d'économie d'énergie du BIOS de certains portables qui contrôlent la vitesse des processeurs interfèrent avec la RTC. L'audio et la vidéo peuvent alors se désynchroniser. Brancher l'alimentation sur secteur avant de démarrer le portable semble aider. Vous pouvez toujours désactiver le support RTC avec l'option -nortc. Dans certaines configurations matérielles (confirmées durant l'utilisation d'un lecteur DVD sans DMA sur une carte ALi1541), l'utilisation de la RTC peut causer une image qui saute. Dans ce cas, il est recommandé d'utiliser la troisième méthode.

  • La troisième méthode de synchro est activée par l'option -softsleep. Il à la précision de la RTC, mais n'utilise pas la RTC. D'un autre côté, il nécessite plus de CPU.

Note

Ne JAMAIS installer un binaire MPlayer setuid root sur un système multi-utilisateur ! C'est une manière facile pour n'importe qui de devenir root.

Chapitre 2. Fonctionnalités

2.1. Formats supportés
2.1.1. Formats vidéo
2.1.1.1. Fichiers MPEG
2.1.1.2. Fichiers AVI
2.1.1.3. Fichiers ASF/WMV
2.1.1.4. Fichiers QuickTime/MOV
2.1.1.5. Fichiers VIVO
2.1.1.6. Fichiers FLI
2.1.1.7. Fichiers RealMedia (RM)
2.1.1.8. Fichiers NuppelVideo
2.1.1.9. Fichiers yuv4mpeg
2.1.1.10. Fichiers FILM
2.1.1.11. Fichiers RoQ
2.1.1.12. Fichiers OGG/OGM
2.1.1.13. Fichiers SDP
2.1.1.14. Fichiers PVA
2.1.1.15. Fichiers NSV
2.1.1.16. Fichiers Matroska
2.1.1.17. fichiers NUT
2.1.1.18. Fichiers GIF
2.1.2. Formats Audio
2.1.2.1. Fichiers MP3
2.1.2.2. Fichiers WAV
2.1.2.3. Fichiers OGG/OGM (Vorbis)
2.1.2.4. Fichiers WMA/ASF
2.1.2.5. Fichiers MP4
2.1.2.6. CD audio
2.1.2.7. XMMS
2.2. Codecs Supportés
2.2.1. Codecs vidéo
2.2.1.1. DivX4/DivX5
2.2.1.2. FFmpeg/libavcodec
2.2.1.3. Codecs XAnim
2.2.1.4. Vidéo VIVO
2.2.1.5. Vidéo MPEG-1/2
2.2.1.6. MS Video1, Cinepak CVID, et autres vieux codecs
2.2.1.7. RealVideo
2.2.1.8. XviD
2.2.1.9. Sorenson
2.2.1.10. x264
2.2.1.10.1. Qu'est ce que le x264?
2.2.1.10.2. Qu'est ce que le H.264?
2.2.1.10.3. Comment puis-je jouer des vidéos H.264 avec MPlayer?
2.2.1.10.4. Comment puis-je encoder des vidéos avec MEncoder et x264?
2.2.2. Codecs audio
2.2.2.1. Décodage AC3 logiciel
2.2.2.2. Décodage AC3 matériel
2.2.2.3. support libmad
2.2.2.4. VIVO audio
2.2.2.5. RealAudio
2.2.2.6. Codecs QDesign
2.2.2.7. Codec Qualcomm
2.2.2.8. Codec AAC
2.2.3. Comment importer les codecs Win32
2.2.3.1. codecs VFW
2.2.3.2. Codecs DirectShow
2.3. Sorties vidéo
2.3.1. Réglage MTRR
2.3.2. Sortie vidéo pour cartes graphiques traditionnelles
2.3.2.1. Xv
2.3.2.1.1. Cartes 3dfx
2.3.2.1.2. Cartes S3
2.3.2.1.3. Cartes nVidia
2.3.2.1.4. Cartes ATI
2.3.2.1.5. Cartes NeoMagic
2.3.2.1.6. Cartes Trident
2.3.2.1.7. Cartes Kyro/PowerVR
2.3.2.2. DGA
2.3.2.3. SDL
2.3.2.4. SVGAlib
2.3.2.5. Sortie Framebuffer (FBdev)
2.3.2.6. Framebuffer Matrox (mga_vid)
2.3.2.7. Support YUV 3Dfx
2.3.2.8. Sortie OpenGL
2.3.2.9. AAlib - affichage en mode texte
2.3.2.10. libcaca - Librairie ASCII Art en couleur
2.3.2.11. VESA - sortie sur BIOS VESA
2.3.2.12. X11
2.3.2.13. VIDIX
2.3.2.13.1. Cartes ATI
2.3.2.13.2. Cartes Matrox
2.3.2.13.3. Cartes Trident
2.3.2.13.4. Cartes 3DLabs
2.3.2.13.5. Cartes nVidia
2.3.2.13.6. Cartes SiS
2.3.2.14. DirectFB
2.3.2.15. DirectFB/Matrox (dfbmga)
2.3.3. Décodeurs MPEG
2.3.3.1. sorties et entrées DVB
2.3.3.2. DXR2
2.3.3.3. DXR3/Hollywood+
2.3.4. Autres matériels de visualisation
2.3.4.1. Zr
2.3.4.2. Blinkenlights
2.3.5. Sortie TV
2.3.5.1. Cartes Matrox G400
2.3.5.2. Cartes Matrox G450/G550
2.3.5.3. Cartes ATI
2.3.5.4. Voodoo 3
2.3.5.5. nVidia
2.3.5.6. Neomagic
2.4. Périphériques de sortie audio
2.4.1. Synchronisation audio/vidéo
2.4.2. Dépannage
2.5. Entrée TV
2.5.1. Compilation
2.5.2. Astuces d'utilisation
2.5.3. Exemples

2.1. Formats supportés

Il est important de clarifier une erreur commune. Quand les gens voient un fichier avec une extension .AVI, ils en concluent immédiatement qu'il ne s'agit pas d'un fichier MPEG. Ce n'est pas vrai. Du moins pas entièrement. Contrairement aux suppositions populaires, un tel fichier peut contenir de la vidéo MPEG-1.

Vous voyez, un codec n'est pas la même chose qu'un format de fichier. Exemples de codecs vidéo: MPEG-1, MPEG-2, MPEG-4 (DivX), Indeo5, 3ivx. Exemples de formats de fichier: MPG, AVI, ASF.

En théorie, vous pouvez placer une vidéo OpenDivX et de l'audio MP3 dans un format de fichier MPG. Par contre, la plupart des lecteurs ne pourrons pas lire ce fichier car ils attendent de la vidéo MPEG-1 et de l'audio MP2 (contrairement à l'AVI, le MPG ne contient pas les champs nécessaires pour décrire ses flux vidéo et audio). Ou vous pouvez placer de la vidéo MPEG-1 dans un fichier AVI. FFmpeg et MEncoder peuvent créer ces fichiers.

2.1.1. Formats vidéo

2.1.1.1. Fichiers MPEG

Les fichiers MPEG peuvent avoir des apparences différentes:

  • MPG: C'est la forme la plus basique des formats de fichier MPEG. Il contient de la vidéo MPEG-1, et de l'audio MP2 (MPEG-1 layer 2) ou plus rarement MP1.
  • DAT: C'est très exactement le même format que MPG mais avec une extension différente. Il est utilisé dans les Video CDs. A cause de la façon dont sont créés les VCDs et dont linux est conçu, les fichiers DAT ne peuvent être ni lus ni copiés depuis des VCDs en temps que fichiers réguliers. Vous devrez utiliser l'option vcd:// pour lire un Video CD.
  • VOB: C'est le format de fichier MPEG des DVDs. C'est le même que MPG, plus la capacité de contenir des sous-titres et de l'audio non-MPEG (AC3). Il contient de la vidéo encodée en MPEG2 et généralement de l'audio AC3, mais DTS, MP2 et LPCM non-compressé sont également autorisés. Lisez la section DVD!
  • TY: C'est un flux TiVo MPEG. Il contient les données MPEG PES pour les flux audio et vidéo, ainsi que des informations en plus comme les closed captions (CC). Le conteneur n'est pas un flux de programme MPEG, mais un format fermé créé par TiVo. Pour plus d'informations sur le format de flux TiVo, veuillez vous référer à la page TyStudio.

Les séries de trames forment des groupes indépendants dans les fichiers MPEG. Cela signifie que vous pouvez couper/joindre un fichier MPEG avec des outils fichiers standards (comme dd, cut), et il restera parfaitement lisible.

Une fonction importante des MPGs est qu'ils ont un champ décrivant le rapport d'aspect du flux vidéo à l'interieur du flux. Par exemple les SVCDs ont une résolution de 480x480, et dans l'entête ce champ est fixé à 4:3, il est donc lu en 640x480. Les fichiers AVI n'ont pas ce champ, ils doivent donc être redimensionnés durant l'encodage ou joués avec l'option -aspect.

2.1.1.2. Fichiers AVI

Conçu par Microsoft, AVI (Audio Video Interleaved) est un format répandu et multi-usages actuellement utilisé par la plupart des vidéos MPEG-4 (DivX et DivX4). Il a de nombreux inconvénients et défauts (par exemple en streaming). Il supporte un flux vidéo et de 0 à 99 flux audio. La taille du fichier est limité à 2Go, mais il existe une extension permettant des fichiers plus gros appelée OpenDML. Actuellement Microsoft décourage fortement son utilisation au profit d' ASF/WMV.

Il y a un hack qui permet aux fichiers AVI de contenir un flux audio Ogg Vorbis, mais qui les rend incompatibles avec le standard AVI. MPlayer peut lire ces fichiers. Le déplacement est aussi implémenté mais sévèrement gêné par les fichiers mal encodés avec des entêtes trompeuses. Malheureusement le seul encodeur capable actuellement de créer ces fichiers, NanDub, a ce problème.

Note

Les caméras DV créent des flux DV bruts que les utilitaires de capture DV convertissent en deux types de fichiers AVI différents. L'AVI pourra ensuite contenir soit des flux audio et vidéo séparés que MPlayer peut lire, soit un flux DV brut pour lequel le support est en développement.

Il y a deux types de fichiers AVI:

  • Entrelacé: Les contenus audios et vidéos sont entrelacés. C'est l'utilisation standard. Recommandée et généralement utilisée. Certains outils créent des AVIs entrelacés avec une mauvaise synchro. MPlayer les détecte comme entrelacés, ce qui va enduire une perte de synchro A/V, probablement pendant un déplacement. Ces fichiers devraient être lu en tant que non-entrelacés (avec l'option -ni).
  • Non-entrelacé: D'abord vient le flux vidéo entier, puis le flux audio entier. Il a donc besoin de beaucoup de déplacements, rendant la lecture depuis le réseau ou un CD-ROM difficile.

MPlayer supporte deux types de synchro pour les fichiers AVI:

  • basé sur bps: Basé sur le bitrate/samplerate du flux video/audio. Cette méthode est utilisé dans la plupart des lecteurs, incluant avifile et Windows Media Player. Les fichiers avec des entêtes endommagées, et les fichiers créés avec de l'audio VBR mais pas avec un encodeur VBR-compliant auront une désynchro A/V avec cette méthode (la plupart du temps en se déplaçant).
  • basé sur l'entrelacement: N'utilise pas le bitrate de l'entête, à la place utilise la position relative des morceaux d'audio et de vidéo entrelacés, rendant lisibles les fichiers mal encodés avec de l'audio VBR.

N'importe quel codec audio et vidéo est autorisé, mais notez que l'audio VBR n'est pas très bien supporté par la plupart des lecteurs. Le format de fichier rend l'utilisation d'audio VBR possible, mais la plupart des lecteurs attendent de l'audio CBR, donc ils échouent avec VBR. VBR n'est pas très courant et les spécs AVI de Microsoft ne décrivent que l'audio CBR. La plupart des encodeurs /multiplexeurs créés de mauvais fichiers en utilisant l'audio VBR. Il n'y a que deux exceptions: NanDub et MEncoder.

2.1.1.3. Fichiers ASF/WMV

ASF (Active Streaming Format) provient de Microsoft. Ils ont développé deux variantes de l'ASF, v1.0 et v2.0. v1.0 est utilisé par leurs outils multimédia (Windows Media Player et Windows Media Encoder) et sont très secrètes. v2.0 est publié et breveté :). Bien sûr elles diffèrent, il n'y a pas de compatibilité du tout (ce n'est juste qu'un autre nom légal). MPlayer ne supporte que la v1.0, car personne n'a vu de fichiers v2.0 :). Notez que les fichiers ASF portent maintenant l'extension .WMA ou .WMV.

2.1.1.4. Fichiers QuickTime/MOV

Ces formats ont été conçus par Apple et peuvent contenir n'importe quel codec, CBR ou VBR. Ils ont généralement une extension .QT ou .MOV. Notez que depuis que le groupe MPEG4 a choisi QuickTime en tant que format recommandé pour le MPEG4, leurs fichiers MOV sont diffusés avec une extension .MPG ou .MP4 (Au passage les flux vidéo et audio de ces fichiers sont de véritables fichiers MPG et AAC. Vous pouvez même les extraire avec les options -dumpvideo et -dumpaudio).

Note

La plupart des nouveaux fichiers QuickTime utilise de la vidéo Sorenson et de l'audio QDesign Music. Voir notre section sur le codec Sorenson.

2.1.1.5. Fichiers VIVO

MPlayer démuxe les fichiers VIVO avec plaisir. Le plus gros désavantage de ce format est qu'il n'a pas de bloc d'index, ni de taille de paquets fixe ou d'octet de synchro et la plupart des fichiers manquent même de trames clés, donc oubliez le déplacement !

Le codec vidéo des fichiers VIVO/1.0 est le h.263 standard. Le codec vidéo des fichiers VIVO/2.0 est un h.263v2 modifié et non-standard. Même chose pour l'audio, qui peut être g.723 (standard), ou Vivo Siren.

Voir les sections Codec VIVO video et Codec VIVO audio pour les instructions d'installation.

2.1.1.6. Fichiers FLI

FLI est un très ancien format de fichier utilisé par Autodesk Animator, mais c'est un format courant pour les animations courtes trouvées sur le net. MPlayer démuxe et décode les films FLI et est même capable de ce déplacer à l'intérieur (utile en utilisant l'option -loop). Les fichiers FLI n'ont pas de trame clé, donc l'image sera brouillée pendant un court instant après le déplacement.

2.1.1.7. Fichiers RealMedia (RM)

Oui, MPlayer peut lire (démuxer) les fichiers RealMedia (.rm). Voici une liste des codecs RealVideo et RealAudio supportés.

2.1.1.8. Fichiers NuppelVideo

NuppelVideo est un outil de capture TV (d'après ce que j'en sais:). MPlayer peut lire ses fichiers .NUV (NuppelVideo 5.0 uniquement). Ces fichiers peuvent contenir des trames YV12 non-compressées, YV12+RTJpeg compressées, YV12 RTJpeg+lzo compressées, et YV12+lzo compressées. MPlayer les décode tous (et les encode également avec MEncoder en MPEG-4 (DivX)/etc!). Le déplacement fonctionne.

2.1.1.9. Fichiers yuv4mpeg

yuv4mpeg / yuv4mpeg2 est un format de fichier utilisé par les programmes mjpegtools. Vous pouvez grabber, produire, filtrer ou encoder de la vidéo dans ce format en utilisant ces outils. Le format de fichier est réellement une séquence d'images YUV 4:2:0 non-compressées.

2.1.1.10. Fichiers FILM

Ce format est utilisé par les vieux jeux Sega Saturn CD-ROM.

2.1.1.11. Fichiers RoQ

Les fichiers RoQ sont des fichiers multimédia utilisés dans certains jeux ID comme Quake III et Return to Castle Wolfenstein.

2.1.1.12. Fichiers OGG/OGM

Ceci est un nouveau format de Xiphophorus. Il peut contenir n'importe quel codec vidéo ou audio, CBR ou VBR. Vous aurez besoin d'installer libogg et libvorbis avant la compilation de MPlayer pour qu'il puisse les lire.

2.1.1.13. Fichiers SDP

SDP est un format IETF standard pour décrire les flux RTP video et/ou audio. (Les librairies "LIVE.COM Streaming Media" sont requises.)

2.1.1.14. Fichiers PVA

PVA est un format semblable à MPEG utilisé dans les logiciels des cartes TV DVB (par ex.: MultiDec, WinTV sous Windows.)

2.1.1.15. Fichiers NSV

NSV (NullSoft Video) est un format utilisé par le lecteur Winamp pour faire du stream audio et vidéo. La vidéo est en VP3, VP5 ou VP6, l'audio en MP3, AAC ou VLB. La version audio uniquement de NSV a une extension .nsa. MPlayer peut lire les deux types de flux et fichiers NSV. Veuillez noter que la plupart des fichiers du site de Winamp utilisent de l'audio VLB, qui ne peut être décodé pour l'instant. De plus les flux de ce site nécessitent une couche suplémentaire de dépaquetage qui doit encore être implémentée (ces fichiers sont de toute façon illisibles car ils utilisent de l'audio VLB).

2.1.1.16. Fichiers Matroska

Matroska est un format ouvert de conteneur. En lire plus sur le site officiel.

2.1.1.17. fichiers NUT

NUT est le format de conteneur developé par les membres de MPlayer et FFmpeg. Les deux projets le supportent. En lire plus sur le site officiel.

2.1.1.18. Fichiers GIF

Le format GIFest un format courant pour les graphismes web. Il y a deux versions des specs GIF, GIF87a et GIF89a. La principale différence est que le GIF89a autorise l'animation. MPlayer supporte les deux formats en utilisant libungif ou une autre librairie compatible libgif. Les GIFs non-animés seront affichés comme des vidéos à simple trame. (Utilisez les options -loop et -fixed-vo pour les afficher plus longtemps).

MPlayer ne supporte actuellement pas le déplacement dans les fichiers GIF. Les fichiers GIF n'ont pas nécessairement une taille de trame fixe, ni un débit fixe. De plus, chaque trame est de taille indépendante et, est sensée être positionnée à une certaine place dans un champ de taille fixe. Le débit est contrôlé par un bloc optionnel avant chaque trame qui spécifie le décalage de la prochaine trame en centièmes de seconde.

Les fichiers GIF standard contiennent des trames 24-bit RGB avec au plus une palette 8-bit. Ces trames sont généralement compressées en LZW, bien que certains encodeurs GIF produisent des trames non-compressées pour éviter les problèmes de licence avec la compression LZW.

Si votre distribution ne contient pas libungif, téléchargez-en une copie depuis la page de libungif . Pour des informations techniques détaillées, regardez la spécification GIF89a.

2.1.2. Formats Audio

MPlayer est un lecteur de films et pas de media, bien qu'il puisse lire quelques formats audio (listés dans les sections ci-dessous). Ce n'est pas un usage recommandé de MPlayer, vous feriez mieux d'utiliser XMMS.

2.1.2.1. Fichiers MP3

Vous pouvez avoir des problèmes pour lire certains fichiers MP3 que MPlayer prends pour des MPEGs et ne joue pas correctement voir pas du tout. Ceci ne peut être réparé sans enlever le support de certains fichiers MPEG endommagés et donc restera ainsi pour un temps indéterminé. L'option -demuxer décrite dans la page de man pourrait vous aider dans ces cas-là.

2.1.2.2. Fichiers WAV

2.1.2.3. Fichiers OGG/OGM (Vorbis)

Requiert libogg et libvorbis correctement installés.

2.1.2.4. Fichiers WMA/ASF

2.1.2.5. Fichiers MP4

2.1.2.6. CD audio

MPlayer peut utiliser cdparanoia pour lire des CDDA (Audio CD). Le but de cette section n'est pas d'énumérer les fonctions de cdparanoia.

Voir la page de man pour les options à passer à cdparanoia via -cdda.

2.1.2.7. XMMS

MPlayer peut utiliser les plugins d'entrée de XMMS pour jouer de nombreux formats de fichier. Il y a des plugins pour les thèmes de jeux SNES, les thèmes SID (du Commodore 64), de nombreux formats Amiga, .xm, .it, VQF, musepack, Bonk, shorten et bien d'autres. Vous pouvez les trouver sur la page des plugins d'entrée XMMS.

Pour cette fonctionnalité vous devez avoir XMMS et compiler MPlayer avec MPlayer avec ./configure --enable-xmms. Si cela ne fonctionne pas, vous pourriez avoir besoin de préciser le chemin des plugins et des librairies XMMS explicitement par l'intermédiaire des options --with-xmmsplugindir et --with-xmmslibdir.

2.2. Codecs Supportés

2.2.1. Codecs vidéo

Voir la table d'état des codecs pour une liste complète, générée quotidiennement. Très peu de codecs sont disponibles en téléchargement sur notre page web. Récupérez-les depuis notre page des codecs.

Les plus importants d'entre eux:

  • vidéo MPEG1 (VCD) et MPEG2 (DVD)
  • décodeurs natifs pour DivX ;-), OpenDivX (DivX4), DivX 5.01, 3ivX, MS MPEG4 v1, v2 et autres variantes MPEG4
  • décodeur natif pour Windows Media Video 7/8 (WMV1/WMV2), et décodeur DLL Win32 pour Windows Media Video 9 (WMV3), utilisés tous les deux dans les fichiers .wmv
  • décodeur Sorenson 1 (SVQ1) natif
  • décodeur Sorenson 3 (SVQ3) natif
  • décodeur 3ivx v1, v2
  • codecs Cinepak et Intel Indeo (3.1,3.2,4.1,5.0)
  • MJPEG, AVID, VCR2, ASV2 et autres formats matériels
  • VIVO 1.0, 2.0, I263 et autres variantes H.263(+)
  • FLI/FLC
  • RealVideo 1.0 & 2.0 de libavcodec, et RealVideo 3.0 & 4.0 en utilisant les librairies RealPlayer
  • décodeur natif pour HuffYUV
  • vieux et simples formats variés similaires à RLE

Si vous avez un codec Win32 non listé ici qui n'est pas encore supporté, veuillez lire Comment importer des codecs et aidez-nous à en ajouter le support.

2.2.1.1. DivX4/DivX5

Cette section contient des informations sur les codecs DivX4 et DivX5 de Project Mayo. La première version (alpha) disponible fût OpenDivX 4.0 alpha 47 et 48. Son support était inclu dans MPlayer, et compilé par défaut. Nous avons fréquemment utilisé son code de postprocessing pour améliorer la qualité visuelle des vidéos MPEG-1/2. Maintenant nous utilisons notre propre code, pour tous les types de fichiers.

La nouvelle génération de ce codec est appelée DivX4 et peut même décoder les vidéos créées avec le très mauvais codec DivX ! De plus il est plus rapide que les DLLs Win32 DivX natives mais plus lent que libavcodec. Son utilisation en tant que décodeur est donc déconseillé. Cependant, il est utile pour l'encodage. Un désavantage de ce codec est que ses sources ne sont pas disponibles sous une licence Open Source.

DivX4 fonctionne dans deux modes:

-vc odivx
Utilise le codec à la manière d'OpenDivX. Dans ce cas il affiche des images YV12 dans son propre buffer, et MPlayer fait la conversion de palette via libvo.(Rapide, recommandé !)
-vc divx4
Utilise la conversion de palette du codec. Dans ce mode, vous pouvez également utiliser le format YUY2/UYVY. (LENT)

La méthode -vc odivx est généralement plus rapide, grâce au fait qu'elle transfert les données des images au format YV12 (planar YUV 4:2:0), nécessitant ainsi moins de bande passante sur le bus. Pour les modes YUV compactés (YUY2, UYVY), utilisez la méthode -vc divx4. Pour les modes RGB la vitesse est la même, au mieux elle peut varier selon votre profondeur de couleur.

Note

Si votre pilote -vo supporte le rendu direct, alors -vc divx4 pourra être plus rapide voir même la solution la plus rapide.

Le codec binaire de DivX4/5 peut être téléchargé depuis avifile ou divx.com Désarchivez-le, lancez ./install.sh en root et n'oubliez pas d'ajouter /usr/local/lib à votre /etc/ld.so.conf et de lancer ldconfig.

Récupérez la version CVS de l'ANCIENNE librairie principale OpenDivX comme ceci:

  1. cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot login

  2. cvs -d:pserver:anonymous@cvs.projectmayo.com:/cvsroot co divxcore

  3. Cette librairie principale est séparée en librairies d'encodage et de décodage qui doivent être compilées séparément. Pour la librairie de décodage, tapez simplement

    cd divxcore/decore/build/linux
    make
    cp libdivxdecore.so /usr/local/lib
    ln -s /usr/local/lib/libdivxdecore.so /usr/local/lib/libdivxdecore.so.0
    cp ../../src/decore.h /usr/local/include
    

  4. Hélas, pour la librairie d'encodage il n'y a pas de Makefile Linux disponible, et le code optimisé pour MMX ne fonctionne que sous Windows. Vous pouvez quand même le compiler en utilisant ce Makefile.

    cd ../../../encore/build
    mkdir linux
    cd linux
    cp path/Makefile .
    make
    cp libdivxencore.so /usr/local/lib
    ln -s /usr/local/lib/libdivxencore.so /usr/local/lib/libdivxencore.so.0
    cp ../../src/encore.h /usr/local/include
    

MPlayer détecte automatiquement si DivX4/DivX5 est correctement installé, donc compilez-le normalement. Si il ne détecte pas le codec, votre installation ou votre configuration n'est pas correcte.

2.2.1.2. FFmpeg/libavcodec

FFmpeg contient un paquetage de codec open source, qui est capable de décoder des flux encodés avec des codecs audio et vidéo variés. Il offre également un confort d'encodage impressionnant et une plus grande vitesse que les codecs Win32 ou les librairies DivX4/5 de DivX.com !

Il contient plein de bons codecs, les plus importants étant les variantes MPEG-4: DivX3, DivX4, DivX5, Windows Media Video 7/8 (WMV1/WMV2). Le décodeur WMA est également très intéressant.

Le codec le plus récent est le codec Sorenson 3 (SVQ3). C'est la première implémentation complètement opensource de ce codec. Il est même plus rapide que l'original. Assurez-vous d'utiliser celui-ci à la place du codec binaire !

Pour avoir la liste complète des codecs supportés veuillez vous reporter à la page web de FFmpeg. Codecs video et audio supportés.

Si vous utilisez une version officielle de MPlayer, vous avez libavcodec directement dans le paquetage, construisez comme d'habitude. Si vous utilisez la version CVS de MPlayer vous devrez extraire libavcodec de l'arborescence CVS de FFmpeg car les versions officielles sont très rares. Le CVS est pratiquement stable et offre le plus de fonctions. Pour y arriver faites:

  1. cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg login

  2. cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/ffmpeg co -P ffmpeg/libavcodec

  3. Déplacez le répertoire libavcodec et libavutil des sources FFmpeg à la racine de l'arborescence CVS de MPlayer. Cela devrait ressembler à cela: main/libavcodec main/libavutil

    Faire un lien symbolique n'est pas suffisant, vous devez le copier/déplacer!

  4. Si vous préférez que libavcodec soit mis à jour en même temps que vous mettez à jour le CVS de MPlayer, indiquez la ligne suivante dans le fichier main/CVS/Entries:

    D/libavcodec////

    D/libavutil////

  5. Compilez. configure devrait détecter les problèmes avant la compilation.

Note

La version CVS de MPlayer contient un sous-répertoire libavcodec, mais il ne contient pas le source de libavcodec ! Vous devez suivre les étapes ci-dessus pour obtenir le source de cette librairie.

Avec FFmpeg et ma Matrox G400, je peut voir des films DivX en haute résolution sans sauter de trames sur mon K6-2 500.

2.2.1.3. Codecs XAnim

Note

Soyez prévenu que les codecs binaires XAnim sont packagées avec un morceau de texte revendiquant être la licence liée au logiciel qui, entre autres restrictions, interdit à l'utilisateur d'utiliser les codecs en conjonction avec n'importe quel autre programme que XAnim. Cependant l'auteur de XAnim n'a encore entrepris d'actions légales contre quiconque pour des problèmes relatifs aux codecs.

INSTALLATION ET UTILISATION.  MPlayer est capable d'employer les codecs XAnim pour décoder. Suivez les instructions pour les activer:

  1. Téléchargez les codecs que vous désirez utiliser depuis le site d'XAnim. Le codec 3ivx n'y est pas, il est sur le site de 3ivx.

  2. OU téléchargez le pack de codecs depuis notre page des codecs.

  3. Utilisez l'option --with-xanimlibdir pour dire à configure où trouver les codecs XAnim. Par défaut, il les cherche dans /usr/local/lib/codecs, /usr/local/lib/xanim/mods, /usr/lib/xanim/mods et /usr/lib/xanim. Vous pouvez également définir la variable d'environnement XANIM_MOD_DIR avec le répertoire des codecs XAnim.

  4. Renommez/liez symboliquement ces fichiers, en séparant le reste de l'architecture, ils auront donc des noms comme ceux-ci: vid_cvid.xa, vid_h263.xa, vid_iv50.xa.

XAnim sont des codecs de la famille xanim, donc vous pouvez utiliser l'option -vfm xanim pour dire à MPlayer de les utiliser si possible.

Les codecs testés incluent: Indeo 3.2, 4.1, 5.0, CVID, 3ivX, H.263.

2.2.1.4. Vidéo VIVO

MPlayer peut lire les vidéos Vivo (1.0 and 2.0). Le codec le plus approprié pour les fichiers 1.0 est le décodeur H.263 de FFmpeg, vous pouvez l'utiliser avec l'option -vc ffh263. Pour les fichiers 2.0, utilisez la DLL Win32 par l'intermédiaire de l'option -vc vivo. Si vous ne fournissez pas d'options en ligne de commande,MPlayer sélectionne le meilleur codec automatiquement.

2.2.1.5. Vidéo MPEG-1/2

MPEG-1 et MPEG-2 sont décodés par la librairie multiplateforme libmpeg2 native, dont le code source est inclus dans MPlayer. Nous gérons la vidéo MPEG-1/2 boguée en attrapant le Signal 11 (segmentation fault), et en réinitialisant rapidement le codec, continuant ainsi exactement où l'erreur c'est produite. Cette technique de récupération n'a pas d'influence mesurable sur la vitesse.

2.2.1.6. MS Video1, Cinepak CVID, et autres vieux codecs

MPlayer est capable de lire la plupart des vieux codecs utilisés dans les fichiers AVI et MOV. Dans le passé ces fichiers étaient décodés par des codecs Win32 binaires, mais maintenant nous avons des codecs natifs pour la plupart d'entre eux en utilisant libavcodec.

2.2.1.7. RealVideo

MPlayer décode toutes les versions de RealVideo:

  • RealVideo 1.0, 2.0 (fourcc RV10, RV20) - en/décodage supporté par libavcodec
  • RealVideo 3.0, 4.0 (fourcc RV30, RV40) - décodage supporté par les librairies RealPlayer

Téléchargez les codecs sur http://www.mplayerhq.hu/MPlayer/releases/codecs/. Extrayez-les dans le répertoire /usr/local/lib/codecs. Si vous voulez les placer à un endroit différent, passez l'option --with-reallibdir à configure.

Note

Les librairies RealPlayer ne fonctionnent actuellement qu'avec Linux, FreeBSD, NetBSD et Cygwin sur les plateformes x86, Alpha et PowerPC (Linux/Alpha et Linux/PowerPC ont été testés), et avec Mac OS X.

2.2.1.8. XviD

XviD est un logiciel gratuit de codec video conforme au MPEG-4 ASP, qui possède des dispositifs d'encodage en 2 passes et un support complet du MPEG-4 ASP, rendant la chose beaucoup plus efficace que le bien connu codec DivX. Il se clame une très bonne qualité video et de bonne performance due aux optimisations pour les processeurs les plus moderne.

Cela a commencé par le fork du développement du codec OpenDivX. Il est apparu quand ProjectMayo est passé d'OpenDivX au sources-fermées DivX4 (maintenant DivX5), et les personnes extérieures à ProjectMayo travaillant sur OpenDivX se sont fâchés, et ont démarré XViD. Les deux projets ont donc la même origine.

XviD Installation

Comme la plupart des logiciels open source, il est disponible en deux parfums: versions officiel et la version CVS. La version CVS est actuellement assez stable pour être utilisée, et bénéficie des corrections de bogues existant des versions "officielles". Voici qui doit être fait pour faire fonctionner la version CVS de XviD avec MEncoder (vous avez besoin au minimum de autoconf 2.50, automake et libtool):

  1. cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid login

  2. cvs -z3 -d:pserver:anonymous@cvs.xvid.org:/xvid co xvidcore

  3. cd xvidcore/build/generic

  4. ./bootstrap.sh

  5. ./configure

    Vous pouvez avoir à ajouter des options (examinez la sortie de

    ./configure --help

    ).

  6. make && make install

  7. Si vous avez spécifié --enable-divxcompat, copiez ../../src/divx4.h dans /usr/local/include/.

  8. Recompilez MPlayer avec --with-xvidlibdir=/chemin/vers/libxvidcore.a --with-xvidincdir=/chemin/vers/xvid.h

2.2.1.9. Sorenson

Sorenson est un codec vidéo développé par Sorenson Media et licencié à Apple qui le distribue avec son Lecteur QuickTime. Nous sommes actuellement capables de décoder toutes les versions des fichiers Sorenson avec les décodeurs suivants:

  • Sorenson Video v1 (fourcc SVQ1) - décodage supporté par un codec natif (libavcodec)
  • Sorenson Video v3 (fourcc SVQ3) - décodage supporté par un codec natif (libavcodec)

COMPILATION DE MPLAYER AVEC LE SUPPORT DES LIBRAIRIES QUICKTIME

Note

actuellement seules les plateformes Intel 32-bit sont supportées.

  1. téléchargez le CVS de MPlayer

  2. téléchargez le pack de DLL QuickTime depuis http://www.mplayerhq.hu/MPlayer/releases/codecs/

  3. décompressez le pack de DLL QuickTime dans votre répertoire de codecs Win32 (par défaut: /usr/local/lib/codecs/)

  4. compilez MPlayer

2.2.1.10. x264

2.2.1.10.1. Qu'est ce que le x264?

x264 est une librairie pour créée des flux video H.264. Il n'est pas 100% achevé, mais actuellement il a au moins un début de support pour la plupart des fonctionalités du H.264 qui ont un impact sur la qualité. Il y a aussi des fonctionalités plus avancées des specifications du H.264 qui n'ont rien avoir avec la qualité vidéo. La plupart ne sont pas encore implémentées dans le x264.

Fonctions d'encodage

  • CAVLC/CABAC

  • Références multiple

  • Intra: Tout les types de macrobloc (16x16 et 4x4 avec toutes les prédictions)

  • Inter P: Toutes les partitions (de 16x16 descendant à 4x4)

  • Inter B: Les partitions de 16x16 descendant à 8x8 (incluant SKIP/DIRECT)

  • Control Débit: quantificateur constant, débit constant, ou passe mutliple ABR

  • Détection de découpage de scène

  • Placement B-frame adaptif

  • B-frames commme références / ordre arbitraire de frame

Limitations d'encodage

  • Pas de vrai RD

2.2.1.10.2. Qu'est ce que le H.264?

H.264 est un des noms pour le nouveau codec video numérique développé conjointement par l'ITU et le MPEG. Il peut être aussi correctement référencé avec les noms vagues de "ISO/IEC 14496-10" ou "MPEG-4 Part 10". De façon plus fréquente, il est réferencé comme étant "MPEG-4 AVC" ou juste "AVC".

Qu'importe la façon de l'appeler, H.264 peut valoir le coup d'être essayé parcequ'il peut typiquement être équivalent en qualité au MPEG-4 ASP avec 5%-30% de débit en moins. Concrètement, le résultat dépendra de la source d'encodage et de l'efficacité de l'encodeur. Les gains apportés par H.264 ne sont pas gratuits: Décoder un flux H.264 augmente considérablement les besoins en CPU et mémoire. Par exemple, sur un Athlon 1733 MHz, une vidéo H.264 en résolution DVD à 1500kbps demande environ 35% de CPU à décoder. En comparaison, décoder un flux MPEG-4 ASP en résolution DVD à 1500kbps demande environ 10% de CPU à décoder. Cela signifie que le décodage de flux haute-définition est quasi hors de question pour la majorité des utilisateurs. Cela signifie aussi que même un rip DVD décent peut quelque fois être saccadé sur des processeurs plus lent que 2.0 GHz.

Au moins avec x264, les requièrements en encodage sont moins mauvais que ce dont on est habitué avec le MPEG-4 ASP. Par exemple, sur un Athlon 1733 MHz un encodage DVD typique devrait marcher à 5-15fps.

Ce document n'a pas pour but d'expliquer H.264 en détail, mais si vous êtes intéressé par une brêve vue d'ensemble, vous devriez lire L'Encodage Video Avancé H.264/AVC Standard: Vue d'ensemble et Introduction aux Extensions de Chaîne de Fidélité.

2.2.1.10.3. Comment puis-je jouer des vidéos H.264 avec MPlayer?

MPlayer utilise le décodeur H264 de libavcodec. libavcodec a eu au moins un décodeur H.264 qui est un fonctionne un minimum depuis les alentours de Juillet 2004, cependant des changements et améliorations majeurs ont été implémentés depuis cette date, que ce soit en terme de fonctionalités supportées et en terme d'utilisation améliorée du CPU. Juste pour être certain, c'est toujours une bonne idée d'utiliser une version récente extraite du CVS.

Si vous voulez une façon rapide et facile de savoir si il y a eu des changements récents du décodage H.264 de libavcodec, vous devriez garder un oeil sur Interface Web du site CVS de FFmpeg.

2.2.1.10.4. Comment puis-je encoder des vidéos avec MEncoder et x264?

Si vous avez la sous-version du client installé, les dernières sources de x264 peuvent être récupérées avec cette commande:

    svn co svn://svn.videolan.org/x264/trunk x264

Les sources de MPlayer sont mises à jour lorsque survient un changement de l'API de x264, donc il est toujours conseillé d'utiliser le CVS de MPlayer. Peut-être cette situtation changera quand et si une "release" de x264 survient. En attendant, x264 devra être considéré comme trè instable, dans le sens que son interface de programmation est sujet à changer.

x264 est construit et installé de façon standard:

    ./configure && make && sudo make install

Ceci installe libx264.a dans /usr/local/lib et x264.h est placé dans /usr/local/include. Avec la librairie et l'entête de x264 placé au emplacement standard, construire MPlayer avec le support x264 est facile. Lancé juste le standard:

./configure && make && sudo make install

Le script configure détectera automatiquement que vous avez ce qui est requis pour le x264.

2.2.2. Codecs audio

Les plus importants d'entre eux:

  • MPEG layer 1/2/3 (MP1/2/3) audio (code natif, avec optimisation MMX/SSE/3DNow!)
  • Windows Media Audio 7 et 8 (alias WMAv1 et WMAv2) (code natif, avec libavcodec)
  • Windows Media Audio 9 (WMAv3) (en utilisant la DLL DMO)
  • AC3 Dolby audio (code natif, avec optimisation MMX/SSE/3DNow!)
  • AC3 par l'intermédiaire de la carte son
  • AAC
  • codec audio Ogg Vorbis (librairie native)
  • RealAudio: DNET (AC3 bas débit), Cook, Sipro et ATRAC3
  • QuickTime: codecs audio Qualcomm et QDesign
  • VIVO audio (g723, Vivo Siren)
  • Voxware audio (en utilisant la DLL DirectShow)
  • alaw et ulaw, formats divers gsm, adpcm, pcm et autres vieux codecs audio simples

2.2.2.1. Décodage AC3 logiciel

C'est le décodeur utilisé par défaut pour les fichiers avec de l'audio AC3.

Le décodeur AC3 peut créer des sorties audio mixées pour 2, 4 ou 6 haut-parleurs. Quand il est configuré pour 6 haut-parleurs, ce décodeur fournit des sorties séparées pour tous les canaux AC3 du pilote son, autorisant la pleine expérience du "son surround" sans décodeur AC3 externe requis pour l'usage du codec hwac3.

Utilisez l'option -channels pour sélectionner le nombre de canaux de sortie. Utilisez -channels 2 pour un mix stéréo. Pour un mix 4 canaux (Avant Gauche, Avant Droite, Surround Gauche et Surround Droit), utilisez-channels 4. Dans ce cas, l'éventuel canal du centre sera mixé à part égale sur les canaux de devant. -channels 6 sortira tous les canaux AC3 tels qu'ils ont été encodés - dans l'ordre Gauche, Droite, Surround Gauche, Surround Droit, Centre et LFE.

Le nombre de canaux par défaut est 2.

Pour utiliser plus de 2 canaux de sortie, vous devrez utiliser OSS, et avoir une carte son qui supporte le nombre de canaux de sortie requis via le ioctl SNDCTL_DSP_CHANNELS. Un exemple de driver approprié est emu10k1 (utilisé par la carte Soundblaster Live!) depuis Août 2001 (Le CVS ALSA est également sensé fonctionner).

2.2.2.2. Décodage AC3 matériel

Vous avez besoin d'une carte son gérant l'AC3, avec une sortie numérique (S/PDIF). Le pilote de la carte doit supporter correctement le format AFMT_AC3 (C-Media le fait). Connectez le décodeur AC3 à la sortie S/PDIF, et utilisez l'option -ac hwac3. C'est expérimental mais cela fonctionne avec les cartes C-Media, Soundblaster Live! en utilisant les pilotes ALSA (mais pas OSS) et les décodeurs MPEG DXR3/Hollywood+.

2.2.2.3. support libmad

libmad est une librairie multi-plateforme de décodage MPEG audio entière (24bit PCM interne) uniquement. Elle ne gère pas très bien les fichiers endommagés, et elle a parfois des problèmes pour le déplacement, mais elle peut mieux se comporter que mp3lib sur des plateformes sans FPU (tel que ARM).

Pour en activer le support, compilez avec l'option de configuration --enable-mad

2.2.2.4. VIVO audio

Le codec audio utilisé dans les fichiers VIVO dépend du fait que ce soit un fichier VIVO/1.0 ou VIVO/2.0. Les fichiers VIVO/1.0 ont de l'audio g.723, et les fichiers VIVO/2.0 de l'audio Vivo Siren. Les deux sont supportés.

2.2.2.5. RealAudio

MPlayer supporte le décodage de presque toutes les versions de RealAudio:

  • RealAudio DNET - décodage supporté par liba52
  • RealAudio Cook/Sipro/ATRAC3 - décodage supporté par les librairies RealPlayer

Pour savoir comment installer les librairies RealPlayer, voyez la section RealVideo.

2.2.2.6. Codecs QDesign

Les flux audio QDesign (fourcc:QDMC, QDM2) se trouvent dans les fichiers MOV/QT. Les deux versions de ce codec peuvent être décodées avec les librairies QuickTime. Pour les instructions d'installation merci de voir la section codec vidéo Sorenson.

2.2.2.7. Codec Qualcomm

Les flux audio Qualcomm (fourcc:Qclp) se trouvent dans les fichiers MOV/QT. Pour les instructions d'installation merci de voir la section codec vidéo Sorenson.

2.2.2.8. Codec AAC

AAC (Advanced Audio Coding) est un codec parfois présent dans les fichiers MOV et MP4. Un décodeur open source appelé FAAD est disponible sur http://www.audiocoding.com. MPlayer inclus libfaad 2.0RC1, vous n'avez donc pas à l'obtenir séparemment.

Si vous utilisez gcc 3.2 qui ne peut pas compiler notre FAAD interne, ou si vous voulez utiliser une librairie externe pour d'autres raisons, téléchargez la librairie dpuis la page de téléchargements et passez --enable-external-faad à configure. Vous n'avez pas besoin de tout faad2 pour décoder les fichiers AAC, libfaad suffit. Construisez comme ceci:

cd faad2/
sh bootstrap
./configure
cd libfaad
make
make install

Les binaires ne sont pas disponibles sur audiocoding.com, mais vous pouvez obtenir les paquets Debian sur la page web de Christian Marillat, les RPMs Mandrake sur le P.L.F et les RPMS RedHat sur Grey Sector.

2.2.3. Comment importer les codecs Win32

2.2.3.1. codecs VFW

VFW (Video for Windows) est une ancienne API vidéo pour windows. Ses codecs portent l'extension .DLL ou (rarement) .DRV. Si MPlayer n'arrive pas à lire votre AVI et renvoie :

UNKNOWN video codec: HFYU (0x55594648)

Cela signifie que votre AVI est encodé avec un codec HFYU fourcc (HFYU = codec HuffYUV, DIV3 = DivX Low Motion, etc...). Maintenant que nous savons cela, nous devons déterminer quelle DLL windows utilise pour lire ce fichier. Dans votre cas, le fichier system.ini contient (entre autres):

VIDC.HFYU=huffyuv.dll

Nous aurons donc besoin de la librairie huffyuv.dll. Notez que les codecs audio sont spécifiés par le préfixe MSACM :

msacm.l3acm=L3codeca.acm

C'est le codec MP3. Nous avons désormais toutes les informations nécessaires (fourcc, fichier codec, fichier AVI). Demandez le support de votre codec par mail, et envoyez ces fichiers sur le FTP : ftp://ftp.mplayerhq.hu/MPlayer/incoming/[nomcodec]/

Note

Sous Windows NT/2000/XP cherchez cette info dans la base de registre, c-a-d. cherchez "VIDC.HFYU". Pour savoir comment faire, regardez l'ancienne méthode DirectShow ci-dessous.

2.2.3.2. Codecs DirectShow

DirectShow est une API vidéo récente pour Windows, sans doute plus mauvaise que la précédente. La situation est plus délicate avec DirectShow, puisque

  • system.ini ne contient aucune information, qui sont désormais placées dans la base de registre et
  • nous avons besoin du GUID du codec.

Nouvelle Méthode:

En utilisant Microsoft GraphEdit (rapide)

  1. Obtenez GraphEdit depuis le SDK DirectX ou sur doom9

  2. Exécutez graphedit.exe.

  3. Dans le menu sélectionnez Graph -> Insert Filters.

  4. Dépliez l'élément DirectShow Filters

  5. Sélectionnez le bon nom de codec et dépliez l'élément.

  6. Dans l'entrée DisplayName regardez le texte entre accolades après le backslash et notez-le (cinq blocs délimités par des tirets, le GUID).

  7. Le binaire du codec est le fichier spécifié dans l'entrée Filename.

Note

Si il n'y a pas d'entrée Filename et que DisplayName contient quelque chose comme device:dmo, alors c'est un codec DMO.

Ancienne Méthode:

Respirez à fond et fouillez dans la base de registre...

  1. Lancez regedit.

  2. Pressez Ctrl+F, décochez les deux premières cases, et cochez la troisième. Entrez le fourcc du codec. (par ex.: TM20).

  3. Vous devriez trouver un champ contenant le chemin et le nom du fichier utilisé (par ex. C:\WINDOWS\SYSTEM\TM20DEC.AX).

  4. Maintenant que nous avons le fichier, nous devons trouver son GUID. Cherchez désormais le nom du codec, pas son fourcc. Son nom peut être trouvé quand Media Player lit le fichier, en regardant dans File -> Properties -> Advanced. Si rien n'apparaît, pas de chance. Essayez de le deviner. (par ex. cherchez : TrueMotion)

  5. Si le GUID apparaît dans la base de registre, vous devriez voir un champ FriendlyName et un champ CLSID. Copiez les 16 octets du CLSID, c'est le GUID dont nous avons besoin.

Note

Si la recherche échoue, cochez toutes les options de la fenêtre de recherche. Vous aurez des mauvaises occurrences, mais finirez par obtenir la bonne...

Nous avons désormais toutes les informations nécessaires (fourcc, GUID, fichier codec, fichier AVI), demandez le support de votre codec par mail, et envoyez ces fichiers sur le FTP : ftp://ftp.mplayerhq.hu/MPlayer/incoming/[nomcodec]/

Si vous voulez ajouter un codec vous-même, lisez DOCS/tech/codecs.conf.txt (en anglais).

2.3. Sorties vidéo

2.3.1. Réglage MTRR

Il est FORTEMENT recommandé de bien ajuster ses registres MTRR, qui apportent un gain important de performances.

Faites un cat /proc/mtrr:

--($:~)-- cat /proc/mtrr
reg00: base=0xe4000000 (3648MB), size=  16MB: write-combining, count=9
reg01: base=0xd8000000 (3456MB), size= 128MB: write-combining, count=1

C'est bon, il montre ma Matrox G400 avec 16Mo de mémoire. J'ai fais cela avec XFree 4.x.x , qui ajuste les registres MTRR automatiquement.

Si rien n'a fonctionné, vous devrez procéder manuellement. D'abord, vous devez trouver l'adresse de base. Vous pouvez la trouver de trois façons :

  1. à partir des messages au démarrage de X11, par exemple:

    (--) SVGA: PCI: Matrox MGA G400 AGP rev 4, Memory @ 0xd8000000, 0xd4000000
    (--) SVGA: Linear framebuffer at 0xD8000000

  2. à partir de /proc/pci (utilisez la commande lspci -v):

    01:00.0 VGA compatible controller: Matrox Graphics, Inc.: Unknown device 0525
    Memory at d8000000 (32-bit, prefetchable)
      

  3. à partir des messages noyau du driver mga_vid (utilisez dmesg):

    mga_mem_base = d8000000

Trouvons maintenant la taille mémoire. Simplement, convertissez la taille de la mémoire vidéo en hexadécimal, ou utilisez cette table :

1 Mo0x100000
2 Mo0x200000
4 Mo0x400000
8 Mo0x800000
16 Mo0x1000000
32 Mo0x2000000

Vous connaissez l'adresse de base ainsi que la taille, ajustons vos registres MTRR ! Par exemple, pour la carte Matrox utilisée ci-dessus (base=0xd8000000) avec 32Mo de ram (size=0x2000000) faites simplement :

echo "base=0xd8000000 size=0x2000000 type=write-combining" >| /proc/mtrr

Tous les processeurs ne supportent pas les MTRR. Les anciens K6-2 par exemple (vers 266Mhz, stepping 0) ne sont pas compatibles avec les MTRR, mais les stepping 12 le sont (cat /proc/cpuinfo pour le vérifier).

2.3.2. Sortie vidéo pour cartes graphiques traditionnelles

2.3.2.1. Xv

Sous XFree86 4.0.2 ou plus récent, vous pouvez utiliser les routines YUV matérielles de votre carte en utilisant l'extension XVideo. C'est ce qu'utilise l'option '-vo xv'. De plus, ce pilote supporte le réglage de luminosité/contraste/saturation/etc. (à moins que vous n'utilisiez le vieux, lent codec Divx DirectShow, qui le supporte partout), voir la page de man.

Pour que cela fonctionne, vérifiez ceci :

  1. Vous devez utiliser XFree86 4.0.2 ou plus récent (les versions précédentes n'ont pas XVideo)

  2. Votre carte supporte l'accélération matérielle (les cartes modernes le font)

  3. X charge l'extension XVideo, qui doit faire apparaître quelque chose comme:

    (II) Loading extension XVideo

    dans /var/log/XFree86.0.log

    Note

    NOTE: ceci charge seulement l'extension de XFree86. Dans une installation correcte, celle ci est toujours chargée, et ne signifie pas que le support XVideo spécifique à votre carte est chargée !

  4. Votre carte a le support Xv sous Linux. Pour le vérifier, essayez xvinfo, inclus dans XFree86. Cela doit afficher un long message, similaire à :

    X-Video Extension version 2.2
    screen #0
      Adaptor #0: "Savage Streams Engine"
        number of ports: 1
        port base: 43
        operations supported: PutImage
        supported visuals:
          depth 16, visualID 0x22
          depth 16, visualID 0x23
        number of attributes: 5
    (...)
        Number of image formats: 7
          id: 0x32595559 (YUY2)
            guid: 59555932-0000-0010-8000-00aa00389b71
            bits per pixel: 16
            number of planes: 1
            type: YUV (packed)
          id: 0x32315659 (YV12)
            guid: 59563132-0000-0010-8000-00aa00389b71
            bits per pixel: 12
            number of planes: 3
            type: YUV (planar)
    (...etc...)

    Cela doit supporter les formats de pixels YUY2 packed et YV12 planar pour pouvoir être utilisés avec MPlayer.

  5. Finalement, vérifiez si MPlayer a été compilé avec le support 'xv'. Faites un mplayer -vo help | grep xv Si le support 'xv' à été compilé une ligne similaire à celle-ci devrait apparaitre :

      xv      X11/Xv

2.3.2.1.1.  Cartes 3dfx

Les anciens drivers 3dfx avaient des problèmes avec l'accélération XVideo, et ne supportaient ni YUY2 ni YV12. Vérifiez que vous avez bien XFree86 version 4.2.0 ou plus, il fonctionne correctement avec YV12 et YUY2. Les versions précédentes, incluant 4.1.0, plantent avec YV12. Si des problèmes apparaissent en utilisant -vo xv, essayez SDL (qui utilise également XVideo) et voyez si cela passe mieux. Lisez la section SDL pour plus de détails.

OU, essayez le NOUVEAU pilote -vo tdfxfb ! Voir la section tdfxfb.

2.3.2.1.2. Cartes S3

Les cartes S3 Savage3D doivent fonctionner correctement, mais pour les Savage4, utilisez XFree86 version 4.0.3 ou plus (en cas de problèmes d'image, essayez 16bpp). Comme pour les S3 Virge: il y a un support xv, mais la carte elle-même est très lente, donc vous feriez mieux de la vendre.

Note

Il n'est actuellement pas facile de savoir quels modèles de Savage manquent de support YV12, et de le convertir par un pilote (lent). Si vous suspectez votre carte, prenez un pilote plus récent, ou demandez poliment un pilote qui gère MMX/3DNow sur la liste de diffusion MPlayer-users.

2.3.2.1.3. Cartes nVidia

nVidia n'est pas un très bon choix sous Linux (d'après nVidia, ce n'est pas vrai)... Les pilotes open-source de XFree86 supportent la plupart de ces cartes, mais dans certains cas, vous devrez utiliser les pilotes binaires closed-source de nVidia, disponibles sur le site web de nVidia. Vous aurez toujours besoin de ce pilote si vous voulez l'accélération 3D.

Les cartes Riva128 n'ont pas de support XVideo même avec le driver nVidia :( Plaignez-vous en à nVidia.

Cependant, MPlayer contient un pilote VIDIX pour la plupart des cartes nVidia. Actuellement il est en phase béta, et a quelques inconvénients. Pour plus d'informations, voir la section VIDIX nVidia.

2.3.2.1.4. Cartes ATI

Le pilote GATOS (que vous devriez utiliser, à moins d'avoir une Rage128 ou une Radeon) utilise VSYNC par défaut. Cela signifie que la vitesse de décodage (!) est synchronisée à la vitesse de rafraîchissement du moniteur. Si la lecture semble lente, essayez d'enlever VSYNC, ou passez la vitesse de rafraîchissement à n*(fps du film) Hz.

Radeon VE - si vous avez besoin de X, utilisez 4.2.0 ou supérieur pour cette carte. Pas de support TV-out. Bien sûr avec MPlayer vous pouvez heureusement avoir un affichage accéléré, avec ou sans sortie TV, et aucune librairie ou X ne sont requis. Lire la section VIDIX.

2.3.2.1.5. Cartes NeoMagic

Ces cartes sont utilisées sur de nombreux portables. Vous devez utiliser XFree86 4.3.0 ou supérieur, ou utiliser les pilotes Xv de Stefan Seyfried. Choisissez juste celui qui s'applique à votre version de XFree86.

XFree86 4.3.0 inclut le support Xv, mais Bohdan Horst a envoyé un petit patch pour les sources XFree86 qui accélère les opérations framebuffer (et donc XVideo) jusqu'à quatre fois. Ce patch a été inclus dans le CVS de XFree86 et devrait être dans la prochaine version suivant 4.3.0.

Pour permettre la lecture de contenu de taille DVD changez votre XF86Config comme ceci :

Section "Device"
    [...]
    Driver "neomagic"
    Option "OverlayMem" "829440"
    [...]
EndSection

2.3.2.1.6. Cartes Trident

Si vous voulez utiliser Xv avec une carte Trident, puisque son support ne fonctionne pas avec 4.1.0, installez XFree 4.2.0. Celui-ci ajoute le support Xv plein-écran avec la carte Cyberblade XP.

MPlayer contient également un pilote VIDIX pour la carte Cyberblade/i1.

2.3.2.1.7. Cartes Kyro/PowerVR

Si vous voulez utiliser Xv avec une carte Kyro (par exemple la Hercules Prophet 4000XT), vous devriez télécharger les pilotes depuis le site de PowerVR

2.3.2.2. DGA

PRÉAMBULE.  Ce document tente d'expliquer en quelques mots ce qu'est le DGA en général et ce que peut faire le driver de sortie DGA pour MPlayer (et ce qu'il ne peut pas faire).

QU'EST CE QUE LE DGA.  DGA est l'abréviation de Direct Graphics Access et permet aux programmes de passer outre le serveur X et de modifier directement la mémoire dans le framebuffer. Techniquement parlant, cela fonctionne en mappant la mémoire du framebuffer dans les adresses mémoire de votre process. Cela est autorisé par le noyau uniquement si vous avez les privilèges super-utilisateur. Vous pouvez les obtenir soit en vous loggant en root ou en plaçant le bit suid sur l'exécutable MPlayer (non recommandé).

Il existe deux versions de DGA: DGA1 est utilisé par XFree 3.x.x et DGA2 a été introduit par XFree 4.0.1.

DGA1 propose uniquement un accès direct au framebuffer comme décrit ci-dessus. Pour changer la résolution de votre signal vidéo vous devez utiliser les extensions XVidMode.

DGA2 incorpore les fonctions de XVidMode et permet également de changer le nombre de couleurs de l'affichage. Donc vous pouvez, en exécutant depuis un serveur X 32 bits, passer en 15 bits et vice-versa.

Cependant DGA a quelques défauts. Il semble qu'il reste dépendant de la carte graphique utilisée et de la mise en place du driver de votre serveur X contrôlant cette carte. Cela peut donc ne pas fonctionner sur tous les systèmes...

INSTALLER LE SUPPORT DGA POUR MPLAYER.  Assurez vous d'abord que X charge l'extension DGA, regardez dans /var/log/XFree86.0.log:

(II) Loading extension XFree86-DGA

XFree86 4.0.x ou plus est hautement recommandé ! Le pilote DGA de MPlayer est automatiquement détecté par ./configure, ou vous pouvez le forcer avec l'option --enable-dga.

Si le driver ne peut pas passer en résolution inférieure, essayez les options -vm (uniquement avec X 3.3.x), -fs, -bpp, -zoom pour trouver un mode vidéo qui convienne à la vidéo. Il n'existe pas de convertisseur actuellement :(

Passez en root. DGA nécessite un accès root pour écrire directement dans la mémoire vidéo. Si vous voulez rester en utilisateur, installez MPlayer SUID root :

chown root /usr/local/bin/mplayer
chmod 750 /usr/local/bin/mplayer
chmod +s /usr/local/bin/mplayer

Maintenant cela fonctionne aussi avec les droits d'un simple utilisateur.

Faille de sécurité

Cela présente une grosse faille de sécurité ! Ne faites jamais ceci sur un serveur ou un ordinateur accessible par d'autres personnes que vous, ils pourraient obtenir les privilèges root par l'exécutable MPlayer.

Utilisez maintenant l'option -vo dga et c'est parti ! (Enfin on peut l'espérer:) Vous pouvez alors essayer l'option -vo sdl:dga ! C'est beaucoup plus rapide !

CHANGEMENT DE RÉSOLUTION.  Le driver DGA vous permet de changer la résolution du signal de sortie. Cela permet d'éviter un redimensionnement logiciel, beaucoup plus lent, et offre une image plein écran. Idéalement il doit passer à la résolution exacte de la vidéo (excepté pour respecter le rapport hauteur/largeur), mais le serveur X permet uniquement le passage à des résolutions définies dans /etc/X11/XF86Config (/etc/X11/XF86Config-4 pour XFree 4.X.X respectivement). Ceux-ci sont définis par des modelines dépendantes des capacités de votre matériel. Le serveur X scanne ce fichier de configuration au démarrage et élimine les modelines ne correspondant pas au matériel. Vous pouvez retrouver dans les logs de X quelles modelines sont acceptables. Elles peuvent être trouvées dans: /var/log/XFree86.0.log.

Ces entrées doivent fonctionner correctement avec un chip Riva128, en utilisant le module pilote nv.o du serveur X.

Section "Modes"
  Identifier "Modes[0]"
  Modeline "800x600"  40     800 840 968 1056  600 601 605 628
  Modeline "712x600"  35.0   712 740 850 900   400 410 412 425
  Modeline "640x480"  25.175 640 664 760 800   480 491 493 525
  Modeline "400x300"  20     400 416 480 528   300 301 303 314 Doublescan
  Modeline "352x288"  25.10  352 368 416 432   288 296 290 310
  Modeline "352x240"  15.750 352 368 416 432   240 244 246 262 Doublescan
  Modeline "320x240"  12.588 320 336 384 400   240 245 246 262 Doublescan
EndSection

DGA & MPLAYER.  DGA est utilisé en deux endroits par MPlayer: Le pilote SDL peut se compiler pour en faire usage (-vo sdl:dga) et dans le pilote DGA (-vo dga). Dans les sections suivantes je vous expliquerai comment fonctionne le driver DGA pour MPlayer.

FONCTIONNALITÉS.  Le pilote DGA s'invoque en spécifiant -vo dga en ligne de commande. L'action par défaut consiste à passer dans une résolution s'approchant au mieux de la résolution de la vidéo. Il ignore volontairement les options -vm et -fs (autorisant le changement de résolution et le plein écran) - il essaie toujours de couvrir le plus large espace possible de votre écran en changeant les modes vidéo, tout en utilisant un seul cycle CPU additionnel pour agrandir l'image. Si vous voulez utiliser un autre mode que celui qu'il a choisi, vous pouvez le forcer par les options -x et -y. Avec l'option -v, le pilote DGA affichera, entre autres choses, une liste de toutes les résolutions supportées par votre fichier XF86Config. Avec DGA2 vous pouvez également le forcer a utiliser un certain nombre de couleurs en utilisant l'option -bpp. Les nombres de couleurs autorisées sont 15, 16, 24 et 32. Cela dépend de votre matériel, soit ces modes sont nativement supportés, ou si une conversion logicielle doit être appliquée (ce qui peut ralentir la lecture).

Si par chance vous avez assez de mémoire vidéo libre pour y placer une image entière, le driver DGA utilisera le double buffering, qui améliore considérablement la qualité de lecture. Il doit vous afficher si le double buffering est utilisé ou non.

Double buffering signifie que la prochaine trame de votre vidéo est dessinée dans une partie non affichée de la mémoire graphique tandis que s'affiche la trame en cours. Quand la trame suivante est prête, la puce graphique reçoit simplement l'adresse de celle-ci et récupère les données a afficher depuis cette partie de la mémoire. Pendant ce temps l'autre buffer se remplit avec l'image suivante.

Le double buffering peut s'activer avec l'option -double et se désactiver avec -nodouble. Actuellement l'option par défaut est de désactiver le double buffering. En utilisant le driver DGA, l'on-screen display (OSD) fonctionne uniquement avec le doublebuffering activé. Cependant, activer le double buffering peut demander des calculs supplémentaires au processeur (sur mon K6-II+ 525 il utilisait 20% de temps CPU en plus !), ceci dépendant de l'implémentation du DGA pour votre matériel.

PROBLÈMES DE VITESSE.  Généralement, l'accès au framebuffer DGA peut s'avérer aussi rapide que le driver X11, apportant en plus l'avantage de bénéficier d'une image plein écran. Les pourcentages affichés par MPlayer doivent être interprétés avec précaution, comme par exemple avec le pilote X11 où ils n'incluent pas le temps utilisé par le serveur X pour l'affichage. Pour des résultats exacts, branchez un terminal sur le port série de votre machine et lancez un top pour savoir ce qui se passe réellement lors de la lecture...

D'une manière générale, l'accélération acquise en utilisant le DGA au lieu de l'affichage X11 classique dépend fortement de votre carte graphique et des optimisations effectuées sur le module DGA du serveur X.

Si votre système s'avère trop lent, utilisez plutôt une profondeur de couleurs de 15 or 16bits, qui ne demandent que la moitié de la bande passante d'un affichage 32 bits.

Utiliser une profondeur de 24 bits peut s'avérer une bonne solution si votre carte ne supporte nativement que le 32 bits, le transfert se réduisant de 25% par rapport à un mode 32/32.

J'ai vu certains fichiers AVI passer sur des Pentium MMX 266. Les processeurs AMD K6-2 s'avèrent utilisables à partir de 400 MHz.

BOGUES CONNUS.  A vrai dire, selon certains développeurs de XFree, DGA est une usine à gaz. Ils recommandent d'éviter son utilisation. Son implémentation n'est pas parfaite avec chaque chipset pour XFree.

  • Avec XFree 4.0.3 et nv.o un bogue affiche des couleurs étranges.
  • Les pilotes ATI requièrent de changer plusieurs fois de mode après l'utilisation du DGA.
  • Certains pilotes échouent à revenir à la résolution normale (utilisez Ctrl+Alt+Keypad + et Ctrl+Alt+Keypad - pour y retourner manuellement).
  • Certains pilotes affichent simplement des couleurs étranges.
  • Certains pilotes mentent a propos de la quantité de mémoire allouée dans l'espace d'adressage du processus, empêchant vo_dga d'utiliser le doublebuffering (SIS ?)
  • Certains pilotes semblent ne pas pouvoir reporter ne serait-ce qu'un seul mode valide. Dans ce cas le driver DGA plantera en vous affichant un mode 100000x100000 ou quelque chose comme ça.
  • L'OSD fonctionne uniquement avec le doublebuffering activé (sinon il clignote).

2.3.2.3. SDL

SDL (Simple Directmedia Layer) est fondamentalement une interface vidéo/audio unifiée. Les programmes qui l'utilisent connaissent uniquement SDL, et pas quels pilotes vidéo ou audio SDL utilise lui-même. Par exemple, un portage de Doom utilisant SDL peut tourner avec svgalib, aalib, X, fbdev et autres, vous devez seulement spécifier (par exemple) le pilote vidéo à utiliser avec la variable d'environnement SDL_VIDEODRIVER. Enfin, en théorie.

Avec MPlayer, nous avons utilisé le redimensionnement logiciel de ses pilotes X11 pour les cartes qui ne supportent pas XVideo, jusqu'à ce que nous fassions notre propre "dimensionneur" logiciel (plus rapide, plus agréable). Nous avons également utilisé sa sortie aalib, mais maintenant nous avons la nôtre qui est plus confortable. Son support DGA était meilleur que le nôtre, jusqu'à récemment. Vous comprenez maintenant? :)

Cela aide également avec certains pilotes/cartes boguées si la vidéo est saccadée (pas de problème de lenteur du système), ou si l'audio est retardé.

La sortie vidéo de SDL supporte l'affichage des sous-titres sous le film, dans les bandes noires (si elles sont présentes).

Il existe plusieurs options en ligne de commande pour SDL:

-vo sdl:nom
spécifie le driver vidéo SDL a utiliser (par ex. aalib, dga, x11)
-ao sdl:nom
spécifie le driver audio SDL a utiliser (par ex. dsp, esd, arts)
-noxv
désactive l'accélération Xvideo matérielle
-forcexv
tente de forcer l'accélération Xvideo

Tableau 2.1. Touches SDL

ToucheAction
c passe par tous les modes plein écran valides
n revient en mode normal

Bogues connus:

  • Les touches pressées avec le driver sdl:aalib se répètent en continu (utiliser -vo aa !). C'est un bogue dans la SDL, je ne peux pas le changer (testé avec SDL 1.2.1).
  • NE PAS UTILISER SDL avec la GUI! Cela ne fonctionnera pas comme il devrait.

2.3.2.4. SVGAlib

INSTALLATION.  Vous devrez installer svgalib et ses paquets de développement afin que MPlayer construise son pilote SVGAlib (autodetecté, mais peut être forcé), et n'oubliez pas d'éditer /etc/vga/libvga.config pour l'ajuster à votre carte et votre moniteur.

Note

Assurez-vous de ne pas utiliser l'option -fs, car elle active l'utilisation du redimensionneur logiciel, et c'est lent. Si vous en avez réellement besoin, utilisez l'option -sws 4 qui donnera une qualité mauvaise, mais qui est un peu plus rapide.

SUPPORT EGA (4BPP).  SVGAlib incorpore EGAlib, et MPlayer a la possibilité d'afficher n'importe quel film en 16 couleurs, donc utilisable avec les configurations suivantes:

  • carte EGA avec moniteur EGA: 320x200x4bpp, 640x200x4bpp, 640x350x4bpp
  • carte EGA avec moniteur CGA: 320x200x4bpp, 640x200x4bpp

La valeur des bpp (bits par pixel) doit être fixé à 4 manuellement: -bpp 4

Le film doit probablement être redimensionné pour tenir dans le mode EGA:

-vf scale=640:350

ou

-vf scale=320:200

Pour cela nous avons besoin de la routine de redimensionnement rapide mais de mauvaise qualité:

-sws 4

Peut-être que la correction d'aspect automatique doit être coupée:

-noaspect

Note

D'après mon expérience, la meilleur qualité d'image sur les écrans EGA peut être obtenue en diminuant légèrement la luminosité: -vf eq=-20:0. J'ai également besoin de diminuer la fréquence d'échantillonnage sur ma machine, car le son est endommagé en 44kHz: -srate 22050.

Vous pouvez activer l'OSD et les sous-titres uniquement avec le filtre expand, voir la page de man pour les paramètres exacts.

2.3.2.5. Sortie Framebuffer (FBdev)

La compilation de le sortie FBdev est autodétectée durant ./configure. Lisez la documentation sur le framebuffer dans le sources du noyau (Documentation/fb/*) pour avoir plus d'infos.

Si votre carte ne supporte pas le standard VBE 2.0 (anciennes cartes ISA/PCI, comme les S3 Trio64), et uniquement VBE 1.2 (ou plus ancien ?): Dans ce cas, VESAfb reste disponible, mais vous devrez charger SciTech Display Doctor (anciennement nommé UniVBE) avant de booter Linux. Utilisez une disquette de boot DOS ou similaire. Et n'oubliez pas d'enregistrer votre copie d'UniVBE ;))

La sortie FBdev accepte certains paramètres additionnels:

-fb
spécifie le device framebuffer a utiliser (/dev/fb0)
-fbmode
mode a utiliser (d'après le fichier /etc/fb.modes)
-fbmodeconfig
fichier de configuration des modes (/etc/fb.modes par défaut)
-monitor-hfreq, -monitor-vfreq, -monitor-dotclock
valeurs importantes, voir example.conf

Si vous désirez passer dans un mode particulier, alors utilisez

mplayer -vm -fbmode nom_du_mode nomfichier

  • -vm seul choisira le mode le mieux adapté dans votre fichier /etc/fb.modes. Peut s'utiliser avec les options -x et -y. L'option -flip est supportée uniquement si le format de pixels de la vidéo correspond au format de pixel du mode framebuffer. Faites attention à la valeur bpp, le driver fbdev essaie par défaut d'utiliser la valeur courante, ou bien celle spécifiée par l'option -bpp.

  • l'option -zoom n'est pas supportée (Utilisez l'option -fs). Vous ne pouvez pas utiliser de modes 8bpp (ou moins).

  • vous pouvez vouloir désactiver le curseur:

    echo -e '\033[?25l'

    ou

    setterm -cursor off

    et l'économiseur d'écran:

    setterm -blank 0

    Pour afficher de nouveau le curseur:

    echo -e '\033[?25h'

    ou

    setterm -cursor on

Note

Le changement de mode vidéo avec FBdev ne fonctionne pas avec le framebuffer VESA, et ne nous le demandez pas, il ne s'agit pas d'une limitation de MPlayer.

2.3.2.6. Framebuffer Matrox (mga_vid)

Cette section concerne le support BES (Back-End Scaler) sur les cartes Matrox G200/G400/G450/G550, le driver noyau de mga_vid. Il est activement développé par A'rpi, et supporte le VSYNC matériel avec triple buffering. Cela fonctionne aussi bien en console framebuffer que sous X.

Avertissement

Ceci est pour Linux uniquement ! Sur les systèmes non-Linux (testé sur FreeBSD), vous pouvez utiliser VIDIX à la place !

Installation:

  1. Pour l'utiliser, vous devez au préalable compiler mga_vid.o:

    cd drivers
    make

  2. Puis créez le périphérique /dev/mga_vid:

    mknod /dev/mga_vid c 178 0

    et chargez le pilote avec

    insmod mga_vid.o

  3. Vous pouvez vérifier si la détection de la taille mémoire est correcte en utilisant la commande dmesg. Si elle s'avère incorrecte, utilisez l'option mga_ram_size (rmmod mga_vid avant), en spécifiant la mémoire de la carte en Mo:

    insmod mga_vid.o mga_ram_size=16

  4. Pour le charger/décharger automatiquement, insérez cette ligne a la fin du fichier /etc/modules.conf:

    alias char-major-178 mga_vid

    Puis copiez le module mga_vid.o à une place appropriée dans /lib/modules/version noyau/quelquepart.

    Puis exécutez

    depmod -a

  5. Vous devez maintenant (re)compiler MPlayer, ./configure détectera /dev/mga_vid et construira le driver 'mga'. Pour l'utiliser dans MPlayer, lancez-le avec l'option -vo mga si vous êtes en console matroxfb, ou -vo xmga sous XFree86 3.x.x ou 4.x.x.

Le pilote mga_vid coopère avec Xv.

Le périphérique /dev/mga_vid peut être lu (par exemple par

cat /dev/mga_vid

) pour avoir des infos, et écrit pour changer la luminosité:

echo "brightness=120" > /dev/mga_vid

2.3.2.7. Support YUV 3Dfx

Ce pilote utilise le pilote framebuffer tdfx du noyau pour lire des films avec accélération YUV. Vous aurez besoin d'un noyau avec support tdfxfb, et de recompiler avec

./configure --enable-tdfxfb

2.3.2.8. Sortie OpenGL

MPlayer supporte l'affichage de films en utilisant OpenGL, mais si votre plateforme/pilote supporte xv comme ça devrait être le cas sur un PC avec Linux, utilisez xv à la place, les performances d'OpenGL sont bien pires. Si vous avez une implémentation X11 sans support xv, OpenGL est alors une alternative viable.

Malheureusement tous les pilotes ne supportent pas cette fonction. Le pilote Utah-GLX (pour XFree86 3.3.6) le supporte pour toutes les cartes. Voir http://utah-glx.sf.net pour son téléchargement et les infos d'installation.

XFree86(DRI) 4.0.3 et supérieur supporte OpenGL avec les cartes Matrox et Radeon, 4.2.0 ou supérieur supporte la Rage128. Voir http://dri.sf.net pour son téléchargement et les infos d'installation.

Une astuce d'un de nos utilisateurs: la sortie vidéo GL peut être utilisée pour obtenir une sortie TV synchronisée verticalement. Vous devrez définir une variable d'environnement (au moins sur nVidia):

export $__GL_SYNC_TO_VBLANK=1

2.3.2.9. AAlib - affichage en mode texte

AAlib est une librairie affichant des graphismes en mode texte, en utilisant un puissant moteur de rendu ASCII. De nombreux programmes le supportent déjà, comme Doom, Quake, etc. MPlayer possède pour cela un driver parfaitement utilisable. Si ./configure détecte une installation de aalib, le pilote aalib libvo sera compilé.

Vous pouvez utiliser certains raccourcis clavier dans le fenêtre AA pour changer les options de rendu:

ToucheAction
1 diminue le contraste
2 augmente le contraste
3 diminue la luminosité
4 augmente la luminosité
5 active/désactive le rendu rapide
6 change le mode de dithering (none, error distribution, Floyd Steinberg)
7 inverse l'image
8 passe des contrôles de aa vers ceux de MPlayer et vice-versa

Vous pouvez utiliser les lignes de commande suivantes:

-aaosdcolor=V

change la couleur de l'OSD

-aasubcolor=V

change la couleur des sous-titres

where V peut être: 0 (normal), 1 (noir), 2 (gras), 3 (fontes grasses), 4 (inversé), 5 (spécial).

AAlib elle-même propose de nombreuses options. En voici les principales:

-aadriver
choisit le pilote aa (X11, curses, Linux)
-aaextended
utilise les 256 caractères
-aaeight
utilise l'ASCII 8 bits
-aahelp
affiche toutes les options de AAlib

Note

Le rendu prend beaucoup de temps CPU, spécialement en utilisant AA-on-X (AAlib sur X), et prend moins de CPU sur une console standard, sans framebuffer. Utilisez SVGATextMode pour passer en mode texte large, et appréciez ! (une carte hercules en second écran, c'est génial :)) (mais à mon humble avis vous pouvez utiliser l'option -vf 1bpp pour avoir des graphismes sur hgafb:)

Utilisez l'option -framedrop si votre machine n'est pas suffisamment rapide pour afficher toutes les trames !

Sur un terminal vous obtiendrez de meilleures performances en utilisant le pilote linux, et pas curses (-aadriver linux). Cependant vous devez avoir un accès en écriture sur /dev/vcsa<terminal>. Ce n'est pas autodétecté par aalib, mais vo_aa essaie de déterminer le meilleur mode. Voir http://aa-project.sf.net/tune pour une meilleure optimisation.

2.3.2.10. libcaca - Librairie ASCII Art en couleur

La libcaca est une librairie graphique qui affiche du text à la place des pixels, et qui peut donc fonctionner sur des cartes graphiques anciennes ou sur des terminaux texte. Elle n'est pas très différente de la célèbre librairie AAlib. libcaca nécessite un terminal pour fonctionner, et devrait ainsi fonctionner sur tous les systèmes Unix (dont Mac OS X) en utilisant soit la librairie slang soit la librairie ncurses, sous DOS en utilisant la librairie conio.h, et sous les systèmes Windows en utilisant soit slang, soit ncurses (via émulation Cygwin), ou soit conio.h. Si ./configure détecte libcaca, le pilote libvo caca sera compilé.

Les différences avec AAlib sont les suivantes:

  • 16 couleurs disponible pour l'affichage des caractères (256 paires de couleur)
  • tramage des images en couleur

Mais libcaca à également les limitations suivantes:

  • aucun support pour la luminosité, le contraste, le gamma

Vous pouvez utiliser certaines touches dans la fenêtre caca pour changer les options de rendu:

KeyAction
d Change de méthode de tramage.
a Change de méthode d'anticrénelage.
b Change le fond.

libcaca regarde également la présence de certaines variables d'environnement:

CACA_DRIVER
Définie le pilote caca recommandé, c-a-d. ncurses, slang, x11.
CACA_GEOMETRY (X11 uniquement)
Spécifie le nombre de lignes de collones. par ex. 128x50.
CACA_FONT (X11 uniquement)
Spécifie la police à utiliser. par ex. fixed, nexus.

Use the -framedrop option if your computer is not fast enough to render all frames.

2.3.2.11. VESA - sortie sur BIOS VESA

Ce pilote à été conçu et présenté comme un pilote générique pour n'importe quelle carte ayant un BIOS compatible VESA VBE 2.0. Un autre avantage de ce pilote est qu'il force l'ouverture de la sortie TV. dixit VESA BIOS EXTENSION (VBE) Version 3.0 Date: September 16, 1998 (Page 70):

Conceptions des contrôleurs doubles.  VBE 3.0 supporte la conception de contrôleur double en assumant que comme les deux contrôleurs sont typiquement fournis par le même OEM, sous le contrôle d'un seul ROM BIOS sur la même carte graphique, il est possible de cacher le fait que deux contrôleurs sont présent dans l'application. Cela a la limitation d'interdire l'utilisation simultanée de chacun des contrôleurs, mais permet aux applications avant VBE 3.0 de fonctionner normalement. La fonction VBE 00h (Return Controller Information) retourne l'information combinée des deux contrôleurs, incluant la liste combinée des modes disponibles. Quand une application sélectionne un mode, le contrôleur approprié est activé. Chacune des fonctions VBE restantes s'appliquent ensuite sur le contrôleur actif.

Donc vous avez des chances de faire fonctionner la sortie TV avec ce pilote (Je suppose que la sortie TV est souvent un affichage indépendant ou au moins une sortie indépendante).

AVANTAGES

  • Vous avez la possibilité de voir des films même si Linux ne connaît pas votre matériel vidéo.
  • Vous n'avez pas besoin d'avoir de logiciels graphiques installés sur votre Linux (comme X11 (alias XFree86), fbdev et autres). Ce pilote peut fonctionner en mode texte.
  • Vous avez des chances de faire fonctionner la sortie TV (C'est le cas au moins pour les cartes ATI).
  • Ce pilote appelle le gestionnaire int 10h ainsi ce n'est pas un émulateur - il appelle des choses réelles dans le BIOS réel en mode réel (pour l'instant en mode vm86).
  • Vous pouvez l'utiliser avec VIDIX, accélérant ainsi l'affichage vidéo et la sortie TV en même temps (recommandé pour les cartes ATI) !
  • si vous avez un BIOS VESA VBE 3.0+, et que vous avez spécifié monitor-hfreq, monitor-vfreq, monitor-dotclock quelque part (fichier de config, ou ligne de commande) vous aurez le plus haut taux de rafraîchissement possible (en utilisant la Formule Générale de Timing). Pour activer cette fonctionnalité vous devrez spécifier toutes les options de votre moniteur.

DÉSAVANTAGES

  • Il ne fonctionne que sur les systèmes x86.
  • Il ne peut être utilisé qu'en root.
  • Pour l'instant il n'est disponible que pour Linux.

Important

N'utilisez pas ce pilote avec GCC 2.96 ! Cela ne fonctionnera pas !

OPTIONS EN LIGNE DE COMMANDE POUR VESA

-vo vesa:opts
actuellement reconnu: dga pour forcer le mode dga et nodgapour le désactiver. En mode dga vous pouvez activer le double buffering via l'option -double. Note: vous pouvez omettre ces paramètres pour activer l'autodétection du mode dga.

PROBLÈMES CONNUS ET CONTOURNEMENTS

  • Si vous avez installé des polices NLS sur votre Linux box et que vous lancez le pilote VESA depuis le mode texte alors après la fermeture de MPlayer vous aurez la police de la ROM chargée à la place de la nationale. Vous pouvez recharger la police nationale en utilisant l'utilitaire setsysfont de la distribution Mandrake/Mandriva par exemple. (Astuce: Le même utilitaire peut être utilisé pour la localisation de fbdev).
  • Certains pilotes graphiques Linux de mettent pas à jour le mode BIOS actif en mémoire DOS. Donc si vous avez un tel problème - utilisez toujours le pilote VESA uniquement depuis le mode texte. Sinon le mode texte (#03) sera activé de toute façon et vous devrez redémarrer votre ordinateur.
  • Souvent après la fin du pilote VESA vous avez un écran noir. Pour retourner à l'état original de votre écran - passez simplement sur une autre console (en tapant Alt+F<x>) et revenez à la première de la même façon.
  • Pour faire fonctionner la sortie TV vous devez avoir branché le connecteur TV avant le démarrage de votre PC car le BIOS vidéo s'initialise uniquement à ce moment-là.

2.3.2.12. X11

À éviter si possible. Sort sur X11 (utilise l'extension de mémoire partagée), sans aucune accélération matérielle du tout. Supporte le redimensionnement logiciel (accéléré par MMX/3DNow/SSE, mais toujours lent), utilisez les options -fs -zoom. La plupart des cartes possèdent un redimensionnement matériel, pour elles utilisez la sortie -vo xv ou -vo xmga pour les Matrox.

Le problème est que la plupart des pilotes de carte ne supportent pas l'accélération sur la seconde tête/TV. Dans ce cas, vous voyez une fenêtre verte/bleue à la place du film. C'est ici que ce pilote entre en jeu, mais vous aurez besoin d'un CPU puissant pour utiliser le redimensionnement logiciel. N'utilisez pas le pilote SDL de sortie+dimensionnement logiciel, la qualité d'image est pire !

Le redimensionnement logiciel est très lent, vous devriez essayer de changer de mode vidéo à la place. C'est très simple. Voyez la section des modelines DGA, et insérez-les dans votre XF86Config.

  • Si vous avez XFree86 4.x.x: utilisez l'option -vm. Elle changera de résolution pour s'adapter à celle de votre film. Si non:
  • Avec XFree86 3.x.x: Vous devrez parcourir les résolutions possibles avec les touches Ctrl+Alt+plus et Ctrl+Alt+moins.

Si vous n'arrivez pas à trouver les mode que vous avez inséré, regardez dans la sortie de XFree86. Certains pilotes ne peuvent utiliser les pixelclocks bas qui sont requis pour les basses résolutions.

2.3.2.13. VIDIX

PRÉAMBULE.  VIDIX est l'abréviation de VIDeo Interface for *niX. VIDIX à été conçu et présenté comme une interface pour les pilotes espace-utilisateur rapides fournissant des performances égales à celles de mga_vid pour les cartes Matrox. Il est aussi très portable.

Cette interface à été conçue comme une tentative de regrouper les interfaces d'accélération existantes (connues sous les noms mga_vid, rage128_vid, radeon_vid, pm3_vid) dans un schéma uniforme. Il fournit une interface de haut niveau aux chipsets connus sous les noms de BES (BackEnd scalers) ou OV (Video Overlays). Il ne fournit pas une interface de bas niveau pour les choses connues sous le nom de serveurs graphiques. (Je ne veux pas concourir avec l'équipe X11 en changement de mode graphique). C'est à dire que le but principal de cette interface est de maximiser la vitesse de la lecture vidéo.

UTILISATION

  • Vous pouvez utiliser le pilote de sortie vidéo autonome: -vo xvidix. Ce pilote à été développé comme un front end X11 pour la technologie VIDIX. Il requiert un serveur X et ne peut fonctionner que sous X. Notez que, comme il accède directement au matériel et contourne le pilote X, les pixmaps mis en cache dans la mémoire de la carte graphique peuvent être corrompus. Vous pouvez éviter cela en limitant la quantité de mémoire utilisée par X avec l'option "VideoRam" dans la section "device" de XFree86Config. Vous devriez fixer cette valeur avec la quantité de mémoire installée sur votre carte moins 4Mo. Si vous avez moins de 8Mo de mémoire vidéo, vous pouvez utiliser l'option "XaaNoPixmapCache" dans la section "screen" à la place.
  • Il existe un pilote console VIDIX: -vo cvidix. Celui-ci requiert un framebuffer fonctionnel et initialisé pour la plupart des cartes (ou sinon vous brouillerez simplement l'écran), et vous aurez un effet similaire à -vo mga ou -vo fbdev. Les cartes nVidia par contre sont capables d'afficher de la vidéo graphique dans une console texte. Voir la section nvidia_vid pour plus d'informations.
  • Vous pouvez utiliser le sous-périphérique VIDIX qui à été appliqué à de nombreux pilotes de sortie vidéo, tels que: -vo vesa:vidix (Linux uniquement) et -vo fbdev:vidix.

De plus le pilote de sortie vidéo utilisé avec VIDIX n'a pas d'importance.

BESOINS

  • La carte graphique devrait être en mode graphique (excepté les cartes nVidia avec le pilote -vo cvidix).
  • Le pilote de sortie vidéo de MPlayer devrait connaître les modes vidéos actifs et être capable de donner au sous-périphérique VIDIX quelques caractéristiques du serveur.

MÉTHODES D'UTILISATION.  Quand VIDIX est utilisé en temps que sous-périphérique (-vo vesa:vidix), alors la configuration du mode vidéo est faite par le périphérique de sortie vidéo (vo_server en bref). Par conséquent vous pouvez passer en ligne de commande les mêmes touches que pour vo_server. De plus il comprends l'option -double comme un paramètre global (je recommande l'utilisation de cette option au moins pour les cartes ATI). Comme pour -vo xvidix, il reconnaît actuellement les options suivantes: -fs -zoom -x -y -double.

Vous pouvez aussi spécifier le pilote VIDIX directement en troisième sous-argument en ligne de commande:

mplayer -vo xvidix:mga_vid.so -fs -zoom -double fichier.avi

ou

mplayer -vo vesa:vidix:radeon_vid.so -fs -zoom -double -bpp 32 fichier.avi

Mais c'est dangereux, et vous ne devriez pas faire ça. Dans ce cas le pilote indiqué sera forcé et le résultat sera imprévisible (cela peut bloquer votre ordinateur). Vous ne devriez le faire UNIQUEMENT si vous êtes absolument sûr que cela va fonctionner, et MPlayer ne le fait pas automatiquement. Dites-le aux développeurs, SVP. La bonne façon est d'utiliser VIDIX sans argument pour activer l'autodétection du pilote.

VIDIX est une nouvelle technologie et il est fortement possible que sur votre système elle ne fonctionne pas. Dans ce cas votre seule solution est de le porter (principalement libdha). Mais il y a de bons espoirs qu'il fonctionne sur les systèmes où X11 fonctionne.

Comme VIDIX requiert l'accès direct au matériel, vous avez le choix entre le lançer en tant que root ou définir le bit SUID du binaire MPlayer (Attention: c'est une faille de sécurité !). Sinon, vous pouvez utiliser un module noyau spécial, comme ceci:

  1. Téléchargez la version de développement de svgalib (par exemple 1.9.17), OU téléchargez une version faite par Alex spécialement pour utilisation avec MPlayer (elle ne nécessite pas les sources de svgalib pour compiler) ici.

  2. Compilez le module dans le répertoire svgalib_helper (il peut être trouvé à l'intérieur du répertoire svgalib-1.9.17/kernel/ si vous avez téléchargé les sources depuis le site de svgalib) et faire un insmod.

  3. Pour créer les périphériques nécessaires dans le répertoire /dev, faites un

    make device

    dans le répertoire svgalib_helper, en root.

  4. Déplacez le répertoire svgalib_helper dans mplayer/main/libdha/svgalib_helper.

  5. Requis si vous avez téléchargé les sources depuis le site de svgalib: Retirez les commentaires avant la ligne CFLAGS contenant la chaine "svgalib_helper" du libdha/Makefile.

  6. Recompilez et installez libdha.

2.3.2.13.1. Cartes ATI

Actuellement la plupart des cartes ATI sont supportés nativement, de la Mach64 jusqu'aux nouvelles Radeons.

Il y a deux binaires compilés: radeon_vid pour les cartes Radeon et rage128_vid pour les Rage 128. Vous pouvez en forcer un ou laisser le système VIDIX le détecter parmis les pilotes disponibles.

2.3.2.13.2. Cartes Matrox

Les Matrox G200, G400, G450 et G550 doivent normalement fonctionner.

Le pilote supporte les égaliseurs vidéo et devrait être presque aussi rapide que le framebuffer Matrox

2.3.2.13.3. Cartes Trident

Il y a un pilote disponible pour les chipsets Trident Cyberblade/i1, qui peuvent être trouvés sur les cartes-mère VIA Epia.

Le pilote a été écrit et est maintenu par Alastair M. Robinson.

2.3.2.13.4. Cartes 3DLabs

Bien qu'il y ai un pilote pour les chips 3DLabs GLINT R3 et Permedia3, personne ne l'a testé, donc les rapports sont les bienvenus.

2.3.2.13.5. Cartes nVidia

Il y a un relativement nouveau pilote nVidia, il fonctionne avec les chipsets Riva 128, TNT et GeForce2, d'autres doivent normalement fonctionner.

LIMITATIONS

  • Il est recommandé d'utiliser les pilotes nVidia binaires pour X avant d'utiliser ce pilote VIDIX, car certains registres qui doivent être initialisés n'ont pas encore été découverts, donc cela échouera avec le pilote Open Source nv.o de XFree86.

  • Actuellement seuls les codecs capables d'afficher une palette UYVY peuvent fonctionner en conjonction avec ce pilote. Malheureusement, cela exclu tous les décodeurs de la famille libavcodec. Cela nous laisse les codecs utilisables suivants : cvid, divxds, xvid, divx4, wmv7, wmv8 et quelques autres. Veuillez noter que ce n'est qu'un inconfort provisoire. La syntaxe est la suivante:

        mplayer -vf format=uyvy -vc divxds fichierdivx3.avi
      

Une fonction unique du pilote nvidia_vid est la capacité d'afficher de la vidéo dans un console uniquemnent textuelle - avec aucun framebuffer ou X. Pour ce faire, nous aurons besoin d'utiliser la sortie cvidix, comme le montre l'exemple suivant:

    mplayer -vf format=uyvy -vc divxds -vo cvidix exemple.avi
  

Rapports attendus !

2.3.2.13.6. Cartes SiS

C'est du code très expérimental, comme nvidia_vid.

Testé sur SiS 650/651/740 (les chipsets les plus couramment utilisés dans les versions SiS des barebones "Shuttle XPC")

Rapports attendus !

2.3.2.14. DirectFB

"DirectFB est une librairie graphique conçue pour les systèmes embarqués. Il offre des performances d'accélération matérielle maximum pour un minimum d'utilisation des ressources et de charge." - citation de http://www.directfb.org

J'exclurai les fonctionnalités de DirectFB dans cette section.

Bien que MPlayer ne soit pas supporté en tant que "fournisseur vidéo" dans DirectFB, ce pilote de sortie activera la lecture vidéo au travers de DirectFB. Il sera - bien sûr - accéléré, sur ma Matrox G400 la vitesse de DirectFB était la même que celle de XVideo.

Essayez toujours d'utiliser la dernière version de DirectFB. Vous pouvez utiliser les options DirectFB en ligne de commande, en utilisant l'option -dfbopts. La sélection de couche peut être faite par la méthode sous-périphérique, par ex. : -vo directfb:2 (couche -1 par défaut: autodétection)

2.3.2.15. DirectFB/Matrox (dfbmga)

Veuillez lire la section DirectFB principale pour avoir les informations générales.

Ce pilote de sortie vidéo activera CRTC2 (sur la seconde tête) sur les cartes Matrox G400/G450/G550, affichant la vidéo indépendemment de la première tête.

Ville Syrjala a un fichier README et un HOWTO sur sa page web qui explique comment faire fonctionner la sortie TV DirectFB avec les cartes Matrox.

Note

La première version de DirectFB que nous avons pu faire fonctionner était la 0.9.17. (elle est boguée, nécessite le patch surfacemanager disponible sur l'URL ci-dessus). Le portage du code CRTC2 dans mga_vid est prévu depuis des années, les patches sont les bienvenus.

2.3.3. Décodeurs MPEG

2.3.3.1. sorties et entrées DVB

MPlayer supporte les cartes équipées du chipset DVB Siemens des vendeurs tels que Siemens, Technotrend, Galaxis ou Hauppauge. Les derniers pilotes DVB sont disponibles sur le site Linux TV. Si vous voulez faire du transcodage logiciel vous aurez besoin d'un CPU d'au moins 1Ghz.

Configure devrait détecter votre carte DVB. Si ce n'est pas le cas, forcez la détection avec

./configure --enable-dvb

Si vous avez des entêtes ost dans un chemin non-standard, corrigez ce chemin avec

./configure --with-extraincdir=répertoire source DVB/ost/include

Ensuite compilez et installez comme d'habitude.

UTILISATION.  Le décodage matériel (lecture de fichiers MPEG-1/2 standards) peut être fait avec cette commande:

mplayer -ao mpegpes -vo mpegpes fichier.mpg|vob

Le décodage logiciel ou le transcodage de différents formats en MPEG-1 peut être obtenu en utilisant une commande comme celle-ci:

mplayer -ao mpegpes -vo mpegpes votrefichier.ext
mplayer -ao mpegpes -vo mpegpes -vf expand votrefichier.ext

Notez que les cartes DVB ne supportent que les tailles 288 par 576 pour le PAL ou 240 par 480 pour le NTSC. Vous devez redimensionner vers d'autres tailles en ajoutant scale=largeur:hauteur avec la largeur et la hauteur que vous voulez à l'option -vf. Les cartes DVB acceptent des largeurs variées, comme 720, 704, 640, 512, 480, 352 etc et font un redimensionnement matériel dans le sens horizontal, vous n'avez donc pas besoin de redimensionner horizontalement dans la plupart des cas. Pour un DivX en 512x384 (aspect 4:3) essayez:

mplayer -ao mpegpes -vo mpegpes -vf scale=512:576

Si vous avez un film plein-écran et que vous ne voulez pas l'afficher à sa taille complète, vous pouvez utiliser le filtre expand=l:h pour ajouter des bandes noires. Pour voir un MPEG-4 (DivX) en 640x384, essayez:

mplayer -ao mpegpes -vo mpegpes -vf expand=640:576 fichier.avi

Si votre CPU est trop lent pour un MPEG-4 (DivX) en taille complète 720x576, essayez de diminuer la taille:

mplayer -ao mpegpes -vo mpegpes -vf scale=352:576 fichier.avi

Si la vitesse ne s'améliore pas, essayez également la diminution verticale:

mplayer -ao mpegpes -vo mpegpes -vf scale=352:288 fichier.avi

Pour l'OSD et les sous-titres utilisez la fonction expand du plugin OSD. Donc, au lieu de expand=l:h ou expand=l:h:x:y, utilisez expand=l:h:x:y:1 (le 5ème paramètre :1 à la fin activera le rendu OSD). Vous pouvez aussi vouloir monter un peu l'image pour obtenir plus de surface noire pour les sous-titres. Vous pouvez aussi monter les sous-titres , si ils sont en dehors de l'écran, utilisez l'option -subpos <0-100> pour l'ajuster (-subpos 80 est un bon choix).

Pour pouvoir lire des films non-25fps sur une TV PAL ou avec un CPU lent, ajoutez l'option -framedrop.

Pour garder les dimensions des fichiers MPEG-4 (DivX) et obtenir les paramètres de zoom optimaux (zoom matériel horizontal et zoom logiciel vertical en gardant l'aspect original), utilisez le nouveau filtre dvbscale:

pour une TV 4:3:  -vf dvbscale,scale=-1:0,expand=-1:576:-1:-1:1
pour une TV 16:9: -vf dvbscale=1024,scale=-1:0,expand=-1:576:-1:-1:1

TV numérique (module d'entrée DVB). Vous pouvez utiliser votre carte DVB pour regarder la TV numérique.

Vous devriez également avoir les programmes scan et szap/tzap/czap/azap installés; ils sont inclus dans le paquet de pilotes.

Vérifiez que vos pilotes fonctionnent correctement avec un programme tel que dvbstream (c'est la base du module d'entrée DVB).

Maintenant vous devriez compiler un fichier ~/.mplayer/channels.conf, avec la syntaxe acceptée par szap/tzap/czap/azap, ou le faire compiler par scan.

Si vous avez plus d'un type de carte (c-a-d. Satellite, Terrestre, Cable et ATSC) vous pouvez sauvegarder vos fichiers de canaux en tant que ~/.mplayer/channels.conf.sat, ~/.mplayer/channels.conf.ter, ~/.mplayer/channels.conf.cbl, et ~/.mplayer/channels.conf.atsc, respectivement, pour qu'implicitement MPlayer les utilise à la place de ~/.mplayer/channels.conf, et vous n'avez qu'à spécifier la carte à utiliser.

Assurez-vous de n'avoir que des canaux réellement disponibles, ou MPlayer essaira de passer au prochain visible, mais cela peut être long si il y a plusieurs canaux cryptés consécutifs.

Dans vos champs audio et vidéo vous pouvez utiliser la syntaxe suivante: ...:pid[+pid]:... (avec un maximum de 6 pids pour chaque); dans ce cas MPlayer inclura dans le flux les pids indiqués, plus le pid 0 (qui contient le PAT). Vous êtes encouragé à inclure dans chaque ligne le pid PMT du canal correspondant (si vous le connaissez). Autres utilisations possibles: pid televideo, seconde piste audio, etc.

Pour afficher le premier des canaux présents dans votre liste, tapez

  mplayer dvb://

Si vous voulez regarder un canal spécifique, tel que R1, tapez

  mplayer dvb://R1

Si vous avez plus d'une carte vous pouvez aussi spécifier le numéro de la carte où le canal est visible (par ex. 2) avec la syntaxe:

  mplayer dvb://2@R1

Pour changer de canal tapez sur les touches h (suivant) et k (précédent), ou utilisez le menu OSD (requiert un sous-système OSD fonctionnel).

Si votre ~/.mplayer/menu.conf contient une entrée <dvbsel>, comme celle du fichier d'exemple etc/dvb-menu.conf (que vous pouvez utiliser pour outrepasser ~/.mplayer/menu.conf), le menu principal affichera un sous-menu qui vous permettra de choisir les canaux présents dans votre channels.conf, peut-être précédé d'un menu des cartes disponibles si il y en a plus d'une utilisable par MPlayer.

Si vous voulez sauvegarder un programme sur le disque vous pouvez utiliser

  mplayer -dumpfile r1.ts -dumpstream dvb://R1

Si vous voulez l'enregistrer dans un format différent (le ré-enregistrer) vous pouvez lancer une commande comme

  mencoder -o r1.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -lameopts cbr:br=128 -pp=ci dvb://R1

Lisez la page de man pour avoir une liste des options que vous pouvez passer au module d'entrée DVB.

FUTUR.  Si vous avez des questions ou voulez entendre les annonces de fonctionnalités et participer aux discussions sur ce sujet, rejoignez notre liste de diffusion MPlayer-DVB. SVP, rappelez-vous que la langue de la liste est l'anglais.

Dans le futur vous pouvez vous attendre à pouvoir afficher l'OSD et les sous-titres en utilisant la fonction OSD native des cartes DVB, ainsi qu'a une lecture plus régulière des films non-25fps et le transcodage temps-réel entre MPEG-2 et MPEG-4 (décompression partielle).

2.3.3.2. DXR2

MPlayer supporte l'affichage accéléré avec la carte Creative DXR2.

Tout d'abord vous devrez avoir les pilotes correctement installés. Vous pouvez trouver les pilotes et les instructions d'installation sur le site DXR2 Resource Center.

UTILISATION

-vo dxr2

active la sortie TV

-vo dxr2:x11 ou -vo dxr2:xv

active la sortie Overlay sous X11

-dxr2 <option1:option2:...>

Cette option est utilisée pour contrôler le pilote DXR2.

Le chipset overlay utilisé sur la DXR2 est d'assez mauvaise qualité mais les paramètres par défaut devraient suffire pour tout le monde. L'OSD peut être utilisable avec l'overlay (pas sur une télé) en la dessinant avec une couleur-clé. Avec les paramètres de couleur-clé par défaut vous obtiendrez des résultats variables, généralement vous vérez la couleur-clé autour des personnages et autres effets amusants. Mais si vous ajustez correctement les paramètres de couleur-clé vous devriez pouvoir obtenir des résultats acceptables.

Veuillez lire la page de man pour les options disponibles.

2.3.3.3. DXR3/Hollywood+

MPlayer supporte l'accélération matérielle avec les cartes Creative DXR3 et Sigma Designs Hollywood Plus. Ces cartes ont toutes deux le chip de décodage MPEG em8300 de Sigma Designs.

Tout d'abord vous aurez besoin de pilotes DXR3/H+ correctement installés, version 0.12.0 ou supérieure. Vous pouvez trouver les pilotes et les instructions d'installation sur le site DXR3 & Hollywood Plus for Linux. configure devrait détecter votre carte automatiquement, la compilation devrait se faire sans problèmes.

UTILISATION

-vo dxr3:prebuf:sync:norm=x:périph.

overlay active l'overlay à la place de TVOut. Cela requiert que vous ayez correctement configuré l'overlay. La manière la plus facile de configurer l'overlay est de d'abord lancer autocal. Ensuite lancez MPlayer avec la sortie dxr3 et sans overlay activé, lancez dxr3view. Dans dxr3view vous pouvez régler les paramètres overlay et en voir les effets en temps réel, peut-être cette fonction sera supporté par la GUI de MPlayer dans le futur. Quand l'overlay est correctement configuré, vous n'avez plus besoin d'utiliser dxr3view. prebuf active le prebuffering. C'est une fonction du chip em8300 qui l'active pour garder plus d'une trame de vidéo à la fois. Cela signifie que quand vous utilisez le prebuffering MPlayer essaiera de garder le buffer vidéo rempli de données à tout moment. Si vous êtes sur une machine lente MPlayer utilisera près de, voir exactement 100% du CPU. C'est particulièrement courant si vous lisez de purs flux MPEG (comme les DVDs, SVCDs et ainsi de suite) car comme MPlayer n'aura pas besoin de le ré-encoder en MPEG, il remplira le buffer très rapidement. Avec le prebuffering la lecture est beaucoup moins sensible aux autres programmes monopolisant le CPU, il ne sautera pas d'images à moins que des programmes monopolisent le CPU pour une longue durée. En l'utilisant sans doublebuffering, l'em8300 est bien plus sensible à la charge CPU, il est donc hautement recommandé d'activer l'option -framedrop pour éviter les éventuelles pertes de synchro. sync activera le nouveau moteur de synchro. C'est actuellement une fonction expérimentale. Avec la fonction sync activé l'horloge interne de l'em8300 sera contrôlée à tout moment, si elle commence à dévier de l'horloge de MPlayer elle sera réajustée, obligeant l'em8300 à sauter les éventuelles trames en retard. norm=x fixera la norme TV de la carte DXR3 sans avoir besoin d'utiliser des outils externes comme em8300setup. Les normes valides sont 5 = NTSC, 4 = PAL-60, 3 = PAL. Les normes spéciales sont 2 (ajustement auto utilisant PAL/PAL-60) et 1 (ajustement auto utilisant PAL/NTSC) parce qu'elles décident quelle norme utiliser en regardant le frame rate du film. norm = 0 (par défaut) ne change pas la norme courante. périph. = numéro de périphérique à utiliser si vous avez plus d'une carte em8300. Chacune de ces options peut être laissé de côté. :prebuf:sync semble fonctionner à merveille en lisant des DivX. Des gens ont signalé des problèmes en utilisant l'option prebuf pendant la lecture de fichiers MPEG1/2. Vous pourriez vouloir essayer sans aucune option en premier, si vous avez des problèmes de synchro, ou des problèmes de sous-titres avec les DVDs, essayez avec :sync.

-ao oss:/dev/em8300_ma-X

Pour la sortie audio, où X est le numéro de périphérique (0 si une carte).

-af resample=xxxxx

L'em8300 ne peut jouer de taux d'échantillonage inférieur à 44100 Hz. Si le taux d'échantillonage est en dessous de 44100Hz, sélectionnez soit 44100Hz, soit 48000Hz en fonction de ce qui est le plus proche. C-a-d si le film utilise 22050 utilisez 44100Hz car 44100 / 2 = 22050, si c'est 24000Hz utilisez 48000Hhz car 48000 / 2 = 24000 et ainsi de suite. Cela ne fonctionne pas avec la sortie audio numérique (-ac hwac3).

-vf lavc/fame

Pour voir du contenu non-MPEG sur l'em8300 (c-a-d. MPEG-4 (DivX) ou RealVideo), vous devrez spécifier un filtre vidéo MPEG-1 tel que libavcodec (lavc) ou libfame (fame). Pour le moment lavc est à la fois plus rapide et donne une meilleur qualité, il est recommandé de l'utiliser à moins que vous ayez des problèmes avec. Voir la page de man pour de plus amples infos à propos de -vf lavc/fame. Utiliser lavc est hautement recommandé. Actuellement il n'est pas possible de régler les fps de l'em8300 ce qui veut dire qu'il est fixé à 30000/1001 fps. À cause de cela il est hautement recommandé d'utiliser -vf lavc=qualité:25, surtout si vous utilisez le prebuffering. Alors pourquoi 25 et pas 30000/1001? Hé bien, le truc est que si vous utilisez 30000/1001, l'image devient un peu sautante. Nous n'en connaissons pas la raison. Si vous le réglez quelque part entre 25 et 27 l'image devient stable. Pour l'instant tous ce que nous pouvons faire est de l'accepter.

-vf expand=-1:-1:-1:-1:1

Bien que le pilote DXR3 puisse placer quelques OSD sur de la vidéo MPEG1/2/4, il est de bien plus basse qualité que l'OSD traditionnel de MPlayer, et de plus soufre de nombreux problèmes de rafraîchissement. La ligne de commande ci-dessus va d'abord convertir l'entrée vidéo en MPEG4 (c'est obligatoire, désolé), ensuite appliquer un filtre expand qui ne va rien étendre du tout (-1: défaut), mais afficher l'OSD dans l'image (c'est ce que fait le "1" à la fin).

-ac hwac3

L'em8300 supporte la lecture audio AC3 (son surround) au travers de la sortie audio numérique de la carte. Voir l'option -ao oss plus haut, elle doit être utilisé pour spécifier la sortie DXR3 au lieu d'une carte son.

2.3.4. Autres matériels de visualisation

2.3.4.1. Zr

C'est un pilote d'affichage (-vo zr) pour certaines cartes de capture/lecture (testé pour DC10+ et Buz, et cela devrait fonctionner pour la LML33 et la DC10). Ce pilote fonctionne en encodant la trame en JPEG et en l'envoyant à la carte. Pour l'encodage JPEG libavcodec est utilisé, et requis. Avec le mode spécial cinerama, vous pouvez voir les films en vrai écran large si vous avez deux moniteurs et deux cartes MJPEG. Selon la résolution et les réglages, ce pilote requiert beaucoup de puissance CPU, rappelez-vous de spécifier -framedrop si votre machine est trop lente. Note: Mon AMD K6-2 350Mhz est (avec -framedrop) très adapté pour voir des vidéos de taille VCD et les films dont la taille est réduite.

Ce pilote parle au module noyau disponible sur http://mjpeg.sf.net, donc vous devez d'abord faire fonctionner ce dernier. la présence d'une carte MJPEG est autodétectée par le script configure, si l'autodétection échoue, forcez la détection avec

./configure --enable-zr

La sortie peut être contrôlée par de nombreuses options, une longue description des options peut être trouvée sur la page de man, une courte liste des options peut être obtenue en exécutant

mplayer -zrhelp

Les choses comme le zoom ou l'OSD (on screen display) ne sont pas gérés par ce pilote mais peuvent être obtenus en utilisant les filtres vidéo. Par exemple, supposons que vos avez un film d'une résolution de 512x272 et que vous voulez le voir en plein-écran sur votre DC10+. Il y a trois possibilités principales, vous pouvez redimmensionner le film à une largeur de 768, 384 ou 192. Pour des raisons de performances et de qualité, vous pouvez choisir de redimmensionner le film en 384x204 en utilisant le zoom logiciel bilinéaire rapide. La ligne de commande est

mplayer -vo zr -sws 0 -vf scale=384:204 film.avi

Le découpage peut être fait avec le filtre crop et par ce pilote lui-même. Supposons qu'un film soit trop large pour s'afficher sur votre Buz et que vous vouliez utiliser -zrcrop pour rendre le film moins large, alors vous taperez la commande suivante

mplayer -vo zr -zrcrop 720x320+80+0 benhur.avi

Si vous voulez utiliser le filtre crop, vous feriez

mplayer -vo zr -vf crop=720:320:80:0 benhur.avi

Des occurrences supplémentaires de -zrcrop invoquent le mode cinerama, c-a-d. que vous pouvez distribuer l'affichage sur plusieurs TV ou moniteurs pour créer un écran plus large. Supposons que vous ayez deux moniteurs. Celui de gauche est connecté à votre Buz sur /dev/video1 et celui de droite est connecté à votre DC10+ sur /dev/video0. Le film a une résolution de 704x288. Supposons maintenant que vous voulez le moniteur de droite en noir et blanc et que le moniteur de gauche ait des trames jpeg de qualité 10, alors vous taperez la commande suivante

mplayer -vo zr -zrdev /dev/video0 -zrcrop 352x288+352+0 -zrxdoff 0 -zrbw \
        -zrcrop 352x288+0+0 -zrdev /dev/video1 -zrquality 10 film.avi

Vous voyez que les options apparaissant avant le second -zrcrop ne s'appliquent qu'a la DC10+ et que les options après le second -zrcrop s'appliquent à la Buz. Le nombre maximum de cartes MJPEG participant au cinerama est quatre, vous pouvez donc construire un mur vidéo de 2x2.

Pour finir une remarque importante: Ne lancez ou n'arrêtez pas XawTV sur le périphérique en cours de lecture, cela planterait votre ordinateur. Il est, cependant, sans risque de lancer D'ABORD XawTV, ENSUITE de lancer MPlayer, d'attendre que MPlayer se termine et ENSUITE de stopper XawTV.

2.3.4.2. Blinkenlights

Ce pilote est capable de lire en utilisant le protocole UPD Blinkenlights. Si vous ne savez pas ce qu'est Blinkenlights, vous n'avez pas besoin de ce pilote.

2.3.5. Sortie TV

2.3.5.1. Cartes Matrox G400

Sous Linux vous avez 2 méthodes pour faire fonctionner la sortie TV:

Important

pour les instructions sur la sortie TV des Matrox G450/G550, voir la prochaine section SVP !

XFree86

en utilisant le pilote et le module HAL, disponible sur le site de Matrox. Cela vous donnera X sur la TV.

Cette méthode ne vous donne pas la lecture accélérée comme sous Windows ! La seconde tête n'a qu'un framebuffer YUV, le BES (Back End Scaler, le redimensionneur YUV des cartes G200/G400/G450/G550) ne fonctionne pas dessus ! Le pilote Windows contourne cela, probablement en utilisant le moteur 3D pour zoomer, et le framebuffer YUV pour afficher l'image zoomée. Si vous voulez vraiment utiliser X, utilisez les options -vo x11 -fs -zoom, mais ce sera LENT, et aura la protection anticopie Macrovision activée (vous pouvez "contourner" Macrovision en utilisant ce script perl).

Framebuffer

En utilisant les modules matroxfb dans les noyaux 2.4. Les noyaux 2.2 n'ont pas de fonction TVout incluse, et sont donc inutilisables pour cela. Vous devez activer TOUTES les fonctions spécifiques à matroxfb durant la compilation (excepté MultiHead), et les compiler en modules ! Vous aurez également besoin que I2C soit activé.

  1. Entrez dans TVout et tapez ./compile.sh. Installez TVout/matroxset/matroxset quelque part dans votre PATH.

  2. Si fbset n'est pas installé, mettez TVout/fbset/fbset quelque part dans votre PATH.

  3. Si con2fb n'est pas installé, mettez TVout/con2fb/con2fb quelque part dans votre PATH.

  4. Ensuite entrez dans le répertoire TVout/ du source MPlayer et exécutez ./modules en root. Votre console en mode texte va entrer en mode framebuffer (sans retour possible !).

  5. Ensuite, ÉDITEZ et lancez le script ./matroxtv. Il va vous présenter un menu très simple. Pressez 2 et Entrée. Maintenant vous devriez avoir la même image sur votre moniteur, et sur la TV. Si l'image TV (PAL par défaut) a de vilaines bandes dessus, le script n'a pas été capable de fixer la résolution correctement (en 640x512 par défaut). Essayez d'autres résolutions depuis le menu et/ou expérimentez avec fbset.

  6. Yoh. La prochaine tâche est de faire disparaître le curseur sur tty1 (ou n'importe quelle autre), et de désactiver l'économiseur d'écran. Exécutez les commandes suivantes:

    echo -e '\033[?25l'
    setterm -blank 0

    ou

    setterm -cursor off
    setterm -blank 0

    Vous pouvez mettre ceci dans un script, et également effacer l'écran. Pour réactiver le curseur:

    echo -e '\033[?25h'

    ou

    setterm -cursor on

  7. Yeah kewl. Démarrez le film avec

    mplayer -vo mga -fs -screenw 640 -screenh 512 nomfichier

    (si vous utilisez X, maintenant changez pour matroxfb avec par exemple Ctrl+Alt+F1.) Changez 640 et 512 si vous voulez spécifier une résolution différente...

  8. Appréciez la sortie TV Matrox ultra-rapide ultra-fonctionnelle (meilleure que Xv) !

Construire un câble de sortie TV Matrox.  Personne ne prends de responsabilités, ni n'offre de garanties quant aux éventuels dommages causés par cette documentation.

Cable pour G400.  La quatrième broche du connecteur CRTC2 transmet le signal vidéo composite. La terre (ground) est sur les sixième, septième et huitième broches (info donnée par Balázs Rácz).

Cable pour G450.  La première broche du connecteur CRTC2 transmet le signal vidéo composite. La terre (ground) est sur les cinquième, sixième, septième, et quinzième (5, 6, 7, 15) broches (info donnée par Balázs Kerekes).

2.3.5.2. Cartes Matrox G450/G550

Le support de la sortie TV pour ces cartes n'a été introduit que récemment, et n'est pas encore dans le noyau officiel. Actuellement le module mga_vid ne peut être utilisé à ma connaissance, parce que le pilote G450/G550 ne fonctionne que dans une configuration: le premier chip CRTC (qui a le plus de fonctions) sur le premier affichage (sur le moniteur), et le second CRTC (pas de BES, veuillez voir la section G400 plus haut) sur la TV. Vous ne pouvez donc utiliser que le pilote de sortie fbdev de MPlayer pour le moment.

Le premier CRTC ne peut pas être relié à la seconde tête actuellement. L'auteur du pilote noyau matroxfb - Petr Vandrovec - fera certainement un support pour cela, en affichant la sortie du premier CRTC sur les deux têtes à la fois, comme actuellement recommandé pour la G400, voir la section ci-dessus.

Le patch noyau nécessaire et le HOWTO détaillé sont téléchargeables sur http://www.bglug.ca/matrox_tvout/

2.3.5.3. Cartes ATI

PRÉAMBULE.  Actuellement ATI ne veut supporter aucun de ces chips TV-out sous Linux, à cause de leur technologie Macrovision sous licence.

ÉTAT DE LA SORTIE TV ATI SUR LINUX

  • ATI Mach64: supporté par GATOS.
  • ASIC Radeon VIVO: supporté par GATOS.
  • Radeon et Rage128: supporté par MPlayer ! Vérifiez les sections pilote VESA et VIDIX.
  • Rage Mobility P/M, Radeon, Rage 128, Mobility M3/M4: supporté par atitvout.

Sur les autres cartes, utilisez juste le pilote VESA, sans VIDIX. Un CPU puissant est cependant requis.

La seule chose que vous ayez à faire - avoir le connecteur TV branché avant de booter votre PC car le BIOS vidéo s'initialise uniquement durant cette phase.

2.3.5.4. Voodoo 3

Reportez-vous à cette URL.

2.3.5.5. nVidia

D'abord, vous DEVEZ télécharger les pilotes closed-source depuis http://nvidia.com. Je ne décrirai pas le processus d'installation et de configuration car il sort du cadre de cette documentation.

Après que l'accélération XFree86, XVideo, et 3D fonctionnent correctement, éditez la section Device de votre carte dans le fichier XF86Config, selon l'exemple suivant (adaptez à votre carte/TV):

Section "Device"
        Identifier      "GeForce"
        VendorName      "ASUS"
        BoardName       "nVidia GeForce2/MX 400"
        Driver          "nvidia"
        #Option         "NvAGP" "1"
        Option          "NoLogo"
        Option          "CursorShadow"  "on"

        Option          "TwinView"
        Option          "TwinViewOrientation" "Clone"
        Option          "MetaModes" "1024x768,640x480"
        Option          "ConnectedMonitor" "CRT, TV"
        Option          "TVStandard" "PAL-B"
        Option          "TVOutFormat" "Composite"

EndSection

Bien sûr l'élément le plus important est la partie TwinView.

2.3.5.6. Neomagic

Le chip NeoMagic peut être trouvé sur de nombreux portables, certains équipés d'un encodeur TV analogique simple, certains en ont un plus avancé.

  • Analog encoder chip: Testé sur un Toshiba Tecra 8000. Son chip de sortie TV est de très mauvaise qualité. À éviter si possible.

    Vous devez utiliser -vo vesa. Le chipt testé n'était capable d'afficher que l'aspect ratio 1.333333, donc assurez-vous d'utiliser les options -x, -y et/ou les filtres -vf scale,crop,expand si la machine ne vous laisse pas activer la sortie TV. La résolution maximum était 720*576 à 16bpp.

    Problèmes connus: VESA-uniquement, limitation 1.33333, l'image n'est pas toujours centrée, le film passe en 4bpp toutes les 10 minutes, et reste comme ça. bloquages matériels fréquents, problèmes d'affichage LCD.

  • chip Chrontel 70xx encoder: Présent dans l'IBM Thinkpad 390E et probablement dans d'autres Thinkpads ou portables.

    Vous devez utiliser -vo vesa:neotv_pal pour PAL ou -vo vesa:neotv_ntsc pour NTSC. Cela fournira la sortie TV dans les modes 16 bpp et 8 bpp suivants:

    • NTSC 320x240, 640x480 et peut être aussi 800x600.
    • PAL 320x240, 400x300, 640x480, 800x600.

    le mode 512x384 n'est pas supporté par le BIOS. Vous devez redimmensionner l'image à une résolution différente pour activer la sortie TV. Si vous voyez une image sur l'écran en 640x480 ou en 800x600 mais pas en 320x240 ou autre résolution plus faible, vous devez remplacer deux tables dans vbelib.c. Voir la fonction vbeSetTV pour plus de détails. Veuillez contacter l'auteur dans ce cas.

    Problèmes connus: VESA uniquement, aucun autre contrôle tel que luminosité, contraste, blacklevel, flickfilter n'est implémenté.

2.4. Périphériques de sortie audio

2.4.1. Synchronisation audio/vidéo

Les pilotes Linux des cartes son ont des problèmes d'incompatibilité. C'est parce que MPlayer se base sur une fonction des pilotes écrits correctement pour maintenir une synchro audio/vidéo correcte. Malheureusement, certains auteurs de pilotes n'ont que faire de cette fonction: elle n'est pas requise pour jouer des MP3 ou des effets sonores.

D'autres lecteurs multimédia comme aviplay ou xine fonctionnent probablement autrement avec ces pilotes parce qu'ils utilisent des méthodes "simples" pour leur synchro interne. Des mesures ont montré que leurs méthodes n'étaient pas aussi efficaces que celles de MPlayer.

Utiliser MPlayer avec un pilote correctement écrit ne provoquera pas de désynchro A/V relatives à l'audio, à part avec les fichiers très mal créés (voir la page de man pour les solutions).

Si vous avez un mauvais pilote audio, essayez l'option -autosync, il devrait régler vos problèmes. Voir la page de man pour les informations détaillées.

2.4.2. Dépannage

Quelques notes:

Si vous avez ALSA version 0.5, vous devrez presque toujours utiliser l'option -ao alsa5, la version 0.5 émulant mal l'OSS, qui plante MPlayer avec un message du type:

DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!

Si le son comporte des cliquètements lors d'une lecture depuis le CD-ROM, activez l'IRQ unmasking comme décrit plus en détail dans la section CD-ROM.

2.5. Entrée TV

Cette section concerne l'activation de la lecture/enregistrement à partir d'un tuner TV compatible V4L.. Voir la page de man pour une description des options TV et des contrôles clavier.

2.5.1. Compilation

  1. D'abord, vous devez recompiler. ./configure autodétectera les entêtes v4l du noyau et l'existence des entrées /dev/video*. Si elles existent, le support TV sera activé (voir le résultat de ./configure).

  2. Assurez-vous que votre tuner fonctionne avec d'autres logiciels TV pour Linux. par exemple XawTV.

2.5.2. Astuces d'utilisation

La liste complète des options est disponible sur la page de man. Voci juste quelques astuces:

  • Utilisez l'option channels. Un exemple:

    -tv channels=26-MTV1,23-TV2

    Explication: en utilisant cette option, seuls les canaux 26 et 23 seront utilisables, et il y a un joli texte OSD lors des changements de canal affichant le nom du nouveau. Les espaces dans le nom du canal doivent être remplacés par le caractère "_";.

  • Choisissez des dimensions d'images sensées. Les dimensions de l'image de destination devraient être divisible par 16.

  • Si vous capturez la vidéo avec une résolution verticale supérieure à la moitié de la pleine résolution (c-a-d. 288 pour PAL ou 240 pour NTSC, assurez-vous d'avoir désactivé l'entrelacement. Sinon votre film sera distordu pendant les scènes fast-motion et le contrôleur de bitrate ne sera probablement même pas capable de garder le bitrate demandé car l'artefact de désentrelacement produit un grand taux de détails et donc consomme plus de bande passante. Vous pouvez désactiver l'entrelacement avec -vf pp=DEINT_TYPE. Généralement pp=lb peut faire du bon travail, mais c'est une histoire de préférence personnelle. Voyez les autres algorithmes de désentrelacement dans le manuel et essayez-les.

  • Coupez les espaces morts. Quand vous capturez la vidéo, les bords sont généralement noirs ou contiennent du "bruit". De nouveau cela consomme de la bande passante inutilement. Plus précisément ce ne sont pas les zones noires elles-mêmes mais les transitions nettes entre le noir et la vidéo plus claire qui jouent, mais ce n'est pas très important pour le moment. Avant que vous commenciez la capture, ajustez les arguments de l'option crop pour que toutes les saletés des bords soient coupées. De nouveau, n'oubliez pas de garder des dimensions sensées.

  • Regardez la charge CPU. Elle ne devrait pas dépasser la limite des 90% la plupart du temps. Si vous avez un gros tampon, MEncoder peut survivre à une surcharge pendant quelques secondes mais pas plus. Il vaut mieux désactiver l'économiseur d'écran OpenGL et les trucs similaires.

  • Ne jouez pas avec l'horloge système. MEncoder l'utilise pour la synchro A/V. Si vous réglez l'horloge système (surtout en arrière dans le temps), MEncoder va se sentir perdu et va perdre des trames. C'est un problème important lorsque vous êtes en réseau et que vous utilisez certains logiciels de synchronisation comme NTP. Vous devrez désactiver NTP pendant le processus de capture si vous voulez capturer correctement.

  • Ne changez pas le outfmt à moins que vous sachiez ce que vous faites ou votre si votre carte/pilote ne supporte pas la valeur par défaut (palette YV12). Dans les versions précédentes de MPlayer/ MEncoder il était nécessaire de spécifier le format de sortie. Ce problème devrait être résolu dans la version actuelle et outfmt n'est plus requis, et la valeur par défaut convient dans la plupart des cas. Par exemple, si vous capturez en DivX en utilisant libavcodec et que vous spécifiez outfmt=RGB24 de façon à augmenter la qualité de l'image capturée, l'image capturée sera reconvertie plus tard en YV12; donc la seule chose que vous obtiendrez est un gaspillage massif de puissance CPU.

  • Pour spécifier la palette I420 (outfmt=i420), vous devez ajouter une option -vc rawi420 à cause d'un conflit de fourcc avec un codec vidéo Intel Indeo.

  • Il y a plusieurs façons de capturer l'audio. Vous pouvez attraper le son soit avec votre carte son via un cable externe entre la carte vidéo et l'entrée ligne, soit en utilisant le DAC intégré au chip bt878. Dans ce dernier cas, vous devrez charger le pilote btaudio. Lisez le fichier linux/Documentation/sound/btaudio (dans l'arborescence du noyau, pas celle de MPlayer) pour les instructions d'utilisations de ce pilote.

  • Si MEncoder ne peut pas ouvrir le périphérique audio, assurez-vous qu'il soit réellement disponible. Il peut y avoir des ennuis avec certains serveurs de son comme aRts (KDE) ou ESD (GNOME). Si vous avez une carte son full duplex (presque toutes les cartes décentes le supportent aujourd'hui), et que vous utilisez KDE, essayez d'activer l'option "full duplex" dans le menu des préférences du serveur de son.

2.5.3. Exemples

Sortie muette, vers AAlib :)

mplayer -tv driver=dummy:width=640:height=480 -vo aa tv://

Entrée depuis V4L standard:

mplayer -tv driver=v4l:width=640:height=480:outfmt=i420 -vc rawi420 -vo xv tv://

Un exemple plus élaboré. Ici MEncoder capture l'image PAL entière, coupe les marges, et désentrelace l'image en utilisant un algorithme de mélange linéaire. L'audio est compressée à un débit constant de 64kbps, en utilisant le codec LAME. Cette combinaison est adaptée pour capturer des films.

     mencoder -tv driver=v4l:width=768:height=576 \
     -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=900 \
     -oac mp3lame -lameopts cbr:br=64 \
     -vf crop=720:544:24:16,pp=lb -o sortie.avi tv://

Cela dimensionne également l'image en 384x288 et compresse la vidéo avec un débit de 350kbps en mode haute qualité. L'option vqmax perd le quantizer et permet au compresseur vidéo d'atteindre un débit plus bas au détriment de la qualité. Cela peut être utilisé pour capturer des longues séries TV, quand la qualité n'est pas très importante.

     mencoder -tv driver=v4l:width=768:height=576 \
     -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350:vhq:vqmax=31:keyint=300 \
     -oac mp3lame -lameopts cbr:br=48 \
      -vf crop=720:540:24:18,pp=lb,scale=384:288 -sws 1 -o output.avi tv://

Il est également possible de spécifier des dimensions d'images plus petites dans l'option -tv et d'omettre le zoom logiciel mais cette approche utilise le maximum d'informations disponibles et, est un peu plus résistant au bruit. Les chipsets bt8x8 peuvent faire une moyenne de pixels uniquement dans la direction horizontale à cause d'une limitation matérielle.

Chapitre 3. Utilisation

3.1. Ligne de commande

MPlayer utilise un ordre de lecture complexe. Il consiste en les options globales écrites en premier, par exemple

mplayer -vfm 5

et les options écrites après les noms de fichier, qui s'appliquent uniquement au nom de fichier/URL/autre donné, par exemple

mplayer -vfm 5 film1.avi film2.avi -vfm 4

Vous pouvez regrouper les noms de fichiers/URLs en utilisant { et }. C'est utile avec l'option -loop:

mplayer { 1.avi - loop 2 2.avi } -loop 3

La commande ci-dessus jouera les fichiers dans cet ordre: 1, 1, 2, 1, 1, 2, 1, 1, 2.

Lecture d'un fichier:

mplayer [options] [chemin/]fichier

Autre façon de lire un fichier:

mplayer [options] file:///chemin-uri-escaped

Lecture de plusieurs fichiers:

mplayer [options par défaut] [chemin/]fichier1 [options pour fichier1] fichier2 [options pour fichier2] ...

Lecture de VCD:

mplayer [options] vcd://N°piste [-cdrom-device /dev/cdrom]

Lecture de DVD:

mplayer [options] dvd://N°titre [-dvd-device /dev/dvd]

Lecture à partir du web:

mplayer [options] http://site.com/fichier.asf

(les listes de lecture peuvent également être utilisées)

Lecture à partir de RTSP:

mplayer [options] rtsp://serveur.exemple.com/nomFlux

Exemples:

mplayer -vo x11 /mnt/Films/Contact/contact2.mpg
mplayer vcd://2 -cd-rom-device /dev/hdc
mplayer -afm 3 /mnt/DVDtrailers/alien4.vob
mplayer dvd://1 -dvd-device /dev/hdc
mplayer -abs 65536 -delay -0.4 -nobps ~/films/test.avi

3.2. Contrôles

MPlayer dispose d'une couche de contrôle pleinement configurable, qui vous permet de contrôler MPlayer avec le clavier, la souris, le joystick ou une télécommande (en utilisant LIRC). Voir la page de man pour une liste complète des contrôles clavier.

3.2.1. Configuration des contrôles

MPlayer vous permet d'associer n'importe quel touche/bouton à n'importe quelle commande MPlayer en utilisant un simple fichier de configuration. La syntaxe consiste un nom de touche suivi d'une commande. Le fichier de config par défaut est $HOME/.mplayer/input.conf mais cela peut être outrepassé en utilisant l'option -input conf (les chemins relatifs le sont par rapport à $HOME/.mplayer).

Vous pouvez obtenir une liste complète des touches supportées en tapant mplayer -input keylist et une liste complète des commandes disponibles en tapant mplayer -input cmdlist.

Exemple 3.1. Un simple fichier de contrôles

##
## MPlayer input control file
##

RIGHT seek +10
LEFT seek -10
- audio_delay 0.100
+ audio_delay -0.100
q quit
> pt_step 1
< pt_step -1
ENTER pt_step 1 1

3.2.2. Control from LIRC

Linux Infrared Remote Control - utilisez un récepteur infrarouge fait maison, une télécommande, et contrôlez votre linux à distance ! Plus d'infos sur la page de LIRC.

Si vous avez installé le paquet LIRC, configure le détectera automatiquement. Si tout s'est bien passé, MPlayer affichera un message du genre "Setting up LIRC support..." au démarrage. Si une erreur se produit il vous le dira. Si il ne vous dit rien à propos de LIRC c'est que son support n'est pas compilé. C'est tout :-)

Le nom de l'application à lancer avec MPlayer est - oh surprise - mplayer. Vous pouvez utiliser n'importe quelle commande MPlayer et même passer plus d'une commande en les séparant avec \n. N'oubliez pas d'activer le flag repeat dans .lircrc quand cela est approprié (déplacement, volume, etc). Voici un extrait d'un fichier d'exemple .lircrc:

begin
     button = VOLUME_PLUS
     prog = mplayer
     config = volume 1
     repeat = 1
end

begin
    button = VOLUME_MINUS
    prog = mplayer
    config = volume -1
    repeat = 1
end

begin
    button = CD_PLAY
    prog = mplayer
    config = pause
end

begin
    button = CD_STOP
    prog = mplayer
    config = seek 0 1\npause
end

Si vous n'aimez pas l'emplacement standard du fichier de config de lirc (~/.lircrc) utilisez -lircconf nomfichier pour spécifier un autre fichier.

3.2.3. Mode esclave

Le mode esclave vous permet de construire un frontend à MPlayer. Quand il est activé (avec -slave) MPlayer lit les commandes séparées par un saut de ligne (\n) depuis l'entrée par défaut (stdin). Les commandes sont documentées dans le fichier slave.txt.

3.3. Streaming depuis le réseau ou les pipes

MPlayer peut lire des fichiers depuis le réseau, en utilisant les protocoles HTTP, FTP, MMS ou RTSP/RTP.

La lecture se fait juste en ajoutant l'URL à la ligne de commande. MPlayer utilise également la variable d'environnement http_proxy, et utilise le proxy si disponible. L'utilisation du proxy peut aussi être forcé:

mplayer http_proxy://proxy.micorsops.com:3128/http://micorsops.com:80/stream.asf

MPlayer peut lire depuis stdin (pas depuis les pipes nommés). Cela peut être utilisé par exemple pour lire depuis le FTP:

wget ftp://micorsops.com/quelquechose.avi -O - | mplayer -

Note

Il est également recommandé d'activer -cache pour une lecture depuis le réseau:

wget ftp://micorsops.com/quelquechose.avi -O - | mplayer -cache 8192 -

3.3.1. Sauvegarder du contenu flux

Une fois que vous avez réussi à faire MPlayer lire votre flux internet favorit, vous pouvez utiliser l'option -dumpstream pour sauvegarder le flux dans un fichier. Par exemple:

mplayer http://217.71.208.37:8006 -dumpstream -dumpfile stream.asf

sauvegardera le contenu en flux depuis http://217.71.208.37:8006 vers stream.asf. Cela marche avec tous les protocoles supportés par MPlayer, comme MMS, RSTP, et bien d'autre encore. Si vous souhaitez seulement sauvegarder l'audio ou la vidéo, utilisez -dumpaudio ou -dumpvideo respectivement, mais soyez averto que MPlayer ignorera tout sauf la dernière option -dump* ajoutée dans la ligne de commande.

3.4. Flux distants

Les flux distants vous permettent d'accéder à la plupart des types de flux de MPlayer depuis un hôte distant. Le but de cette fonction est de rendre possible l'utilisation du lecteur CD ou DVD d'un autre ordinateur sur le réseau (en supposant que vous ayez une bande passante suffisante). Malheureusement certains types de flux (pour l'instant TV et MF) ne sont pas utilisables à distance car ils sont implémentés au niveau du demuxer. C'est triste pour les flux MF mais les flux TV nécessiteraient une bande passante incensée.

3.4.1. Compilation du serveur

Après avoir compilé MPlayer, allez dans le répertoire TOOLS/netstream et tapez make pour compiler le serveur. Vous pouvez ensuite copier le binaire netstream dans l'endroit approprié sur votre système (généralement /usr/local/bin sous Linux).

3.4.2. Utilisation de flux distants

Tout d'abord vous devez lancer le serveur sur l'ordinateur auquel vous souhaitez accéder à distance. Actuellement le serveur est très basique et n'accepte aucun argument en ligne de commande, donc tapez juste netstream. Maintenant vous pouvez par exemple jouer la seconde piste d'un VCD sur le serveur avec:

mplayer -cache 5000 mpst://serveur/vcd://2

Vous pouvez aussi accéder aux fichiers de ce serveur:

mplayer -cache 5000 mpst://serveur//usr/local/films/lol.avi

Veuillez noter que les chemins qui ne commencent pas par un / seront relatifs au répertoire dans lequel le serveur fonctionne. L'option -cache n'est pas requise mais vivement recommandée.

Soyez conscient que pour l'instant le serveur n'est pas sécurisé du tout. Donc ne vous plaignez pas des nombreuses attaques possibles par cette voie. À la place envoyez-nous quelques (bons) patches pour le rendre meilleur ou écrivez votre propre serveur.

3.5. Listes d'Edition de Décision (EDL)

Le système de liste d'édition de décision (Edit Decision Lists - EDL) vous permet de sauter ou rendre muet des sections de vidéos pendant la lecture, basé sur un fichier de configuration EDL spécifique au film.

Ceci est utile pour ceux qui veulent voir un film en mode "tout public". Vous pouvez couper toute violence, profanation, Jar-Jar Binks .. d'un film suivant vos préférences personnelles. A part ça, il y a d'autres utilisations, comme sauter automatiquement les publicités dans les fichiers vidéos que vous regardez.

Le format de fichier EDL est plutôt rudimentaire. Une fois que le système EDL aura atteint un certain niveau de maturité, un format de fichier basé sur XML sera probablement implémenté (en gardant une compatibilité descendante avec les précédents formats EDL).

3.5.1. Utiliser un fichier EDL

Incluez l'option -edl <nomfichier> quand vous lancez MPlayer, avec le nom du fichier EDL que vous voulez appliquer à la vidéo.

3.5.2. Faire un fichier EDL

Le format de fichier actuel EDL est:

[seconde de départ] [seconde de fin] [action]

Où les secondes sont des nombres à virgule et l'action est soit 0 pour sauter, soit 1 pour couper le son. Exemple:

5.3   7.1    0
15    16.7   1
420   422    0

Cela va sauter de la seconde 5.3 à la seconde 7.1 de la vidéo, puis va couper le son à 15 secondes, le remettre à 16.7 secondes et sauter de la seconde 420 à la seconde 422 de la vidéo. Ces actions seront appliquées quand le temps de lecture aura atteint le temps indiqué dans le fichier.

Pour créer un fichier EDL à partir duquel travailler, utilisez l'option -edlout <nomfichier>. Durant la lecture, quand vous voulez marquer les deux secondes précédentes à sauter, tapez sur i. Une entrée correspondante sera écrite dans le fichier. Vous pouvez ensuite revenir et affiner le fichier EDL généré.

3.6. Audio Avancé

3.6.1. Lecture Surround/Multi-canal

3.6.1.1. DVDs

La plupart des DVDs et beaucoup d'autres fichiers incluent le son surround. MPlayer supporte la lecture surround mais ne les activent pas par défaut parce que les équipement stéréos sont de loin plus communs. Pour jouer un fichier qui ont plus de deux canaux audio utilisez -channels. Par exemple, pour jouer un DVD avec l'audio 5.1:

mplayer dvd://1 -channels 6

Notez que en dépit du nom "5.1" il y a couramment six canaux discret. Si vous avez l'équipement pour le son surround il est de précaution de mettre l'option channels dans votre fichier de configuration de MPlayer ~/.mplayer/config. Par exemple, pour faire une lecture quadriphonique par défaut, ajoutez cette ligne:

channels=4

MPlayer sortira alors l'audio en quatre canaux quand les quatres canaux sont tous disponibles.

3.6.1.2. Lire des fichiers stéréo sur quatre haut-parleurs

MPlayer ne duplique aucun canal par défaut, et la plupart des pilotes audio ne le font pas non plus. Si vous voulez le faire manuellement:

mplayer filename -af channels=2:2:0:1:0:0

Voir la section sur canal en copie pour une explication.

3.6.1.3. AC3/DTS Passthrough

Les DVDs ont habituellement l'audio surround encodé en format AC3 (Dolby Digital) ou DTS (Digital Theater System). Certains équipements audio moderne sont capables de décoder ces formats de façon interne. MPlayer peut être configuré pour relayer les données audio sans le décodé. Cela ne marchera que si vous avez you have une connectique S/PDIF (Sony/Philips Digital Interface) sur votre carte son.

Si votre équipement audio peux décoder AC3 et DTS, vous pouvez sans risque activer le passthrough pour les deux formats. Autrement, activez le passthrough pour le seul format votre équipement supporte.

Pour activer le passthrough en ligne de commande:

  • Pour l'AC3 seul, utilisez -ac hwac3

  • Pour le DTS seul, utilisez -ac hwdts

  • Pour l'ensemble AC3 et DTS, utilisez -afm hwac3

Pour activer le passthrough dans le fichier de configuration de MPlayer:

  • Pour l'AC3 seul, utilisez ac=hwac3,

  • Pour le DTS seul, utilisez ac=hwdts,

  • Pour l'ensemble AC3 et DTS, utilisez afm=hwac3

Notez qu'il y a une virgule (",") à la fin de ac=hwac3, et ac=hwdts,. Cela permettra à MPlayer de retomber sur les codecs qu'il utilise normalement lors de la lecture d'un fichier qui n'a pas l'audio en AC3 ou DTS. afm=hwac3 n'a pas besoin d'une virgule; de toute façon MPlayer reviendra en arrière lorsqu'une famille d'audio est spécifiée.

3.6.1.4. Audio à encodage matriciel

***TODO***

Cette section doit encore être écrite et ne peut être complétée tant que personne ne nous a fourni des fichiers d'exemple à tester. Si vous avez quelconques fichiers audio à encodage matriciel en votre possession,que savez où en trouver, ou avez quelconques informations qui pourraient être utiles, veuillez envoyer un message à la liste de diffusion MPlayer-DOCS. Mettez "[matrix-encoded audio]" en sujet du mail.

Si aucuns fichiers ou de plus amples informations ne sont reçues cette section sera enlevée.

Liens Bon:

3.6.1.5. Emulation Surround dans les écouteurs

MPlayer inclu un filtre HRTF (Head Related Transfer Function) basé sur un projet MIT où des mesures ont été prises depuis des microphones montés sur une tête humaine factice.

Bien que il ne soit pas possible de reproduire exactement un système surround, le filtre HRTF de MPlayer fourni une immersion audio plus spatiale avec les systèmes d'écoute stéréo. La plupart des techniques de mixage consistent à simplement fusionner tous les canaux en deux; En plus de cette fusion, hrtf génére de subtils échos, augmente un peu la séparation stéréo, et altère le volume de certaines fréquences. Si HRTF sonne mieux gardez à l'esprit que tout ceci est dépendant de la source audio et est une question de goût personnel, mais cela vaut vraiment le coup d'essayer.

Pour jouer un DVD avec le HRTF:

mplayer dvd://1 -channels 6 -af hrtf

hrtf ne marche bien que avec 5 ou 6 canaux. Aussi, hrtf requière de l'audio en 48 kHz. L'audio DVD est déjà en 48 kHz, mais si vous avez un fichier avec un taux d'échantillonnage différent que celui que vous voulez jouer en utilisant hrtf vous devez le ré-échantillonner:

mplayer filename -channels 6 -af resample=48000,hrtf

3.6.1.6. Dépannage

Si vous n'entendez aucun son provenant de vos canaux surround, controler vos paramètres de mixeur avec un programme de mixeur comme alsamixer; les sorties audio sont souvent muettes et le volume réglé à zéro par défaut.

3.6.2. Manipulation de Canal

3.6.2.1. Information Générale

Malheureusement, il n'y a pas de standard qui montrent comment les canaux sont ordonnés. Les ordres listés ci-dessous sont ceux de l'AC3 et sont assez typiques; essayez-les et voyez si votre source correspond. Les canaux sont numérotés à partir de par 0.

mono

  1. centre

stéréo

  1. gauche
  2. droite

quadraphonique

  1. devant gauche
  2. devant droite
  3. arrière gauche
  4. arrière droite

surround 4.0

  1. devant gauche
  2. devant droite
  3. arrière centre
  4. devant centre

surround 5.0

  1. devant gauche
  2. devant droite
  3. arrière gauche
  4. arrière droite
  5. devant centre

surround 5.1

  1. devant gauche
  2. devant droite
  3. arrière gauche
  4. arrière droite
  5. devant centre
  6. caisson de basse

L'option -channels est utilisée pour demander le nombre de canaux depuis le décodeur audio. Certains codecs audio utilisent le nombre de canaux spécifiés pour décider si le mixage (downmixing) de la source est nécessaire. Notez que cela n'affecte pas toujours le nombre de canaux de sortie. Par exemple, utiliser -channels 4 pour jouer un fichier stéréo MP3 résultera quand même en une sortie en 2-canaux à partir du moment où le codec MP3 ne produira pas de canaux suplémentaires.

Le filtre audio channels peut être utilisé pour créer ou enléver des canaux et, est utile pour contrôler le nombre de canaux envoyés à la carte son. Voir les sections suivantes pour plus d'informations sur la manipulation de canaux.

3.6.2.2. Jouer en mono avec deux enceintes

Mono sonne beaucoup mieux quand il est joué au travers de deux enceintes - particulièrement quand des écouteurs sont utilisés. Les fichiers Audio qui ont vraiment un canal sont automatiquement joués au travers de deux enceintes; malheureusement, la plupart des filtres avec le son mono sont couramment encodés comme stéréo avec un canal silencieux. La façon la plus facile et la plus fidèle de faire sortir des enceintes le même audio est le filtre extrastereo:

mplayer filename -af extrastereo=0

Ceci fait la moyenne des deux canaux, ayant pour résultat que les deux canaux ont leur volume réduit de moitié par rapport à l'original. Les sections suivantes ont des exemples sur les autres manières de faire ceci sans une diminution du volume, mais ils sont plus compliqués et requièrent différentes options dépendemment du canal à garder. Si vous voulez réellement maintenir le volume, il est peut être plus facile de tester avec le filtre volume et trouver la bonne valeur. Par exemple:

mplayer nom_fichier -af extrastereo=0,volume=5

3.6.2.3. Copié/Déplacé le canal

Le filtre channels peut déplacer n'importe lequel ou tous les canaux. Parametré toutes les sous-options pour le filtre channels peut être compliqué et prend peu d'attention.

  1. Décidez combien de canaux de sortie vous avez besoin. Ceci est la première sous-option.

  2. Comptez combien de canaux vous devrez déplacer. Ceci est la seconde sous-option. Chaque canal peut être déplacé en plusieurs différents canaux en même temps, mais gardez en tête que quand un canal est déplacé (même si vers une seule destination) le canal source sera vidé à moins qu'un autre canal ne soit déplacé dans ce même canal. Pour copier un canal, en gardant la source intacte, simplement déplacer le canal dans les deux destination et source. Par exemple:

    canal 2 --> canal 3
    canal 2 --> canal 2
    

  3. Écrivez les copies de canal comme paires de sous-options. Notez que le premier canal est 0, le second est 1, etc. L'ordre de ces sous-options n'importe pas aussi longtemps qu'ils sont correctement groupés en source:destination paires.

Exemple: un canal en deux enceintes

Ici un exemple d'une autre manière de jouer un canal sur les deux enceintes. On suppose pour cette exemple que le canal de gauche devra être joué et le canal de droite annulé. En suivant les étapes ci-dessus:

  1. Afin de fournir un canal de sortie pour chacune des deux enceintes, la première sous-option doit être "2".

  2. Le canal de gauche a besoin d'être déplacé vers le canal de droite, et doit aussi être déplacé vers lui-même pour que le canal ne se vide pas. Cela fait un total de deux déplacements, mettant la deuxième sous-option aussi à "2".

  3. Pour déplacer le canal de gauche (canal 0) vers le canal de droite (canal 1), la paire sous-option est "0:1", "0:0" déplace le canal de gauche vers lui-même.

En mettant tout ça ensemble cela donne:

mplayer filename -af channels=2:2:0:1:0:0

L'avantage de cette exemple par rapport à extrastereo est que le volume de chaque canal de sortie est le même que le canal d'entrée. Le désavantage étant que les sous-options doivent être changées à "2:2:1:0:1:1" quand l'audio désirée est dans le canal de droite. Il est aussi plus difficile de s'en souvenir et de le taper.

Exemple: canal gauche vers deux enceintes raccourci

Il y a couramment une façon plus simple d'utiliser le filtre channels pour jouer le canal de gauche vers les deux enceintes:

mplayer nom_fichier -af channels=1

Le second canal est enlevé et, sans plus de sous-options, le seul canal qui reste est celui de gauche. Les pilotes de carte son jouent automatiquement l'audio d'un seul canal vers les deux enceintes. cela ne fonctionne que quand le canal voulu est sur la gauche.

Exemple: dupliquer les canaux frontaux sur l'arrière

Une autre opération commune est de dupliquer les canaux frontaux et de leur faire rejouer sur les enceintes arrière d'un paramètrage quadraphonique.

  1. Il devrait y avoir quatre canaux de sortie. La première sous-option est "4".

  2. Chacun des deux canaux avant a besoin d'être déplacé vers le canal arrière correspondant et aussi vers lui-même. Cela fait quatre déplacements, donc la seconde sous-option est "4".

  3. L'avant gauche (canal 0) a besoin d'être déplacé vers l'arrière gauche (canl 2): "0:2". L'avant gauche a aussi besoin d'être déplacé vers lui-même: "0:0". L'avant droit (canal 1) est déplacé vers l'arrière droite (canl 3): "1:3", et aussi vers lui- même: "1:1".

Combinez toutes les sous-options pour obtenir:

mplayer nom_fichier -af channels=4:4:0:2:0:0:1:3:1:1

3.6.2.4. Mixage de canal

Le filtre pan peut mixer les canaux selon des proportions spécifiées par l'utilisateur. Ceci tient compte de tout que le filtre de channels peut faire et plus. Malheureusement, les sous-options sont beaucoup plus complexes.

  1. Décidez avec combien de canaux vous voulez travailler. Vous aurez peut-être besoin de spécifier cela avec -channels et/ou -af channels. Des exemples plus loin montreront quand et laquelle il faut utiliser.

  2. Décidez combien de canaux à introduire dans pan (les canaux suplémentaires décodés sont rejetés). Ceci est la première sous-option, et elle contrôle aussi combien de canaux à employer pour la sortie.

  3. Les sous-options restantes spécifient quelle quantité de chaque canal sont mixés l'un dans l'autre. Ceci est la partie compliquée. Pour décomposer la tâche, découpez les sous-options en plusieurs ensembles, un ensemlbe pour chaque canal de sortie. Chaque sous-option d'un ensemble correspond à un canal d'entrée. Le nombre que vous spécifiez sera le pourcentage de canal d'entrée qui sont mixés dans le canal de sortie.

    pan accepte des valeurs de 0 à 512, rendement de 0% à 51200% du volume original. Faites attention quand en utilisant des valeurs plus grande que 1. Non seulement cela peut vous donner un volume tres haut, mais si vous dépassez la marge d'échantillon de votre carte son vous pourriez entendre des pops et clics désagréables. Si vous le voulez vous pouvez faire suivre pan avec ,volume pour activer la coupure, mais c'est mieux de garder les valeurs de pan suffisamment basses pour que la coupure ne soit pas nécessaire.

Exemple: un canal dans deux enceintes

Voici encore un autre exemple pour jouer le canal gauche dans deux enceintes. Suivez les étapes ci-dessus:

  1. pan devrait sortir deux canaux, donc la première sous-option est "2".

  2. Puisque nous avons deux canaux d'entrée, il y aura deux ensembles de sous-options. Puisqu'il y a également deux canaux de sortie, il y aura deux sous-options par ensemble. Le canal gauche à partir du fichier devrait aller au volume maxi aux les nouveaux canaux gauche et droite. Ainsi le premier ensemble de sous-options est "1:1". Le canal de droite devrait être rejeté, donc le second serait "0:0". N'importe quelles valeurs à 0 à la fin peuvent être omises, mais pour une facilité de compréhension nous les garderons.

Mettre ces options ensemble donne:

mplayer nom_fichier -af pan=2:1:1:0:0

Si le canal de droite est préféré à la place du gauche, les sous-options pour pan seront "2:0:0:1:1".

Exemple: canal de gauche dans deux enceintes raccourci

Comme avec channels, il y a un raccourci qui ne fonctionne que avec le canal de gauche:

mplayer nom_fichier -af pan=1:1

Puisque pan a seulement un canal d'entrée (l'autre canal étant rejeté), il n'y a seulement qu'un ensemble avec une sous-option, qui indique que le seul canal obtient 100% de lui-même.

Exemple: Mixage (downmixing) PCM 6-canaux

Le décodeur de MPlayer pour le PCM 6-canaux n'est pas capable de le mixer (downmixing). Voici une façon de mixager (downmixing) PCM en utilisant pan:

  1. Le nombre de canaux de sortie est 2, donc la première sous-option est "2".

  2. Avec six canaux d'entrée il y aura six ensembles d'options. Heureusement, puisque nous nous inquiétons seulement de la sortir des deux premiers canaux, nous devons seulement faire deux ensembles; les quatres ensembles restants peuvent être omis. Prenez garde que tous les fichiers audio multi-canaux n'aient le même ordre de canaux! Cette exemple démontre le mixage (downmixing) d'un fichier avec les même canaux que l'AC3 5.1:

    0 - avant gauche
    1 - avant droit
    2 - arrière gauche
    3 - arrière droit
    4 - avant centre
    5 - caisson de basse (subwoofer)
    

    Le premier ensemble de sous-options liste les pourcentages du volume original, dans l'ordre, de ce que chaque canal de sortie devrait recevoir du canal gauche avant: "1:0". Le canal avant droit devrait aller vers la bonne sortie: "0:1". De même pour les canaux arrières: "1:0" et "0:1". Le canal centre va vers les deux canaux de sortie avec moitié de volume: "0.5:0.5", et le caisson de basse (subwoofer) va vers les deux avec le volume maxi: "1:1".

Mettez tout ça ensemble, pour:

mplayer 6-canaux.wav -af pan=2:1:0:0:1:1:0:0:1:0.5:0.5:1:1

Les pourcentages listés ci-dessus sont seulement un exemple approximatif. Vous êtes libres de les ajuster.

Exemple: Jouer de l'audio 5.1 sur de grosses enceintes sans un caisson de basse (subwoofer)

Si vous avez une paire d'enceintes frontales énormes, vous ne voudriez pas gaspiller de l'argent sur l'achat d'un caisson de basse (subwoofer) pour un système son 5.1 complet. Si vous utilisez -channels 5 pour demander que liba52 décode l'audio 5.1 en 5.0, le canal du caisson de basse (subwoofer) est simplement rejeté. Si vous voulez distribuer le canal du caisson de basse (subwoofer) vous-même vous avez besoin de mixer (downmix) manuellement avec pan:

  1. Puisque pan a besoin d'examiner chacun des six canaux, spécifiez -channels 6 ainsi liba52 les décode tous.

  2. pan sort vers seulement cinq canaux, la première sous-option est 5.

  3. Six canaux d'entrées et cinq de sortie signifient six ensembles de cinq sous-options.

    • Le canal avant gauche ne se réplique que vers lui-même: "1:0:0:0:0"
    • Pareil pour le canal avant droit: "0:1:0:0:0"
    • Pareil pour le canal arrière gauche: "0:0:1:0:0"
    • et aussi de même pour le canal arrière droit: "0:0:0:1:0"
    • Avant centre, aussi: "0:0:0:0:1"
    • Et maintenant que nous avons décidé quoi faire avec le caisson de basse, e.g. moitié vers l'avant droit et l autre vers l'avant gauche: "0.5:0.5:0:0:0"

Combinez toutes ces options pour obtenir:

mplayer dvd://1 -channels 6 -af pan=5:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0:0:0:0:0:1:0.5:0.5:0:0:0

3.6.3. Ajustement Logiciel du Volume

Certaines pistes audio sont trop silencieuses pour être entendues confortablement sans amplification. Cela devient un problème quand votre équipement audio ne peut amplifier le signal à votre place. L'option -softvol oblige MPlayer à utiliser un mixeur interne. Vous pouvez alors utiliser les touches d'ajustement du volume (par défaut 9 et 0) pour atteindre des niveaux de volume plus important. Notez que cela ne dévie pas votre mixeur de carte son; MPlayer amplifie seulement le signal avant de l'envoyer vers votre carte son. L'exemple suivant est un bien pour débuter:

mplayer quiet-file -softvol -softvol-max 300

L'option -softvol-max spécifie le volume maximum de sortie permis en tant que pourcentage du volume original. Par exemple, -softvol-max 200 devra permettre l'ajustement du volume jusqu'à deux fois son niveau d'origine. Il est sûr d'indiquer une valeur importante avec -softvol-max; un volume plus important ne sera utilisé qu'à partir du moment où les touches d'ajustement du volume sont utilisées. Le seul désavantage d'une valeur large est que, puisque MPlayer ajuste le volume par un pourcentage du maximum, vous n'aurez pas un contrôle aussi précis en utilisant les touches d'ajustement du volume. Utilisez une valeur plus basse avec -softvol-max et/ou indiquez -volstep 1 si vous désirez une précision plus importante.

L'option -softvol fonmctionne en contrôlant le filtre audio volume. Si vous voulez jouer un fichier à un certain volume depuis le début vous pouvez spécifier volume manuellement:

mplayer fichier-tranquil -af volume=10

Cela jouera le fichier avec un gain de 10 décibel. Soyez prudent lors de l'utilisation du filtre volume - vous pourriez facilement abimer votre appareil auditif si vous utilisez un valeur trop grande. Commencez bas et travaillez de façon graduelle vers le haut jusqu'à être à même d'apprécier de combien il est nécessaire d'ajuster le volume. Aussi, si vous indiquez des valeurs excessivement haute, volume pourra avoir besoin de couper le signal pour éviter d'envoyer vos données de carte son qui sont en dehors de la bande permise; cela résultera en une distorsion de l'audio.

Chapitre 4. Foire Aux Questions

4.1. Développement
Q : Comment puis-je créer un patch adapté pour MPlayer?
Q : Comment puis-je traduire MPlayer dans une nouvelle langue?
Q : Comment puis-je supporter le développement de MPlayer?
Q : Comment puis-je devenir un développeur MPlayer?
Q : Pourquoi n'utilisez-vous pas autoconf/automake?
4.2. Compilation et installation
Q : La compilation échoue avec une erreur et gcc parachute des messages cryptés contenant la phrase internal compiler error ou unable to find a register to spill.
Q : Y'a-t-il des paquets binaires (RPM/Debian) de MPlayer?
Q : Comment puis-je "build" un MPlayer 32 bit sur un Athlon 64 bit?
Q : Configure se termine par ce texte, et MPlayer ne compile pas ! Your gcc does not support even i386 for '-march' and '-mcpu'
Q : J'ai une Matrox G200/G400/G450/G550, comment puis-je compiler/utiliser le pilote mga_vid?
Q : Pendant 'make', MPlayer se plaint à propos de librairies X11. Je ne comprends pas, J'ai VRAIMENT installé X11 !?
4.3. Questions générales
Q : Y-a-t'il des listes de diffusion pour MPlayer ?
Q : J'ai trouvé un sale bogue quand j'essaie de lire ma vidéo préférée ! Qui dois-je informer ?
Q : J'ai des problèmes pour lire les fichiers avec le codec ... . Puis-je l'utiliser ?
Q : Quand je démarre la lecture, j'obtiens ce message mais tout semble se dérouler normalement: Linux RTC init: ioctl (rtc_pie_on): Permission denied
Q : Comment puis-je faire une copie d'écran ?
Q : Quelle est la signification des nombres sur la ligne de commande ?
Q : Il y a des messages d'erreur à propos d'un fichier non-trouvé /usr/local/lib/codecs/ ...
Q : Comment puis-je faire en sorte que MPlayer se souvienne des options que j'ai utilisé pour un fichier en particulier, c'est à dire movie.avi?
Q : Les sous-titres sont très jolis, les plus beaux que j'ai jamais vu, mais ils ralentissent la lecture! Je sais que ce n'est pas courant ...
Q : Je ne peux pas accéder au menu de la GUI. J'appuie sur le bouton droit de la souris, mais je ne peux pas accéder aux éléments du menu !
Q : Comment puis-je lancer MPlayer en tâche de fond ?
4.4. Problèmes de lecture
Q : Je n'arrive pas à trouver la cause de certains problèmes étranges de lecture.
Q : Comment puis-je faire apparaitre les sous-titres sur les bandes noires autour d'un film?
Q : Comment sélectionner les pistes audio ou les sous-titres d'un DVD ou de fichiers OGM, Matroska ou NUT ?
Q : J'essaie de lire un flux aléatoire depuis l'internet mais cela échoue.
Q : J'ai téléchargé un film sur un réseau P2P mais il ne fonctionne pas !
Q : J'ai des problèmes pour afficher mes sous-titres, à l'aide!!
Q : Pourquoi MPlayer ne fonctionne-t-il pas sur Fedora Core?
Q : MPlayer meurt avec MPlayer interrupted by signal 4 in module: decode_video
Q : Quand j'essaye de faire une capture depuis mon tuner, cela fonctionne, mais les couleurs sont étranges. C'est BON avec d'autres applications.
Q : J'ai des valeurs en pourcentage très étrange (vraiment trop grande) lors de la lecture de fichiers sur mon portable.
Q : L'audio/vidéo devient totalement désync quand je lance MPlayer en tant que root sur mon portable. Cela fonctionne normalement quand je le lance en tant que simple utilisateur.
Q : Pendant qu'un film joue tout devient soudainement saccadé et j'obtiens le message suivant: Badly interleaved AVI file detected - switching to -ni mode...
4.5. Problèmes de pilote vidéo/audio (vo/ao)
Q : Quand je passe en mode plein écran j'obtiens juste des bandes noires autour de l'image et pas de réel agrandissement en mode plein écran.
Q : Je viens juste d'installer MPlayer. Quand je veux ouvrir un fichier vidéo cela provoque une erreur fatale: Error opening/initializing the selected video_out (-vo) device. Comment puis-je résoudre mon problème?
Q : J'ai des problèmes avec [votre gestionnaire de fenêtre] et les modes plein écran xv/xmga/sdl/x11 ...
Q : L'audio va en désync lors de la lecture d'un fichier AVI.
Q : Mon ordinateur joue les AVI DivX MS dans des résolutions ~ 640x300 et un son MP3 stéréo trop lentement. Quand j'utilise l'option -nosound, tout va BIEN (mais c'est calme).
Q : Comment puis-je utiliser dmix avec MPlayer?
Q : Je n'ai pas de son en jouant une vidéo et j'obtiens des messages similaires à celui ci: AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) audio_setup: Can't open audio device /dev/dsp: Device or resource busy couldn't open/init audio device -> NOSOUND Audio: no sound!!! Start playing...
Q : Quand je lance MPlayer sous KDE je n'obtiens qu'un écran noir et rien ne se passe. Après environ une minute la vidéo commence à défiler.
Q : J'ai des problèmes de synchro A/V. Certains de mes AVIs sont lus correctement, mais d'autres sont lus à double vitesse !
Q : Quand je lis ce film j'obtiens des désynchro vidéo-audio et/ou MPlayer plante avec le message suivant: DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
Q : Comment puis-je me débarasser de la désynchronisation A/V lors d'une recherche sur des flux de type RealMedia?
Q : Comment puis-je me débarasser des désynchronisation A/V durant la recherche sur des flux RealMedia?
4.6. Lecture DVD
Q : Et a propos de la navigation et des menus DVD ?
Q : Et à propos des sous-titres? Est-ce que MPlayer peut les afficher ?
Q : Comment puis-je changer le code de zone de mon lecteur DVD ? Je n'ai pas Windows !
Q : Dois-je être en (setuid) root pour pouvoir lire un DVD ?
Q : Est-il possible de lire/encoder uniquement certains chapitres ?
Q : La lecture de DVD est très lente !
Q : J'ai copié un DVD en utilisant vobcopy. Comment puis-je le lire/l'encoder depuis mon disque dur ?
4.7. Demandes de fonctionnalités
Q : Si est MPlayer est en pause et que j'essaie de me déplacer ou de presser n'importe quelle touche, MPlayer sort de pause. Je voudrais être capable de me déplacer dans la vidéo en pause.
Q : J'aimerais me déplacer de +/- 1 trame au lieu de 10 secondes.
4.8. Encodage
Q : Comment puis-je encoder ?
Q : Cooment puis-je décharger un titre entier de DVD dans un fichier?
Q : Comment puis-je créer des (S)VCDs automatiquement?
Q : Comment puis-je créer des (S)VCDs?
Q : Comment puis-je joindre deux fichiers vidéos ?
Q : Comment puis-je réparer des fichiers AVI avec un index cassé ou un mauvais entrelacement?
Q : Comment puis-je réparer le rapport d'aspect d'un fichier AVI?
Q : Je ne peux pas encoder les sous-titres en AVI!
Q : Comment puis-je encoder seulement certains chapitres d'un DVD?
Q : J'essaie de travailler avec des fichiers de plus de 2Go sur un système de fichier VFAT. Ça marche?
Q : Pourquoi le bitrate affiché par MEncoder est négatif?
Q : Je ne peux pas convertir un fichier ASF en AVI/MPEG-4 (DivX) car il utilise 1000 fps?
Q : Comment puis-je insérer des sous-titres dans le fichier de sortie ?
Q : Comment puis-je encoder uniquement le son d'une vidéo musicale ?
Q : Pourquoi est-ce que les lecteurs de tiers partie n'arrivent pas à jouer des films MPEG-4 encodé par des versions plus tardives que 1.0pre7 de MEncoder?
Q : Comment puis-je encoder un fichier seulement audio?
Q : Comment puis-je jouer les sous-titres inclus dans AVI?
Q : MPlayer n'ira pas...

4.1. Développement

Q : Comment puis-je créer un patch adapté pour MPlayer?
Q : Comment puis-je traduire MPlayer dans une nouvelle langue?
Q : Comment puis-je supporter le développement de MPlayer?
Q : Comment puis-je devenir un développeur MPlayer?
Q : Pourquoi n'utilisez-vous pas autoconf/automake?
Q :

Comment puis-je créer un patch adapté pour MPlayer?

R :

Nous avons fait un court document décrivant tous les détails nécessaires. Merci de suivre les instructions.

Q :

Comment puis-je traduire MPlayer dans une nouvelle langue?

R :

Lisez le translation HOWTO, il devrait tout expliquer. Vous pouvez obtenir de l'aide supplémentaire sur la liste de diffusion MPlayer-translations.

Q :

Comment puis-je supporter le développement de MPlayer?

R :

Nous sommes plus que contents d'accepter vos dons matériels et logiciels. Ils nous aident à améliorer continuellement MPlayer.

Q :

Comment puis-je devenir un développeur MPlayer?

R :

Nous accueillons toujours des codeurs et des "documenteurs". Lisez la documentation technique pour avoir un premier aperçu. Ensuite vous devriez vous inscrire à la liste de diffusion MPlayer-dev-eng et commencer à coder. Si vous souhaitez apporter votre aide à la documentation, joignez la liste de diffusion MPlayer-docs.

Q :

Pourquoi n'utilisez-vous pas autoconf/automake?

R :

Nous avons un système modulaire écrit à la main. Il fait un travail relativement bon, donc pourquoi changer ? Nous n'aimons pas les outils auto*, comme d' autres personnes.

4.2. Compilation et installation

Q : La compilation échoue avec une erreur et gcc parachute des messages cryptés contenant la phrase internal compiler error ou unable to find a register to spill.
Q : Y'a-t-il des paquets binaires (RPM/Debian) de MPlayer?
Q : Comment puis-je "build" un MPlayer 32 bit sur un Athlon 64 bit?
Q : Configure se termine par ce texte, et MPlayer ne compile pas ! Your gcc does not support even i386 for '-march' and '-mcpu'
Q : J'ai une Matrox G200/G400/G450/G550, comment puis-je compiler/utiliser le pilote mga_vid?
Q : Pendant 'make', MPlayer se plaint à propos de librairies X11. Je ne comprends pas, J'ai VRAIMENT installé X11 !?
Q :

La compilation échoue avec une erreur et gcc parachute des messages cryptés contenant la phrase internal compiler error ou unable to find a register to spill.

R :

Vous êtes tombé sur un bogue de gcc. S'il vous plait faites en part à l'équipe de gcc mais pas à nous. Pour une quelconque raison MPlayer semble déclencher des bogues du compilateur de manière fréquente. Néanmoins nous ne pouvons les réparer et n'ajoutons pas du boulot en plus à nos sources pour les bogues de compilateur. Pour éviter ce problème, restez avec une version de compilateur reconnu pour être disponible et stable, ou mettez à niveau fréquemment.

Q :

Y'a-t-il des paquets binaires (RPM/Debian) de MPlayer?

R :

Voir les sections Debian et RPM pour plus de détails.

Q :

Comment puis-je "build" un MPlayer 32 bit sur un Athlon 64 bit?

R :

Essayer les options de configuration suivantes:

./configure --target=athlon_xp --cc="gcc -m32" --as="as --32" --with-extralibdir=/usr/lib

Q :

Configure se termine par ce texte, et MPlayer ne compile pas !

Your gcc does not support even i386 for '-march' and '-mcpu'

R :

Votre gcc n'est pas installé correctement, voir le fichier configure.log pour plus de détails.

Q :

J'ai une Matrox G200/G400/G450/G550, comment puis-je compiler/utiliser le pilote mga_vid?

R :

Lisez la section mga_vid.

Q :

Pendant 'make', MPlayer se plaint à propos de librairies X11. Je ne comprends pas, J'ai VRAIMENT installé X11 !?

R :

... mais vous n'avez pas installé les paquets X11 de développement. Ou pas correctement. Ils s'appellent XFree86-devel* sous Red Hat, xlibs-dev sous Debian Woody, et libx11-dev sous Debian Sarge. Vérifiez également que les liens symboliques /usr/X11 et /usr/include/X11 existent (cela peut poser un problème sur les systèmes Mandrake).

4.3. Questions générales

Q : Y-a-t'il des listes de diffusion pour MPlayer ?
Q : J'ai trouvé un sale bogue quand j'essaie de lire ma vidéo préférée ! Qui dois-je informer ?
Q : J'ai des problèmes pour lire les fichiers avec le codec ... . Puis-je l'utiliser ?
Q : Quand je démarre la lecture, j'obtiens ce message mais tout semble se dérouler normalement: Linux RTC init: ioctl (rtc_pie_on): Permission denied
Q : Comment puis-je faire une copie d'écran ?
Q : Quelle est la signification des nombres sur la ligne de commande ?
Q : Il y a des messages d'erreur à propos d'un fichier non-trouvé /usr/local/lib/codecs/ ...
Q : Comment puis-je faire en sorte que MPlayer se souvienne des options que j'ai utilisé pour un fichier en particulier, c'est à dire movie.avi?
Q : Les sous-titres sont très jolis, les plus beaux que j'ai jamais vu, mais ils ralentissent la lecture! Je sais que ce n'est pas courant ...
Q : Je ne peux pas accéder au menu de la GUI. J'appuie sur le bouton droit de la souris, mais je ne peux pas accéder aux éléments du menu !
Q : Comment puis-je lancer MPlayer en tâche de fond ?
Q :

Y-a-t'il des listes de diffusion pour MPlayer ?

R :

Oui. Voir la section listes de diffusion

Q :

J'ai trouvé un sale bogue quand j'essaie de lire ma vidéo préférée ! Qui dois-je informer ?

R :

Veuillez lire comment rapporter un bogue et suivez les instructions.

Q :

J'ai des problèmes pour lire les fichiers avec le codec ... . Puis-je l'utiliser ?

R :

Regardez l'état des codecs, si il ne contient pas votre codec, lisez la documentation des codecs, surtout le HOWTO importation des codecs et contactez-nous.

Q :

Quand je démarre la lecture, j'obtiens ce message mais tout semble se dérouler normalement:

Linux RTC init: ioctl (rtc_pie_on): Permission denied

R :

Vous avez besoin des droits root ou un noyau configuré spécialement pour utiliser le nouveau code de timing. Pour les détails voir la section RTC de la documentation.

Q :

Comment puis-je faire une copie d'écran ?

R :

Vous devez utiliser un pilote de sortie vidéo qui n'utilise pas d'overlay pour pouvoir faire une copie d'écran. Sous X11, -vo x11 peut le faire, sous Windows -vo directx:noaccel fonctionne.

Alternativement vous pouvez lancer MPlayer avec le filtre vidéo screenshot (-vf screenshot), et pressez la touche s pour faire une capture d'écran.

Q :

Quelle est la signification des nombres sur la ligne de commande ?

R :

Exemple:

A: 2.1 V: 2.2 A-V: -0.167 ct: 0.042 57/57 41% 0% 2.6% 0 4 49% 1.00x

A: 2.1

position audio en secondes

V: 2.2

position vidéo en secondes

A-V: -0.167

différence audio-video en secondes (décalage)

ct: 0.042

correction de synchro A-V faite

57/57

trames lues/décodées (à partir du dernier déplacement)

41%

utilisation CPU du codec vidéo en pourcents (pour les tranches et le rendu direct (Direct Rendering) ceci inclus video_out)

0%

utilisation CPU de video_out

2.6%

utilisation CPU du codec audio en pourcents

0

nombre de trames sautées pour maintenir la synchro A-V

4

niveau actuel de postprocessing (en utilisant -autoq)

49%

taille actuelle du cache (environ 50% est normal)

1.00x

vitesse de lecture en tant que facteur de la vitesse originale

La plupart d'entre eux sont là pour des raisons de déboggage, utilisez l'option -quiet pour les faire disparaitre. Vous remarquerez que l'utilisation CPU de video_out est à zéro (0%) pour certains fichiers. C'est parcequ'il est appelé directement depuis le codec et donc ne peux pas être mesuré séparemment. Si vous désirez connaitre la vitesse de video_out, comparez la différence lorsque le fichier joue avec -vo null et votre habituel pilote de sortie vidéo.

Q :

Il y a des messages d'erreur à propos d'un fichier non-trouvé /usr/local/lib/codecs/ ...

R :

Téléchargez et installez les codecs binaires depuis notre page des codecs.

Q :

Comment puis-je faire en sorte que MPlayer se souvienne des options que j'ai utilisé pour un fichier en particulier, c'est à dire movie.avi?

R :

Créez un fichier dénommé movie.avi.conf avec dedans les options spécifiques à ce fichier et placez-le dans ~/.mplayer ou dans le même répertoire que le fichier.

Q :

Les sous-titres sont très jolis, les plus beaux que j'ai jamais vu, mais ils ralentissent la lecture! Je sais que ce n'est pas courant ...

R :

Après avoir exécuté ./configure, éditez config.h et remplacez #undef FAST_OSD par #define FAST_OSD. Ensuite recompilez.

Q :

Je ne peux pas accéder au menu de la GUI. J'appuie sur le bouton droit de la souris, mais je ne peux pas accéder aux éléments du menu !

R :

Utilisez-vous FVWM ? Essayez cela:

  1. Start -> Settings -> Configuration -> Base Configuration

  2. Mettez Use Applications position hints à Yes

Q :

Comment puis-je lancer MPlayer en tâche de fond ?

R :

Utilisez:

mplayer options nomfichier < /dev/null &

4.4. Problèmes de lecture

Q : Je n'arrive pas à trouver la cause de certains problèmes étranges de lecture.
Q : Comment puis-je faire apparaitre les sous-titres sur les bandes noires autour d'un film?
Q : Comment sélectionner les pistes audio ou les sous-titres d'un DVD ou de fichiers OGM, Matroska ou NUT ?
Q : J'essaie de lire un flux aléatoire depuis l'internet mais cela échoue.
Q : J'ai téléchargé un film sur un réseau P2P mais il ne fonctionne pas !
Q : J'ai des problèmes pour afficher mes sous-titres, à l'aide!!
Q : Pourquoi MPlayer ne fonctionne-t-il pas sur Fedora Core?
Q : MPlayer meurt avec MPlayer interrupted by signal 4 in module: decode_video
Q : Quand j'essaye de faire une capture depuis mon tuner, cela fonctionne, mais les couleurs sont étranges. C'est BON avec d'autres applications.
Q : J'ai des valeurs en pourcentage très étrange (vraiment trop grande) lors de la lecture de fichiers sur mon portable.
Q : L'audio/vidéo devient totalement désync quand je lance MPlayer en tant que root sur mon portable. Cela fonctionne normalement quand je le lance en tant que simple utilisateur.
Q : Pendant qu'un film joue tout devient soudainement saccadé et j'obtiens le message suivant: Badly interleaved AVI file detected - switching to -ni mode...
Q :

Je n'arrive pas à trouver la cause de certains problèmes étranges de lecture.

R :

Avez-vous un fichier codecs.conf encore présent dans ~/.mplayer/, /etc/, /usr/local/etc/ ou dans un endroit similaire? Supprimez-le, un fichier codecs.conf obsolète peut causer d'obscurs problèmes et ne doit être utilisé que par les dévelopeurs travaillant sur le suuport de codec. Cela remplace les paramètres interne de codec de MPlayer, ce qui créera un désastre si des modifications incompatibles sont faites avec des versions plus récentes du logiciel. A moins qu'il soit utilisé par des experts, c'est une recette pour un désastre de telle facon qu'il est aléatoire et très dur à localiser des plantages et des problèmes de lecture. Si vous l'avez encore quelque part sur votre système, vous devriez le supprimer immédiatement.

Q :

Comment puis-je faire apparaitre les sous-titres sur les bandes noires autour d'un film?

R :

Utilisez le filtre vidéo expand pour augmenter verticalement la zone sur laquelle le film est rendu et placer le film au niveau de la bande supérieure, par exemple:

mplayer -vf expand=0:-100:0:0 -slang de dvd://1

Q :

Comment sélectionner les pistes audio ou les sous-titres d'un DVD ou de fichiers OGM, Matroska ou NUT ?

R :

Vous devez utiliser -aid (audio ID) ou -alang (audio language), -sid(subtitle ID) ou -slang (subtitle language), par exemple:

mplayer -alang eng -slang eng exemple.mkv
mplayer -aid 1 -sid 1 exemple.mkv

Pour voir ceux qui sont disponibles:

mplayer -vo null -ao null -frames 0 -v fichier | grep sid
mplayer -vo null -ao null -frames 0 -v fichier | grep aid

Q :

J'essaie de lire un flux aléatoire depuis l'internet mais cela échoue.

R :

Essayez de lire le flux avec l'option -playlist.

Q :

J'ai téléchargé un film sur un réseau P2P mais il ne fonctionne pas !

R :

Votre fichier est probablement endommagé ou faux. Si vous l'avez obtenu par un ami, et qu'il dit qu'il fonctionne, essayez de comparer les sommes md5sum.

Q :

J'ai des problèmes pour afficher mes sous-titres, à l'aide!!

R :

Assurez-vous d'avoir installé les polices correctement. Suivez les étapes de la partie OSD et sous-titres de la section installation. Si vous utilisez des polices TrueType, vérifiez que la librairie FreeType est installée. Vous pouvez aussi essayer de vérifier vos sous-titres dans un éditeur de texte ou avec d'autres lecteurs. Ou encore les convertir dans un autre format.

Q :

Pourquoi MPlayer ne fonctionne-t-il pas sur Fedora Core?

R :

Il y a une mauvaise intéraction sur Fedora entre exec-shield, prelink, et toute application utilisant les DLLs Windows (comme MPlayer).

Le problème est que exec-shield rend les adresses de chargement de toutes les librairies système aléatoires. Cela se produit durant la phase de prelink (une fois toutes les deux semaines).

Quand MPlayer essaie de charger une DLL Windows il veut la placer à une adresse spécifique (0x400000). Si une librairie système importante s'y trouve déjà, MPlayer plantera (Un symptôme typique est un segmentation fault en essayant de lire des fichiers Windows Media 9).

Si vous avez ce problème vous avez deux options:

  • Attendez deux semaines. Cela peut fonctionner de nouveau.

  • Relinkez toutes les binaires du système avec des options de prelink différentes. Voici les étapes à suivre:

    1. Éditez /etc/syconfig/prelink et changez

      PRELINK_OPTS=-mR
      

      par

      PRELINK_OPTS="-mR --no-exec-shield"
      

    2. touch /var/lib/misc/prelink.force

    3. /etc/cron.daily/prelink (Cela relink toutes les applications, et peut prendre beaucoup de temps.)

    4. execstack -s /chemin/de/mplayer (Cela désactive exec-shield pour le binaire MPlayer.)

Q :

MPlayer meurt avec

MPlayer interrupted by signal 4 in module: decode_video

R :

N'utilisez pas MPlayer sur un CPU différent de celui sur lequel il a été compilé ou recompilez avec "runtime CPU detection" (./configure --enable-runtime-cpudetection).

Q :

Quand j'essaye de faire une capture depuis mon tuner, cela fonctionne, mais les couleurs sont étranges. C'est BON avec d'autres applications.

R :

Votre carte probablement rapporte certains espaces de couleurs comme étant supportés alors qu'en fait elle ne les supporte pas. Essayez avec YUY2 à la place de YV12 par défaut (voir la section TV).

Q :

J'ai des valeurs en pourcentage très étrange (vraiment trop grande) lors de la lecture de fichiers sur mon portable.

R :

C'est un effet de la gestion/économie d'énergie de votre portable (BIOS, pas le noyau). Branchez l'alimentation secteur avant d'allumer votre portable. Vous pouvez aussi voir si cpufreq (une interface SpeedStep pour Linux) vous aide.

Q :

L'audio/vidéo devient totalement désync quand je lance MPlayer en tant que root sur mon portable. Cela fonctionne normalement quand je le lance en tant que simple utilisateur.

R :

C'est là encore un effet de la gestion d'énergie (voir ci-dessus). Branchez l'alimentation secteur avant d'allumer votre portable ou utilisez l'option -nortc.

Q :

Pendant qu'un film joue tout devient soudainement saccadé et j'obtiens le message suivant:

Badly interleaved AVI file detected - switching to -ni mode...

R :

Des fichiers avec un entrelacement très mauvais et -cache ne font pas très bon ménage ensemble. Essayez -nocache.

4.5. Problèmes de pilote vidéo/audio (vo/ao)

Q : Quand je passe en mode plein écran j'obtiens juste des bandes noires autour de l'image et pas de réel agrandissement en mode plein écran.
Q : Je viens juste d'installer MPlayer. Quand je veux ouvrir un fichier vidéo cela provoque une erreur fatale: Error opening/initializing the selected video_out (-vo) device. Comment puis-je résoudre mon problème?
Q : J'ai des problèmes avec [votre gestionnaire de fenêtre] et les modes plein écran xv/xmga/sdl/x11 ...
Q : L'audio va en désync lors de la lecture d'un fichier AVI.
Q : Mon ordinateur joue les AVI DivX MS dans des résolutions ~ 640x300 et un son MP3 stéréo trop lentement. Quand j'utilise l'option -nosound, tout va BIEN (mais c'est calme).
Q : Comment puis-je utiliser dmix avec MPlayer?
Q : Je n'ai pas de son en jouant une vidéo et j'obtiens des messages similaires à celui ci: AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian) audio_setup: Can't open audio device /dev/dsp: Device or resource busy couldn't open/init audio device -> NOSOUND Audio: no sound!!! Start playing...
Q : Quand je lance MPlayer sous KDE je n'obtiens qu'un écran noir et rien ne se passe. Après environ une minute la vidéo commence à défiler.
Q : J'ai des problèmes de synchro A/V. Certains de mes AVIs sont lus correctement, mais d'autres sont lus à double vitesse !
Q : Quand je lis ce film j'obtiens des désynchro vidéo-audio et/ou MPlayer plante avec le message suivant: DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!
Q : Comment puis-je me débarasser de la désynchronisation A/V lors d'une recherche sur des flux de type RealMedia?
Q : Comment puis-je me débarasser des désynchronisation A/V durant la recherche sur des flux RealMedia?
Q :

Quand je passe en mode plein écran j'obtiens juste des bandes noires autour de l'image et pas de réel agrandissement en mode plein écran.

R :

Votre pilote de sortie vidéo ne supporte pas l'agrandissement en hardware et à partir du moment où l'agrandissement logiciel peut être incroyablement lent, MPlayer ne le fait pas automatiquement. Il est plus que probable que vous utilisez le pilote de sortie vidéo x11 à la place de xv. Essayez d'ajouter -vo xv à la ligne de commande ou lisez la section vidéo pour trouver les pilotes de sortie vidéo alternatif. L'option -zoom explicitement permet l'agrandissement logiciel.

Q :

Je viens juste d'installer MPlayer. Quand je veux ouvrir un fichier vidéo cela provoque une erreur fatale:

Error opening/initializing the selected video_out (-vo) device.

Comment puis-je résoudre mon problème?

R :

Modifiez juste votre périphérique de sortie vidéo. Lancez la commande suivante pour obtenir une liste des pilotes de sortie vidéo disponible:

mplayer -vo help

Après que vous ayez choisi le pilote de sortie vidéo correct, ajoutez le à votre fichier de configuration. Ajoutez

vo = vo_sélectionné

dans ~/.mplayer/config et/ou

vo_driver = vo_sélectionné

dans ~/.mplayer/gui.conf.

Q :

J'ai des problèmes avec [votre gestionnaire de fenêtre] et les modes plein écran xv/xmga/sdl/x11 ...

R :

Lire comment rapporter un bogue et envoyer nous un rapport de bogue en bonne et dû forme. Essayez aussi de tester avec l'option -fstype.

Q :

L'audio va en désync lors de la lecture d'un fichier AVI.

R :

Essayez l'option -bps ou -nobps. Si cela ne s'améliore pas, lisez comment rapporter un bogue et téléchargez le fichier par FTP.

Q :

Mon ordinateur joue les AVI DivX MS dans des résolutions ~ 640x300 et un son MP3 stéréo trop lentement. Quand j'utilise l'option -nosound, tout va BIEN (mais c'est calme).

R :

Votre machine est trop lente ou votre pilote de carte son ne marche pas. Consultez la documentation pour voir si vous pouvez améliorer les performances.

Q :

Comment puis-je utiliser dmix avec MPlayer?

R :

Après avoir configuré votre asoundrc vous devez utiliser -ao alsa:device=dmix.

Q :

Je n'ai pas de son en jouant une vidéo et j'obtiens des messages similaires à celui ci:

    AO: [oss] 44100Hz 2ch Signed 16-bit (Little-Endian)
    audio_setup: Can't open audio device /dev/dsp: Device or resource busy
    couldn't open/init audio device -> NOSOUND
    Audio: no sound!!!
    Start playing...

R :

Vous êtes sous KDE ou GNOME avec le démon son aRtS ou ESD ? Essayez de désactiver le démon son, ou utilisez les options -ao arts ou -ao esd pour faire utiliser aRts ou ESD à MPlayer. Vous devriez aussi lancer ALSA sans l'émulation OSS, essayez de charger les modules ALSA OSS du noyau ou ajouter -ao alsa à votre ligne de commande pour directement utiliser le pilote ALSA de sortie audio.

Q :

Quand je lance MPlayer sous KDE je n'obtiens qu'un écran noir et rien ne se passe. Après environ une minute la vidéo commence à défiler.

R :

Le démon aRts de KDE bloque le périphérique son. Attendez que la vidéo se lance ou désactivez le démon aRts dans le centre de contrôle KDE. Si vous voulez utiliser le son aRts, spécifiez la sortie audio via notre pilote aRts audio natif (-ao arts). Si il échoue ou qu'il n'est pas compilé, essayez SDL (-ao sdl) et assurez-vous que SDL puisse gérer le son aRts. Un autre option est de lancer MPlayer avec artsdsp.

Q :

J'ai des problèmes de synchro A/V. Certains de mes AVIs sont lus correctement, mais d'autres sont lus à double vitesse !

R :

Vous avez une carte son/pilote boguée. Elle est certainement fixée à 44100Hz, et vous essayez de lire un fichier qui a de l'audio à 22050Hz. Essayez le filtre audio resample.

Q :

Quand je lis ce film j'obtiens des désynchro vidéo-audio et/ou MPlayer plante avec le message suivant:

DEMUXER: Too many (945 in 8390980 bytes) video packets in the buffer!

R :

Il peut y avoir plusieurs raisons.

  • Votre CPU et/ou votre carte graphique et/ou votre bus est trop lent. MPlayer affiche un message si c'est le cas (et le compteur de trames sautées augmente vite).

  • Si c'est un AVI, peut-être qu'il a un mauvais entrelacement. Essayez l'option -ni pour trouver une solution. Ou il a peut-être un mauvais entête, dans ce cas -nobps et/ou -mc 0 peut aider.

  • Votre pilote son est bogué. Voir la section audio.

Q :

Comment puis-je me débarasser de la désynchronisation A/V lors d'une recherche sur des flux de type RealMedia?

R :

l'option -mc 10 peut aider.

Q :

Comment puis-je me débarasser des désynchronisation A/V durant la recherche sur des flux RealMedia?

R :

-mc 0.1 peut aider.

4.6. Lecture DVD

Q : Et a propos de la navigation et des menus DVD ?
Q : Et à propos des sous-titres? Est-ce que MPlayer peut les afficher ?
Q : Comment puis-je changer le code de zone de mon lecteur DVD ? Je n'ai pas Windows !
Q : Dois-je être en (setuid) root pour pouvoir lire un DVD ?
Q : Est-il possible de lire/encoder uniquement certains chapitres ?
Q : La lecture de DVD est très lente !
Q : J'ai copié un DVD en utilisant vobcopy. Comment puis-je le lire/l'encoder depuis mon disque dur ?
Q :

Et a propos de la navigation et des menus DVD ?

R :

MPlayer ne supporte pas les menus DVD à cause de sérieuses limitations architecturales qui empèchent de gérer correctement les images fixes et le contenu intéractif. Si vous voulez jouer avec des jolis menus, vous devrez utiliser un autre lecteur comme xine, vlc ou Ogle. Si vous voulez voir la navigation DVD dans MPlayer, vous devrez l'implémenter vous-même, mais soyez conscient que ce sera très dur.

Q :

Et à propos des sous-titres? Est-ce que MPlayer peut les afficher ?

R :

Oui. Voir le chapitre DVD.

Q :

Comment puis-je changer le code de zone de mon lecteur DVD ? Je n'ai pas Windows !

R :

Utilisez l'outil regionset.

Q :

Dois-je être en (setuid) root pour pouvoir lire un DVD ?

R :

Non. Par contre vous devez avoir les droits appropriés sur le périphérique DVD (dans /dev/).

Q :

Est-il possible de lire/encoder uniquement certains chapitres ?

R :

Oui, essayez l'option -chapter.

Q :

La lecture de DVD est très lente !

R :

Utilisez l'option -cache (décrite dans la page de man) et essayez d'activer le DMA pour le lecteur DVD avec l'outil hdparm (décrit dans le chapitre CD).

Q :

J'ai copié un DVD en utilisant vobcopy. Comment puis-je le lire/l'encoder depuis mon disque dur ?

R :

Utilisez l'option -dvd-device pour préciser le répertoire qui contient les fichiers:

mplayer dvd://1 -dvd-device /chemin/du/répertoire

4.7. Demandes de fonctionnalités

Q : Si est MPlayer est en pause et que j'essaie de me déplacer ou de presser n'importe quelle touche, MPlayer sort de pause. Je voudrais être capable de me déplacer dans la vidéo en pause.
Q : J'aimerais me déplacer de +/- 1 trame au lieu de 10 secondes.
Q :

Si est MPlayer est en pause et que j'essaie de me déplacer ou de presser n'importe quelle touche, MPlayer sort de pause. Je voudrais être capable de me déplacer dans la vidéo en pause.

R :

C'est très compliqué a implémenter sans perdre la synchronisation A/V. Toutes les tentatives ont échouées jusqu'à présent, mais les patches sont les bienvenus.

Q :

J'aimerais me déplacer de +/- 1 trame au lieu de 10 secondes.

R :

Vous pouvez avancer d'une frame en avant en pressant .. Si le film n'était pas en pause, il se mettra en pause ensuite (voir les pages de man pour plus de détails). L'avance arrière n'est pas près d'être implémenté dans un proche avenir.

4.8. Encodage

Q : Comment puis-je encoder ?
Q : Cooment puis-je décharger un titre entier de DVD dans un fichier?
Q : Comment puis-je créer des (S)VCDs automatiquement?
Q : Comment puis-je créer des (S)VCDs?
Q : Comment puis-je joindre deux fichiers vidéos ?
Q : Comment puis-je réparer des fichiers AVI avec un index cassé ou un mauvais entrelacement?
Q : Comment puis-je réparer le rapport d'aspect d'un fichier AVI?
Q : Je ne peux pas encoder les sous-titres en AVI!
Q : Comment puis-je encoder seulement certains chapitres d'un DVD?
Q : J'essaie de travailler avec des fichiers de plus de 2Go sur un système de fichier VFAT. Ça marche?
Q : Pourquoi le bitrate affiché par MEncoder est négatif?
Q : Je ne peux pas convertir un fichier ASF en AVI/MPEG-4 (DivX) car il utilise 1000 fps?
Q : Comment puis-je insérer des sous-titres dans le fichier de sortie ?
Q : Comment puis-je encoder uniquement le son d'une vidéo musicale ?
Q : Pourquoi est-ce que les lecteurs de tiers partie n'arrivent pas à jouer des films MPEG-4 encodé par des versions plus tardives que 1.0pre7 de MEncoder?
Q : Comment puis-je encoder un fichier seulement audio?
Q : Comment puis-je jouer les sous-titres inclus dans AVI?
Q : MPlayer n'ira pas...
Q :

Comment puis-je encoder ?

R :

Lisez la section MEncoder.

Q :

Cooment puis-je décharger un titre entier de DVD dans un fichier?

R :

Une fois que vous avez sélectionné votre titre, et êtes sûr qu'il joue bien avec MPlayer, utilisez l'option -dumpstream Par exemple:

mplayer dvd://5 -dumpstream -dumpfile dvd_dump.vob

déchargera le 5ème titre du DVD dans un fichier dvd_dump.vob

Q :

Comment puis-je créer des (S)VCDs automatiquement?

R :

Essayez le script mencvcd du sous-répertoire TOOLS. Avec lui vous pourrez encoder des DVDs ou d'autres films en format VCD ou SVCD et même les graver directement sur un CD.

Q :

Comment puis-je créer des (S)VCDs?

R :

Des versions plus récentes de MEncoder peuvent directement générer des fichiers MPEG-2 qui peuvent être utilisés comme une base pour créer un (S)SVCD et sont plus à même d'être joués sans modification sur n'importe quelle plateformes (par exemple pour partager une vidéo depuis une caméra numérique pour des amis qui n'y connaisse rien en informatique).

Q :

Comment puis-je joindre deux fichiers vidéos ?

R :

Les fichiers MPEG peuvent être mis bout à bout en un seul fichier avec de la chance. Pour les fichiers AVI, vous pouvez utiliser le support de fichier multiple de MEncoder comme cela:

mencoder -ovc copy -oac copy -o out.avi file1.avi file2.avi

Cela ne marchera que si les fichiers sont de la même résolution et utilisent le même codec. Vous pouvez aussi essayer avidemux et avimerge (font partie du panel d'outil de transcode).

Q :

Comment puis-je réparer des fichiers AVI avec un index cassé ou un mauvais entrelacement?

R :

Pour éviter d'avoir à utiliser -idx pour pouvoir rechercher dans des fichiers AVI avec un index cassé ou -ni pour jouer des fichiers AVI avec un mauvais entrelacement, utilisez la commande

mencoder input.avi -idx -ovc copy -oac copy -o output.avi

pour copier les flux vidéo et audio dans un nouveau fichier AVI ce qui régénére l'index et entrelace correctement les données. Bien sûr cela ne peut pas réparer les possibles bogues présents dans les flux vidéo et/ou audio.

Q :

Comment puis-je réparer le rapport d'aspect d'un fichier AVI?

R :

Vous pouvez faire cela et on remercie l'option -force-avi-aspect de MEncoder, ce qui prend le pas sur l'aspect stocké dans l'option vprp de l'en-tête du AVI OpenDML. Par exemple:

mencoder input.avi -ovc copy -oac copy -o output.avi -force-avi-aspect 4/3

Q :

Je ne peux pas encoder les sous-titres en AVI!

R :

Vous devez spécifier l'option -sid correctement!

Q :

Comment puis-je encoder seulement certains chapitres d'un DVD?

R :

Utilisez l'option -chapter correctement, comme: -chapter 5-7.

Q :

J'essaie de travailler avec des fichiers de plus de 2Go sur un système de fichier VFAT. Ça marche?

R :

Non, VFAT ne supporte pas les fichiers plus gros que 2Go.

Q :

Pourquoi le bitrate affiché par MEncoder est négatif?

R :

Parce que le bitrate avec lequel vous avez encodé l'audio est trop grand pour faire tenir le film sur un CD. Vérifiez que libmp3lame est installé correctement.

Q :

Je ne peux pas convertir un fichier ASF en AVI/MPEG-4 (DivX) car il utilise 1000 fps?

R :

Vous devrez fixer le débit à la main avec l'option -ofps, depuis que ASF utilise un débit variable alors que AVI en utilise un fixe.

Q :

Comment puis-je insérer des sous-titres dans le fichier de sortie ?

R :

Passez simplement l'option -sub <nom fichier> (ou -sid, respectivement) à MEncoder.

Q :

Comment puis-je encoder uniquement le son d'une vidéo musicale ?

R :

Cela n'est pas possible directement, mais vous pouvez essayer ça (notez le & à la fin de la commande mplayer):

    mkfifo encode
    mplayer -ao pcm -aofile encode dvd://1 &
    lame vos_options encode music.mp3
    rm encode

Cela vous permet d'utiliser n'importe quel encodeur, pas seulement LAME, remplacez simplement lame par votre encodeur audio préféré dans la commande ci-dessus.

Q :

Pourquoi est-ce que les lecteurs de tiers partie n'arrivent pas à jouer des films MPEG-4 encodé par des versions plus tardives que 1.0pre7 de MEncoder?

R :

libavcodec, la librairie d'encodage native MPEG-4 normalement incluse avec MEncoder, avait pour habitude de règler le FourCC à 'DIVX' quand il encode des vidéos MPEG-4 (le FourCC est un tag AVI pour identifier le logiciel utilisé pour encoder et le logiciel destiné à être utilisé pour le décodage de la vidéo) Cela amène les gens à penser que libavcodec était une librairie d'encodage pour DivX, alors qu'en fait c'est une librairie d'encodage pour MPEG-4 complètement différente qui implémente beaucoup mieux le standard MPEG-4 que DivX ne le fait. Ainsi, le nouveau FourCC par défaut utilisé par libavcodec est 'FMP4', mais vous pouvez surpasser cette action en utilisant l'option -ffourcc de MEncoder. Vous pouvez aussi changer le FourCC des fichiers existant de la même façon:

  mencoder input.avi -o output.avi -ffourcc XVID

Notez que cela règlera le FourCC à XVID plutôt que DIVX. Ceci est recommandé étant donné que DIVX FourCC signifie DivX4, ce qui est un codec MPEG-4 très basic, alorsque DX50 et XVID tout deux signifie MPEG-4 complèt (ASP). Donc, si vous changez le FourCC à DIVX, de mauvais logiciels ou lecteurs hardware peuvent cafouiller sur quelques fonctionalités avançées que libavcodec supporte, mais que DivX ne supporte pas; d'autre part XviD est plus proche de libavcodec en terme de fonctionalitiés, et il est supporté par tous les lecteurs digne de ce nom.

Q :

Comment puis-je encoder un fichier seulement audio?

R :

Utilisez aconvert du sous-répertoire TOOLS qui se situe dans l'arbre source de MPlayer.

Q :

Comment puis-je jouer les sous-titres inclus dans AVI?

R :

Utilisez avisubdump.c du sous-répertoire TOOLS ou lisez ce document sur l'extraction/demultiplexage des sous-titres inclus dans les fichiers AVI OpenDML.

Q :

MPlayer n'ira pas...

R :

voir le sous-répertoire TOOLS pour une collection de scripts et codes aléatoires. TOOLS/README contient la documentation.

Chapitre 5. Utilisation des CD/DVD

5.1. Lecteurs CD/DVD

Les lecteurs modernes de CD-ROM peuvent atteindre de très hautes vitesses de lecture, bien que certains soient capables de fonctionner à des vitesses réduites. Il y a plusieurs raisons possibles pour vouloir changer cette vitesse:

  • Il a été signalé que des lecteurs peuvent commettre des erreurs de lecture à haute vitesse, surtout avec des CD-ROM mal pressés. Diminuer la vitesse peut alors empêcher la perte de données dans ces circonstances.

  • Les lecteurs CD-ROM génèrent souvent un bruit assourdissant, qu'une vitesse réduite peut contribuer à diminuer.

5.1.1. Linux

Vous pouvez réduire la vitesse des lecteurs de CD-ROM IDE avec hdparm, setcd ou cdctl. Ils fonctionnent comme suit:

hdparm -E [vitesse] [périph. cdrom]

setcd -x [vitesse] [périph. cdrom]

cdctl -bS [vitesse]

Si vous utilisez l'émulation SCSI, vous pourriez avoir à appliquer les paramètres au vrai périphérique IDE, et non au périphérique SCSI émulé.

Si vous avez les privilèges root, la commande suivante peut également aider:

echo file_readahead:2000000 > /proc/ide/[périph. cdrom]/settings

Ceci créé un cache de 2 Mo, ce qui est utile pour les CD-ROMs endommagés (rayés). Si vous lui donnez une valeur trop haute, le lecteur ne va pas cesser de s'arrêter et de repartir, ce qui va dramatiquement diminuer les performances. Il est également recommandé d'optimiser votre lecteur de CD-ROM avec hdparm:

hdparm -d1 -a8 -u1 [périph. cdrom]

Ceci permet l'accès DMA, le cache en lecture, et l'IRQ unmasking. (lisez la page de man de hdparm pour plus d'explications).

Référez vous à "/proc/ide/[périph. cdrom]/settings" pour optimiser précisémment votre lecteur CD-ROM.

Les lecteurs SCSI n'ont pas une manière uniforme de règler ces paramètres (Vous en connaissez une ? Dites-la nous!) Il y a un outil qui fonctionne pour les Lecteurs SCSI Plextor.

5.1.2. FreeBSD

Vitesse:

cdcontrol [-f périphérique] speed [vitesse]

DMA:

sysctl hw.ata.atapi_dma=1

5.2. Lecture de DVD

Pour voir la liste complète des options disponibles, veuillez lire la page de man. La syntaxe pour lire un Digital Versatile Disc (DVD) est la suivante:

mplayer dvd://<piste> [-dvd-device <périphérique>]

Exemple:

mplayer dvd://1 -dvd-device /dev/hdc

Le périphérique DVD par défaut est /dev/dvd. Si votre installation diffère, faites un lien symbolique ou spécifiez le périphérique correct en ligne de commande avec l'option -dvd-device.

Nouvelle méthode de lecture DVD (mpdvdkit2).  MPlayer utilise libdvdread et libdvdcss pour le décryptage et la lecture de DVD. Ces deux bibliothèques sont contenues dans le sous-répertoire libmpdvdkit2/ du répertoire source de MPlayer, vous n'avez donc pas besoin de les installer séparément. Nous avons opté pour cette solution car nous devions corriger un bug de libdvdread, et appliquer un patch qui ajoute un cache pour les clés CSS cassées à libdvdcss. Le résultat est bien plus rapide car les clés n'ont pas à être cassées à chaque lecture.

MPlayer peut également utiliser les bibliothèques globales au système libdvdread et libdvdcss mais cette solution n'est pas recommandée, car elle peut provoquer des bogues, des incompatibilités de librairies, et une vitesse moins importante.

Note

En cas de problème de décodage de DVD, essayez de désactiver supermount, ou tous les outils de ce genre.

Structure d'un DVD.  Les disques DVD utilisent tous des secteurs de 2048 octets par seconde avec ECC/CRC. Ils ont généralement un système de fichier UDF sur une seule piste, qui contient divers fichiers (des petits fichiers .IFO et .BUK et de gros (1Go) fichiers .VOB). Ce sont de véritables fichiers et ils peuvent être joués/copiés depuis le système de fichier monté d'un DVD non-crypté.

Les fichiers .IFO contiennent les infos de navigation dans le film (carte des chapitres/titres/angles, table des langues, etc) et sont requis pour lire et interpréter le contenu des .VOB (le film). Les fichiers .BUK sont des backups de ces fichiers. Ils utilisent des secteurs partout, donc vous avez besoin d'utiliser un adressage brut des secteurs sur le disque pour implémenter la navigation DVD. C'est également requis pour décrypter le contenu.

Le support DVD nécessite un accès brut aux secteurs du périphérique. Malheureusement vous devez (sous Linux) être root pour avoir accès aux adresses des secteurs d'un fichier. C'est pourquoi nous n'utilisons pas du tout le pilote de système de fichier du noyau, à la place nous l'avons réimplémenté en espace utilisateur. libdvdread 0.9.x et libmpdvdkit font cela. Le pilote pour le système de fichier UDF du noyau n'est pas requis puisqu'ils ont déjà leur pilote UDF incorporé. De plus le DVD n'a pas besoin d'être monté étant donné que seul l'accès brut aux secteurs est utilisé.

Parfois /dev/dvd ne peut être lu par les utilisateurs; les auteurs de libdvdread ont donc implémenté une couche d'émulation qui transforme les adresses des secteurs en noms de fichier+offsets, pour émuler l'accès brut par-dessus un système de fichier monté ou même un disque dur.

libdvdread accepte même le point de montage au lieu du nom de périphérique pour l'accès brut et regarde dans /proc/mounts pour obtenir le nom de périphérique. Il a été développé pour Solaris, où les noms de périphériques sont alloués dynamiquement.

Le périphérique DVD par défaut est /dev/dvd. Si votre installation diffère, faites un lien symbolique ou spécifiez le bon périphérique en ligne de commande avec l'option -dvd-device.

Certification DVD.  La nouvelle méthode de certification et de décryptage est fait par l'utilisation d'un libdvdcss patché (voir plus haut). La méthode peut être spécifiée au travers de la variable d'environnement DVDCSS_METHOD qui peut être initialisée à key (clé), disk (disque) ou title (titre).

Si rien n'est spécifié il essaie les méthodes suivantes (par défaut: clé, demande de titre):

  1. clé bus: Cette clé est négociée durant l'authentification (une longue suite d'ioctls et d'échanges de diverses clefs cryptographiques) et elle est utilisé pour crypter le titre et la clef du disque avant de les envoyer sur un bus non protégé (pour empêcher les écoutes). La clef bus est nécessaire pour obtenir et pré-décrypter la clef disque cryptée.

  2. clé mise en cache: MPlayer cherche des titres de clé déjà cassée qui sont stockées dans le répertoire ~/.mplayer/DVDKeys (rapide ;).

  3. clé: Si aucune clé n'est disponible dans le cache, MPlayer essaye de décrypter la clé disque avec un ensemble de clés incluses.

  4. disque: Si la méthode clé échoue (ex: pas de clés incluses), MPlayer va casser la clé disque avec un algorithme brute force. Ce processus est intensif pour le CPU et requiert 60 Mo de mémoire (table de hachage 32Bit de 16M) pour stocker temporairement les données. Cette méthode devrait toujours fonctionner (lent).

  5. demande de titre: Avec les clés disque MPlayer demande les clés titre cryptées, qui sont à l'intérieur de secteurs cachés en utilisant ioctl(). La protection de région des lecteurs RPC-2 devrait opérer à cette étape et devrait échouer sur ces lecteurs. Si elle réussit, les clés titre seront cryptées avec les clés bus et disque.

  6. titre: Cette méthode est utilisée si la demande de titre a échoué et ne repose sur aucun échange de clé avec le lecteur DVD. Il utilise une attaque crypto pour deviner la clé titre directement (en trouvant un motif répété dans le contenu VOB décodé et en supposant que le texte en clair correspondant aux premiers octets cryptés est une continuation de ce motif). Cette méthode est également connue sous le nom de "known plaintext attack" ou "DeCSSPlus". Dans de rares cas cela peut échouer car il n'y a pas assez de données cryptées sur le disque pour faire une attaque statistique ou à cause des changements de clé au milieu du titre. C'est la seule façon de décrypter un DVD stocké sur le disque dur ou un DVD avec une mauvaise zone sur un lecteur RPC2 (lent).

Les lecteurs DVD RPC-1 ne protègent les réglages de protection de zone que de façon logicielle. Les lecteurs RPC-2 ont une protection matérielle qui ne permet que 5 changements. Il peut être requis/recommandé de mettre à niveau le firmware en RPC-1 si vous avez un lecteur DVD RPC-2. Les mises à niveau firmware peuvent être trouvées sur cette page de firmware. Si il n'y a pas de mise à niveau de firmware disponible pour votre périphérique, utilisez l' outil de réglage de zone pour changer le code de zone de votre lecteur DVD (sous Linux). Attention: Vous ne pouvez changer la zone que 5 fois.

5.3. Lecture de VCDs

Pour voir la liste complète des options disponibles, veuillez lire la page de man. La syntaxe pour lire un Video CD standard (VCD) est la suivante:

mplayer vcd://<piste> [-cdrom-device <périphérique>]

Exemple:

mplayer vcd://2 -cdrom-device /dev/hdc

Le périphérique VCD par défaut est /dev/cdrom. Si votre installation diffère, faites un lien symbolique ou spécifiez le bon périphérique en ligne de commande avec l'option -cdrom-device.

Note

Au moins les CD-ROM SCSI Plextor et certains Toshiba ont d'horribles performances durant la lecture de VCDs. C'est parce que l'ioctl CDROMREADRAW n'est pas complètement implémenté pour ces lecteurs. Si vous avez des connaissances dans la programmation SCSI, merci de nous aider à implémenter un support SCSI générique pour les VCDs.

À ce propos vous pouvez extraire des données d'un VCD avec readvcd et lire le fichier obtenu avec MPlayer.

Structure d'un VCD.  Un CD Video (VCD) est constitué de secteurs CD-ROM XA, càd CD-ROM mode 2 forme 1 et 2 pistes:

  • La première piste est en mode 2 forme 2 ce qui signifie qu'elle utilise une correction d'erreur L2. La piste contient un système de fichiers ISO-9660 avec 2048 octets/secteur. Ce système de fichiers contient des informations VCD meta-donnée, aussi bien que les frames fixes souvent utilisées dans les menus. Les segments MPEG pour les menus peuvent aussi être stockés dans la première piste, mais les données MPEG doivent être cassées en séries de bouts de 150 secteurs. Le système de fichiers ISO-9660 peut contenir d'autres fichiers ou programmes qui ne sont pas essentiels pour les opérations VCD.

  • La seconde piste et les suivantes sont des pistes MPEG brutes (film) à 2324 octets/secteur, contenant un paquet de données MPEG PS par secteur. Celles-ci sont formatées selon le mode 2 forme 1, donc elles stockent plus de données par secteur au dépend de la perte de quelque correction d'erreur. Il est aussi permis d'avoir des pistes CD-DA dans un VCD aussi bien après la première piste. Sur certains systèmes opérant, il y a quelques astuces qui permettent de faire apparaître ces pistes non-ISO-9660 dans un système de fichiers. Sur d'autres systèmes opérant comme GNU/Linux cela n'est pas le cas (pas encore). Ici les données MPEG ne peuvent être montées. Comme la plupart des films sont à l'intérieur de ce genre de piste, vous devrez tout d'abord essayer vcd://2

  • Il existe également certains disques VCD sans la première piste (une seule piste et pas de système de fichier du tout). Ils sont quand même lisibles, mais ne peuvent pas être montés.

  • La définition d'un Video CD standard est appelée le Philips "White Book" et n'est généralement disponible qu'en ligne étant donné qu'il doit être acheter chez Philips. Plus information détailé sur le Video CD peut être trouvé sur vcdimager documentation.

A propos des fichiers .DAT:  Le fichier de ~600 Mo visible sur la première piste d'un VCD monté n'est pas un vrai fichier! C'est ce qu'on appelle une passerelle iso, créée pour permettre à Windows de gérer de telles pistes (Windows n'autorise pas l'accès brut au périphérique du tout). Sous linux, vous ne pouvez pas copier ou lire de telles pistes (elle contiennent des ordures). Sous Windows c'est possible car son pilote iso9660 émule la lecture brute des pistes dans ce fichier. Pour lire un fichier .DAT vous avez besoin un pilote noyau qui peut être trouvé dans la version Linux de PowerDVD. Il possède un pilote de système de fichier iso9660 modifié (vcdfs/isofs-2.4.X.o), qui est capable d'émuler les pistes brutes au travers de ce fichier .DAT fantôme. Si vous montez le disque en utilisant leur pilote, vous pouvez copier et même lire les fichiers .DAT avec mplayer. Mais cela ne fonctionnera pas avec le pilote iso9660 standard du noyau! Il est recommandé d'utiliser l'option vcd:// à la place. D'autres possibilités pour la copie de VCD sont le nouveau pilote noyau cdfs (qui ne fait pas partie du noyau officiel) qui montre les sessions du CD en temps que fichier image et cdrdao, une application d'enregistrement/copie bit-à-bit).

Chapitre 6. Ports

6.1. Linux

La plateforme principale de développement est Linux sur x86, bien que MPlayer fonctionne sur de nombreux autres ports Linux. Des binaires de MPlayer sont disponibles depuis de nombreuses sources. Par contre, aucun de ces paquets n'est supporté. Rapportez les problèmes à leurs auteurs, pas à nous.

6.1.1. Paquets Debian

Pour construire le paquet Debian, lancez la commande suivante dans le répertoire source de MPlayer:

fakeroot debian/rules binary

Si vous voulez passer des options particulières à configure, vous pouvez définir la variable d'environnement DEB_BUILD_OPTIONS. Par exemple, si vous voulez le support de la GUI et de l'OSD, faites:

DEB_BUILD_OPTIONS="--enable-gui --enable-menu" fakeroot debian/rules binary

Vous pouvez aussi passer quelques variables au Makefile. Par exemple, si vous voulez compiler avec gcc 3.4 même si ce n'est pas celui par défaut:

CC=gcc-3.4 DEB_BUILD_OPTIONS="--enable-gui" fakeroot debian/rules binary

Pour nettoyer l'arborescence des sources, exécutez la commande suivante:

fakeroot debian/rules clean

En tant que root installez le paquet .deb comme d'habitude:

dpkg -i ../mplayer_version.deb

Christian Marillat a construit des paquets Debian non-officiels pour MPlayer, MEncoder et les polices depuis un certain temps, vous pouvez les obtenir (apt-get) depuis sa page web.

6.1.2. Paquets RPM

Dominik Mierzejewski a créé et maintient des paquets RPM officiels de MPlayer pour Red Hat et Fedora Core. Ils sont disponibles sur son repository.

Les paquets RPM pour Mandrake/Mandriva sont disponibles sur le P.L.F., SuSE incluait une version limitée de MPlayer dans sa distribution. Ils l'ont retiré dans leurs dernières versions. Vous pouvez obtenir des RPMs fonctionnels sur links2linux.de.

6.1.3. ARM

MPlayer fonctionne sur les PDAs Linux avec un CPU ARM c-a-d Sharp Zaurus, Compaq Ipaq. La manière la plus facile d'obtenir MPlayer est de récupérer un des paquets OpenZaurus. Si vous voulez le compiler vous-même, vous devriez regarder les répertoires mplayer et libavcodec du répertoire raçine de la distribution OpenZaurus. Ils ont toujours les derniers Makefile et patchs utilisés pour contruire un MPlayer CVS avec libavcodec. Si vous avez besoin d'une GUI, vous pouvez utiliser xmms-embedded.

6.2. *BSD

MPlayer fonctionne sur FreeBSD, OpenBSD, NetBSD, BSD/OS et Darwin. Il y a des versions ports/pkgsrc/fink/etc de MPlayer disponibles qui sont probablement plus faciles à utiliser que nos sources brutes.

Pour construire MPlayer vous aurez besoin de GNU make (gmake - le make natif de BSD ne fonctionnera pas) et une version récente des binutils.

Si MPlayer se plaint de ne pas trouver /dev/cdrom ou /dev/dvd, créez le lien symbolique approprié:

ln -s /dev/votre_périphérique_cdrom /dev/cdrom

Pour utiliser les DLLs Win32 avec MPlayer vous devrez recompiler le noyau avec "option USER_LDT" (à moins d'utiliser FreeBSD-CURRENT, où c'est le cas par défaut).

6.2.1. FreeBSD

Si votre CPU à SSE, recompilez votre noyau avec "options CPU_ENABLE_SSE" (FreeBSD-STABLE ou patches noyau requis).

6.2.2. OpenBSD

À cause des limitations dans les différentes versions de gas (relocation contre MMX), vous aurez besoin de compiler en deux étapes: D'abord assurez-vous que le non-natif est en premier dans votre $PATH et faites un gmake -k, ensuite assurez-vous que la version native est utilisée et faites gmake.

Depuis OpenBSD 3.4 le hack ci-dessus n'est plus nécessaire.

6.2.3. Darwin

Voir la section Mac OS.

6.3. Sun Solaris

MPlayer devrait fonctionner sous Solaris 2.6 ou supérieur. Utilisez le pilote audio de SUN avec l'option -ao sun pour le son.

Sur les UltraSPARCs, MPlayer profite des avantages de leurs extensions VIS (équivalentes au MMX), actuellement uniquement dans libmpeg2, libvo et libavcodec, mais pas dans mp3lib. Vous pouvez regarder un fichier VOB sur un CPU à 400MHz. Vous aurez besoin d'avoir mLib installé.

Pour construire ce paquetage vous aurez besoin de GNU make (gmake, /opt/sfw/gmake), le make natif de Solaris ne fonctionnera pas. Message d'erreur typique si vous utilisez le make de Solaris au lieu de celui de GNU:

   % /usr/ccs/bin/make
   make: Fatal error in reader: Makefile, line 25: Unexpected end of line seen

Sur Solaris SPARC, vous aurez besoin du compilateur C/C++ GNU; cela n'a pas d'importance que le compilateur C/C++ GNU soit configuré avec ou sans l'assembleur GNU.

Sur Solaris x86,vous aurez besoin de l'assembleur GNU et du compilateur C/C++ GNU, configuré pour l'utilisation de l'assembleur GNU ! Le code de MPlayer sur la plateforme x86 fait un usage intensif des instructions MMX, SSE et 3DNOW! qui ne peuvent pas être assemblées en utilisant l'assembleur de Sun /usr/ccs/bin/as.

Le script configure essaie de trouver quel assembleur est utilisé par votre commande "gcc" (au cas ou l'autodétection échoue, utilisez l'option --as=/endroit/ou/vous/avez/installe/gnu-as pour indiquer au script configure où il peut trouver GNU "as" sur votre système).

Message d'erreur de configure sur un système Solaris x86 en utilisant GCC sans assembleur GNU:

   % configure
   ...
   Checking assembler (/usr/ccs/bin/as) ... , failed
   Please upgrade(downgrade) binutils to 2.10.1...

(Solution: Installez et utilisez un gcc configuré avec --with-as=gas)

Erreur typique obtenue en construisant avec un compilateur C GNU qui n'utilise pas GNU as:

   % gmake
   ...
   gcc -c -Iloader -Ilibvo -O4 -march=i686 -mcpu=i686 -pipe -ffast-math
        -fomit-frame-pointer  -I/usr/local/include   -o mplayer.o mplayer.c
   Assembler: mplayer.c
   "(stdin)", line 3567 : Illegal mnemonic
   "(stdin)", line 3567 : Syntax error
   ... more "Illegal mnemonic" and "Syntax error" errors ...

A cause de bogues dans Solaris 8, il se peut que vous ne pouviez pas lire de disques DVD plus gros que 4 Go:

  • Le pilote sd(7D) de Solaris 8 x86 a un bogue quand on accède à un bloc disque >4Go sur un périphérique en utilisant une taille de bloc logique != DEV_BSIZE (c-a-d. CD-ROM et DVD). A cause d'un dépassement des entiers 32Bit, on accède à une adresse disque modulo 4 Go. (http://groups.yahoo.com/group/solarisonintel/message/22516). Ce problème n'existe pas sur la version SPARC de Solaris 8.

  • Un bogue similaire est présent dans le code du système de fichier hsfs(7FS) (alias ISO9660), il se peut que hsfs ne supporte pas les partitions/disques plus gros(ses) que 4GB, toutes les données sont accédées modulo 4Go. (http://groups.yahoo.com/group/solarisonintel/message/22592). Le problème hsfs peut être résolu en installant le patch 109764-04 (sparc) / 109765-04 (x86).

6.4. Silicon Graphics Irix

Vous pouvez soit essayer d'installer le programme d'installation GNU, et (si vous ne l'avez pas mis dans votre chemin par défaut) précisez ensuite l'endroit où il est:

./configure --with-install=/chemin/et/nom/de/l'installation

Soit vous pouvez utilisez l'installation par défaut livrée avec IRIX 6.5, auquel cas vous devrez éditer le Makefile manuellement. Changez les deux lignes suivantes:

  $(INSTALL) -c -m 644 DOCS/mplayer.1 $(MANDIR)/man1/mplayer.1

  $(INSTALL) -c -m 644 etc/codecs.conf $(CONFDIR)/codecs.conf

par:

  $(INSTALL) -m 644 mplayer.1 $(MANDIR)/man1/

  $(INSTALL) -m 644 codecs.conf $(CONFDIR)/

Et ensuite faites (depuis le rép. source de MPlayer):

cp DOCS/mplayer.1 . ; cp etc/codecs.conf .

finalement lancez la construction et l'installation.

6.5. HP UX

Joe Page héberge un HOWTO MPlayer sous HP-UX écrit par Martin Gansser sur sa page web. Avec ses instructions la compilation devrait fonctionner sans modifications. L'information qui suit a été récupéré depuis ce HOWTO.

Vous avez besoin de GCC 3.4.0 ou supérieur, GNU make 3.80 ou supérieur et SDL 1.2.7 ou supérieur. HP cc ne fournira pas un programme qui marche, les versions précedentes de GCC sont boguées. Pour la fonctionnalité OpenGL vous aurez besoin d'installer Mesa et les pilotes de sortie vidéo gl et gl2 devraient marcher, la vitesse pouvant en être très affecté, dépendamment de la vitesse du CPU. Un bon substitut au pauvre système son natif de HP-UX est GNU esound.

Créer le périphérique DVD scanne le bus SCSI avec:

# ioscan -fn

Class          I            H/W   Path          Driver    S/W State    H/W Type        Description
...
ext_bus 1    8/16/5      c720  CLAIMED INTERFACE  Built-in SCSI
target  3    8/16/5.2    tgt   CLAIMED DEVICE
disk    4    8/16/5.2.0  sdisk CLAIMED DEVICE     
					PIONEER DVD-ROM DVD-305 /dev/dsk/c1t2d0 
					/dev/rdsk/c1t2d0
target  4    8/16/5.7    tgt   CLAIMED DEVICE
ctl     1    8/16/5.7.0  sctl  CLAIMED DEVICE     Initiator
 	                /dev/rscsi/c1t7d0 /dev/rscsi/c1t7l0 /dev/scsi/c1t7l0
...

La sortie d'écran montre un lecteur DVD-ROM Pioneer à l'adresse SCSI 2. L'instance de la carte pour le chemin hardware 8/16 est 1.

Créer un lien depuis le prériphérique brut vers le périphérique DVD.

# ln -s /dev/rdsk/c<SCSI bus instance>t
<SCSI target ID>d<LUN> 
/dev/<device>

Exemple:

# ln -s /dev/rdsk/c1t2d0 /dev/dvd

Ci-dessous sont exposées les solutions pour certains problèmes communs:

  • Plante au démarrage avec le message d'erreur suivant:

    /usr/lib/dld.sl: Unresolved symbol: finite (code) from /usr/local/lib/gcc-lib/hppa2.0n-hp-hpux11.00/3.2/../../../libGL.sl
    

    Cela signifie que la fonction .finite(). n'est pas disponible dans la librairie standard math de HP-UX. A la place, il y a .isfinite().. Solution: Utiliser le dernier fichier dépôt Mesa.

  • Plante à la lecture avec le message d'erreur suivant:

    /usr/lib/dld.sl: Unresolved symbol: sem_init (code) from /usr/local/lib/libSDL-1.2.sl.0
    

    Solution: Utiliser l'option extralibdir lors de configure --with-extralibdir="/usr/lib -lrt"

  • MPlayer segfaults avec un message comme celui-ci:

    Pid 10166 received a SIGSEGV for stack growth failure.
    Possible causes: insufficient memory or swap space, or stack size exceeded maxssiz.
    Segmentation fault
    

    Solution: Le noyau HP-UX a une taille de pile par défaut de 8MO(?) par processus. (des patches 11.0 et de plus récent 10.20 vous permettront d'augmenter maxssiz jusqu'à 350MB pour les programmes 32-bit). Vous aurez besoin d'étendre maxssiz et de recompiler le noyau (et redémarrer). Vous pouvez utiliser SAM pour ce faire. (Pendant ce temps, aller voir le paramètre maxdsiz pour le montant maximum de données qu'un programme peut utiliser. Cela dépend de vos applications, si la valeur par défaut de 64MO est suffisante ou non.)

6.6. QNX

Fonctionne. Vous devrez télécharger SDL pour QNX, et l'installer. Ensuite lancez MPlayer avec les options -vo sdl:photon et -ao sdl:nto, et ça devrait être rapide.

La sortie -vo x11 fonctionne encore plus lentement que sous Linux, car QNX ne dispose que d'une émulation X qui est TRÈS lente. Utilisez SDL.

6.7. Windows

Oui, MPlayer tourne sous Windows via Cygwin et MinGW. Il n'a pas encore de GUI, mais la version en ligne de commande est complètement opérationnelle. Vous devriez jeter un oeil à la liste de diffusion Mplayer-cygwin pour obtenir de l'aide et les dernières informations. Les binaires officiels de Windows peuvent être récupérés sur la page de téléchargement. Les paquetages d'installation et de simple frontends GUI sont disponibles à partir de sources externe, nous avons collecté ensuite dans la section Windows de notre page de projets.

Si vous souhaitez éviter d'utiliser la commande en ligne, une astuce toute simple est de mettre un raccourci sur votre bureau qui contient quelque chose comme ce qui suit dans la section d'execution:

c:\chemin\vers\mplayer.exe %1

Cela va faire lire à MPlayer n'importe quel film qui est laché sur le raccourci. Ajoutez -fs pour le mode plein écran.

Les meilleurs résultats sont obtenus avec le codec vidéo DirectX natif (-vo directx) et le pilote waveout natif de Windows (-ao win32). Vous pouvez aussi utiliser OpenGL et SDL, mais les performances d'OpenGL sont très variables suivant les systèmes et SDL est connu pour distordre le son et l'image et planter sur certains systèmes. Si l'image est distordue, essayez de désactiver l'accélération matérielle avec -vo directx:noaccel. Téléchargez les fichiers d'entête DirectX 7 pour compiler le pilote de sortie vidéo DirectX. De plus vous devez avoir DirectX 7 ou supérieur pour que ce pilote fonctionne.

VIDIX fonctionne maintenant sous Windows avec -vo winvidix, bien que ce soit toujours expérimental et que cela requiert une configuration manuelle. Téléchargez dhahelper.sys ou dhahelper.sys (avec support des MTRR) et copiez le dans le répertoire libdha/dhahelperwin de votre arborescence MPlayer. Ouvrez une console et placez-vous dans ce répertoire. Ensuite tapez

gcc -o dhasetup.exe dhasetup.c

et exécutez

dhasetup.exe install

en tant qu'Administrateur. Ensuite vous devez rebooter. Lorsque c'est fait, copiez les fichiers .so de vidix/drivers dans le répertoire mplayer/vidix relatif à votre mplayer.exe.

Pour de meilleurs résultats MPlayer devrait utiliser une palette que votre carte graphique supporte de façon matérielle. Malheureusement, de nombreux pilotes graphiques Windows renvoient certaines palettes alors que la carte ne le supporte pas. Pour le vérifier, essayez

mplayer -benchmark -nosound -frames 100 -vf format=palette film

palette peut être n'importe quelle palette affichée par l'option -vf format=fmt=help. Si vous trouvez une palette que votre carte gère particulièrement mal, -vf noformat=palette l'empèchera d'être utilisée. Ajouter cela à votre fichier de conf pour ne plus l'utiliser de façon permanente.

There are special codec packages for Windows available on our codecs page to allow playing formats for which there is no native support yet. Put the codecs somewhere in your path or pass --with-codecsdir=c:/path/to/your/codecs (alternatively --with-codecsdir=/path/to/your/codecs only on Cygwin) to configure. We have had some reports that Real DLLs need to be writable by the user running MPlayer, but only on some systems (NT4). Try making them writable if you have problems.

Il y a des paquetages de codec spécial pour Windows disponible sur notre page de codecs pour permettre de jouer les formats qui ne sont pas encore nativement supportés. Placez les codecs quelque part dans votre patch ou passez --with-codecsdir=c:/chemin/de/vos/codecs (éventuellement --with-codecsdir=/chemin/de/vos/codecs uniquement sous Cygwin) à configure. Nous avons eu quelques retours indiquant que les DLLs Real doivent être accessibles en écriture pour l'utilisateur ayant lancé MPlayer, mais seulement sur certains systèmes (NT4). Essayez de les rendre accessibles en écriture si vous avez des problèmes.

Vous pouvez lire des VCDs en jouant les fichiers .DAT ou .MPG que Windows affiche sur les VCDs. Cela fonctionne tout simplement comme cela (changez la lettre de votre lecteur de CD-ROM):

mplayer d:/mpegav/avseq01.dat

Les DVDs fonctionnent également, ajustez -dvd-device à la lettre de votre lecteur DVD-ROM:

mplayer dvd://<titre> -dvd-device d:

La console Cygwin/MinGW est plutôt lente. Il semble que rediriger la sortie ou utiliser l'option -quiet améliore les performances. Le rendu direct (-dr) peut également aider. Si la lecture est erratique, essayez -autosync 100. Si certaines de ces options vous sont utiles, vous pouvez les placer dans votre fichier de config.

Note

Sous Windows la détection CPU en cours d'execution (runtime CPU detection) désactive le support SSE en raison de plantages récurrent et dur à tracer liés au SSE. Si vous souhaitez avoir le support SSE sous Windows, vous devrez compiler sans runtime CPU detection.

Si vous avez un Pentium 4 et que vous expériencez un plantage lors de l'utilisation des codecs RealPlayer vous pourriez vouloir désactiver le support hyperthreading.

6.7.1. Cygwin

Vous devez utiliser Cygwin 1.5.0 ou supérieur pour pouvoir compiler MPlayer.

Les fichiers d'entête DirectX doivent être décompressés dans /usr/include/ ou dans /usr/local/include/.

Les instructions et les fichiers pour faire tourner SDL sous Cygwin peuvent être trouvés sur le site de libsdl.

6.7.2. MinGW

Installer une version de MinGW qui puisse compiler MPlayer était considéré comme compliqué, mais fonctionne désormais sans modifications. Installez simplement MinGW 3.1.0 ou plus récent et MSYS 1.0.9 ou plus récent et dites au postinstall de MSYS que MinGW est installé.

Décompressez les fichiers d'entête de DirectX dans /mingw/include/.

Le support des entêtes compressées MOV requiert zlib, que MinGW ne fournit pas par défaut. Configurez-le avec --prefix=/mingw et installez-le avant de compiler MPlayer.

De complètes instructions pour compiler MPlayer et les librairies nécessaires sont disponibles sur MPlayer MinGW HOWTO.

6.8. Mac OS

MPlayer devrait compiler sans changement sur Mac OS X 10.2 et au dessus. Le compilateur préféré étant la version Apple de GCC 3.x ou plutard. Si vous avez Mac OS X 10.3.9 ou plutard et QuickTime 7 vous pouvez utiliser le pilote macosx de sortie vidéo.

6.8.1. MPlayer OS X

Vous pouvez obtenir un GUI natif et un binaire pré-compilé de MPlayer pour Mac OS X depuis le projet MPlayerOSX, mais soyez averti: ce projet n'est plus du tout actif.

Heureusement, MPlayerOSX a été repris en main par un membre de l'équipe de MPlayer. Des versions preview sont disponibles sur notre page de téléchargement et une version officielle ne devrait pas tarder.

Afin de compiler MPlayerOSX depuis le source vous-même, vous avez besoin du module mplayerosx, du module main et d'une copie du module CVS main renommé en main_noaltivec. mplayerosx est le frontend GUI, main est un MPlayer et main_noaltivec est le MPlayer compilé sans le support AltiVec.

Pour récupérer les modules CVS utilisez:

cvs -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer login
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P mplayerosx
cvs -z3 -d:pserver:anonymous@mplayerhq.hu:/cvsroot/mplayer co -P main

Pour compiler MPlayerOSX vous aurez besoin de mettre en place quelque chose comme ceci:

MPlayer_repertoire_source
   |
   |--->main           (MPlayer CVS source)
   |
   |--->main_noaltivec (MPlayer CVS source configuré avec --disable-altivec)
   |
   |--->mplayerosx     (MPlayerOSX CVS source)

Premièrement vous avez besoin de compiler main et main_noaltivec.

Ensuite, réglez une variable globale:

export MACOSX_DEPLOYMENT_TARGET=10.3

Et, configure:

Si vous configurez pour un CPU G4 ou au-dessus avec le support AltiVec, faire comme suit:

./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11

Si vous configurez pour un G3, faire comme suit:

./configure --with-termcaplib=ncurses.5 --disable-gl --disable-x11
--disable-altivec

Vous pourriez avoir besoin d'éditer config.mak et changer le -mcpu et -mtune de 74XX à G3.

Continuez avec

make

ensuite placez vous dans le répertoire mplayerosx et tapez

make dist

Cela créera une archive compressée .dmg avec le binaire prêt à l'emploi.

Vous pouvez aussi utiliser le projet Xcode 2.1; le vieux projet pour Xcode 1.x n'étant plus du tout en fonction.

6.9. Amiga/MorphOS (GeekGadgets)

Les gens de chez www.amigasoft.net font des paquetages actualisés pour MPlayer et MEncoder.

Nicholas Det de Genesi a réalisé un gros et puissant portage de MPlayer pour MorphOS. Malheureusement, il est basé sur la série 0.90.

Téléchargez-le sur MorphZone:

Chapitre 7. Encodage avec MEncoder

Pour avoir la liste complète des options disponibles de MEncoder et des exemples, voir la page de man. Pour une série d'exemples pratiques et de guides détaillés sur l'utilisation des nombreux paramètres d'encodage, lisez les encoding-tips (en anglais) qui ont été collectés sur de nombreuses threads de la liste de diffusion mplayer-users. Cherchez dans les archives pour trouver les discussions à propos de tous les aspects et problèmes relatifs à l'encodage avec MEncoder.

7.1. Encodage MPEG-4 ("DivX") deux passes

le nom vient du fait que cette méthode encode le fichier deux fois. Le premier encodage (du mode deux passes) créé quelques fichiers temporaires (*.log) avec une taille de quelques méga-octets, ne les détruisez pas tout de suite (vous pouvez effacer l'AVI). Lors de la seconde passe, le fichier de sortie deux passes est créé, en utilisant les données bitrate des fichiers temporaires. Le fichier résultant aura une image de bien meilleure qualité. Si c'est la première fois que vous entendez parler de ça, vous devriez consulter les guides disponibles sur le Net.

Exemple 7.1. copie de la piste audio

Encodage deux passes d'un DVD en AVI MPEG-4 ("DivX") pendant la copie de la piste audio.

mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o film.avi
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o film.avi

Exemple 7.2. encodage de la piste audio

Encodage deux passes d'un DVD en AVI MPEG-4 ("DivX") pendant la conversion de la piste audio en MP3.

mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac mp3lame -lameopts vbr=3 -o film.avi
mencoder dvd://2 -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac mp3lame -lameopts vbr=3 -o film.avi

7.2. Encodage au format MPEG

MEncoder peut créer des fichiers au format MPEG (MPEG-PS). Ceci n'est probablement utile qu'avec le codec mpeg1video de libavcodec, car les lecteurs - excepté MPlayer - attendent de la vidéo MPEG-1, et de l'audio MPEG-1 layer 2 (MP2) dans les fichiers MPEG.

Cette fonction n'est pas vraiment utile actuellement, car elle a probablement de nombreux bogues, mais, plus important encore, parce qu'actuellement MEncoder ne peut pas encoder l'audio MPEG-1 layer 2 (MP2), qui est attendu par tous les autres lecteurs dans les fichiers MPEG.

Pour changer le format de sortie de MEncoder, utilisez l'option -of mpeg.

Exemple:

mencoder -of mpeg -ovc lavc -lavcopts vcodec=mpeg1video -oac copy autres options
media.avi -o sortie.mpg

7.3. Redimensionnement des films

Souvent le besoin de redimensionner les images d'un film se fait sentir. Les raisons peuvent être multiples: diminuer la taille du fichier, la bande passante du réseau, etc. La plupart des gens redimensionnent même en convertissant des DVDs ou SVCDs en AVI DivX. Si vous désirez redimensionner, lisez la section Préserver le ratio d'aspect.

Le processus de zoom est géré par le filtre vidéo scale: -vf scale=largeur:hauteur. Sa qualité peut être réglée avec l'option -sws. Si elle n'est pas spécifiée, MEncoder utilisera 2: bicubique.

Utilisation:

mencoder entree.mpg -ovc lavc -lavcopts vcodec=mpeg4 -vf scale=640:480 -o sortie.avi

7.4. Copie de flux

MEncoder peut gérer les flux entrant de deux façons: les encoder ou les copier Cette section parle de la copie.

  • Flux vidéo (option -ovc copy): on peut faire des choses sympa :) comme, placer (pas convertir) de la vidéo FLI ou VIVO ou MPEG1 dans un fichier AVI ! Bien sûr seul MPlayer peut lire de tels fichiers :) et ça n'a probablement aucun intérêt. Concrètement: copier des flux vidéo peut être utile par exemple quand seul le flux audio doit être encodé (comme du PCM non-compressé en MP3).

  • Flux audio (option -oac copy): très simple. Il est possible de prendre un fichier audio externe (MP3, WAV) et de le multiplexer dans le flux sortant. Utilisez l'option -audiofile nomfichier pour cela.

7.5. Réparer les fichiers AVIs ayant un index défectueux

Facile. Nous copions simplement les flux vidéo et audio, et MEncoder génère l'index. Bien sûr cela ne peut pas réparer les bogues possibles dans les flux vidéo et/ou audio. Il répare également les fichiers avec un entrelacement endommagé, ainsi l'option -ni ne sera plus requise.

Commande:

mencoder -idx entree.avi -ovc copy -oac copy -o sortie.avi

7.5.1. Assembler plusieurs fichiers AVI

Un effet secondaire de la fonction de réparation d'AVI permet à MEncoder d'assembler 2 fichiers AVI (ou plus):

Commande:

cat 1.avi 2.avi > 3.avi 
mencoder -noidx -ovc copy -oac copy -o sortie.avi 3.avi

Note

Cela suppose que 1.avi et 2.avi utilisent les mêmes codecs, résolution, débit, etc. et qu'au moins 1.avi ne soit pas endommagé. Vous pouvez avoir besoin de réparer vos fichiers AVI d'entrée d'abord, comme décrit ci-dessus.

7.6. Encodage avec la famille de codecs libavcodec

libavcodec permet un encodage simple dans de nombreux formats audio et vidéo intéressants. Vous pouvez encoder avec les codecs suivants (plus ou moins à jour):

Nom codecDescription
mjpeg Motion JPEG
ljpeg Lossless JPEG (sans perte)
h263 H.263
h263p H.263+
mpeg4 standard MPEG-4 ISO (DivX 5, compatible XVID)
msmpeg4 variante pré-standard MPEG-4 de MS, v3 (alias DivX3)
msmpeg4v2 pré-standard MPEG-4 par MS, v2 (utilisé dans les anciens fichiers asf)
wmv1 Windows Media Video, version 1 (alias WMV7)
wmv2 Windows Media Video, version 2 (alias WMV8)
rv10 un vieux codec RealVideo
mpeg1video video MPEG-1
mpeg2video video MPEG-2
huffyuv compression sans perte
asv1 ASUS Video v1
asv2 ASUS Video v2
ffv1 codec vidéo sans perte de FFmpeg

La première colonne contient le nom du codec qui devrait être passé après la config vcodec, comme: -lavcopts vcodec=msmpeg4

Un exemple, avec compression MJPEG:

mencoder dvd://2 -o titre2.avi -ovc lavc -lavcopts vcodec=mjpeg -oac copy

7.7. Encodage à partir de multiples fichiers image (JPEG, PNG, TGA, SGI)

MEncoder est capable de créer des fichiers à partir de un ou plusieurs fichiers JPEG, PNG ou TGA. Avec une simple copie de trame il peut créer des fichiers MJPEG (Motion JPEG), MPNG (Motion PNG) ou MTGA (Motion TGA).

Explication du processus:

  1. MEncoder décode le(s) image(s) d'origine avec libjpeg (pour décoder des PNGs, il utilisera libpng).

  2. MEncoder envoie alors l'image décodée au compresseur vidéo choisi (DivX4, XviD, ffmpeg msmpeg4, etc.).

Exemples.  Une explication de l'option -mf peut être trouvée dans la page de man.

Créer un fichier DivX4 à partir de tous les fichiers JPEG du répertoire courant:

mencoder -mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o sortie.avi

Créer un fichier MPEG-4 à partir de quelques fichiers JPEG du répertoire courant:

mencoder mf://trame001.jpg,trame002.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts vcodec=mpeg4 -oac copy -o sortie.avi

Créer un fichier Motion JPEG (MJPEG) à partir de tous les fichiers JPEG du répertoire courant:

mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc copy -oac copy -o sortie.avi

Créer un fichier non-compressé à partir de tous les fichiers PNG du répertoire courant:

mencoder mf:// -mf w=800:h=600:fps=25:type=png -ovc raw -oac copy -o sortie.avi 

Note

La largeur doit être un entier multiple de 4, c'est une limitation du format AVI RGB brut.

Créer un fichier Motion PNG (MPNG) à partir de tous les fichiers PNG du répertoire courant:

mencoder mf://*.png -mf w=800:h=600:fps=25:type=png -ovc copy -oac copy -o sortie.avi

Créer un fichier Motion TGA (MTGA) à partir de tous les fichiers TGA du répertoire courant:

mencoder mf://*.tga -mf w=800:h=600:fps=25:type=tga -ovc copy -oac copy -o sortie.avi

7.8. Extraction des sous-titres DVD dans un fichier Vobsub

MEncoder est capable d'extraire les sous-titres d'un DVD dans des fichiers au format VOBsub. Ils consistent en une paire de fichiers terminant par .idx et .sub et sont généralement compressés dans une seule archive .rar. MPlayer peut les lire avec les options -vobsub et -vobsubid.

Vous spécifiez le nom de base (c-à-d. sans extension .idx ou .sub) des fichiers de sortie avec -vobsubout et l'index pour ces sous-titres dans le fichier final avec -vobsuboutindex.

Si l'entrée n'est pas un DVD vous pouvez utiliser -ifo pour indiquer le fichier .ifo requis pour construire le fichier .idx final.

Si l'entrée n'est pas un DVD et que vous n'avez pas de fichier .ifo vous aurez besoin d'utiliser l'option -vobsubid pour lui permettre de savoir quel id langue placer dans le fichier .idx.

Chaque étape ajoutera les sous-titres actifs dans les fichiers .idx et .sub déjà existants. Vous devrez donc les enlever avant de commencer.

Exemple 7.3. Copier deux sous-titres d'un DVD pendant l'encodage deux passes

rm subtitles.idx subtitles.sub
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -vobsubout subtitles -vobsuboutindex 0 -sid 2
mencoder dvd://1 -oac copy -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -vobsubout subtitles -vobsuboutindex 1 -sid 5

Exemple 7.4. Copier les sous-titres français depuis un fichier MPEG

rm soustitres.idx soustitres.sub
mencoder film.mpg -ifo film.ifo -vobsubout soustitres -vobsuboutindex 0 -vobsuboutid fr -sid 1

7.9. Préserver le ratio d'aspect

Les fichiers des DVDs et des SVCDs (c-à-d MPEG1/2) contiennent une valeur de ratio d'aspect, qui décrit comment le lecteur devrait dimensionner le flux vidéo, pour que les personnages n'aient pas des "têtes d'oeuf" (ex. 480x480 + 4:3 = 640x480). De toute façon, quand vous encodez un fichier AVI (DivX), vous devez être conscients que les entêtes AVI ne stockent pas cette valeur. Redimensionner le film est assez infâme et coûteux en temps, il doit y avoir une meilleur solution !

Il y en a une.

MPEG-4 a une fonction spécifique: le flux vidéo peut contenir le ratio d'aspect requis. Oui, tout comme les fichiers MPEG-1/2 (DVD, SVCD) et H.263. Malheureusement, il n'y a aucun lecteur vidéo qui supporte cet attribut. Excepté MPlayer.

Cette fonction ne peut être utilisé qu'avec le codec mpeg4 de libavcodec. Gardez bien à l'esprit que même si MPlayer lit correctement le fichier créé, les autres lecteurs utiliseront un mauvais ratio d'aspect.

Vous devriez vraiment couper les bandes noires au dessus et en dessous de l'image. Voir la page de man pour l'utilisation des filtres cropdetect et crop.

Utilisation

mencoder echantillon-svcd.mpg -ovc lavc -lavcopts vcodec=mpeg4:autoaspect -vf
crop=714:548:0:14 -oac copy -o sortie.avi

7.10. Inter/intra matrices personnalisées

Avec cette fonction de libavcodec vous pouvez utiliser des matrices personnalisées inter (trames-I/trames-clé) et intra (trames-P/trames prévues). Elle est supportée par de nombreux codecs: mpeg1video et mpeg2video fonctionnent.

Une utilisation typique de cette fonction est d'utiliser les matrices recommandées par les spécifications KVCD.

La matrice de quantification "Notch" de KVCD:

Intra:

 8  9 12 22 26 27 29 34
 9 10 14 26 27 29 34 37
12 14 18 27 29 34 37 38
22 26 27 31 36 37 38 40
26 27 29 36 39 38 40 48
27 29 34 37 38 40 48 58
29 34 37 38 40 48 58 69
34 37 38 40 48 58 69 79

Inter:

16 18 20 22 24 26 28 30
18 20 22 24 26 28 30 32
20 22 24 26 28 30 32 34
22 24 26 30 32 32 34 36
24 26 28 32 34 34 36 38
26 28 30 32 34 36 38 40
28 30 32 34 36 38 42 42
30 32 34 36 38 40 42 44

Utilisation:

$ mencoder entree.avi -o sortie.avi -oac copy -ovc lavc
-lavcopts inter_matrix=...:intra_matrix=...

$ mencoder entree.avi -ovc lavc -lavcopts
vcodec=mpeg2video:intra_matrix=8,9,12,22,26,27,29,34,9,10,14,26,27,29,34,37,
12,14,18,27,29,34,37,38,22,26,27,31,36,37,38,40,26,27,29,36,39,38,40,48,27,
29,34,37,38,40,48,58,29,34,37,38,40,48,58,69,34,37,38,40,48,58,69,79
:inter_matrix=16,18,20,22,24,26,28,30,18,20,22,24,26,28,30,32,20,22,24,26,
28,30,32,34,22,24,26,30,32,32,34,36,24,26,28,32,34,34,36,38,26,28,30,32,34,
36,38,40,28,30,32,34,36,38,42,42,30,32,34,36,38,40,42,44 -oac copy -o
svcd.mpg

7.11. Créer un rip MPEG-4 ("DivX") de haute qualité à partir d'un DVD

Une question fréquemment posée est "Comment faire le meilleur rip DVD possible ? Peut importe la taille du fichier, je veux simplement la meilleure qualité."

Cette question est peut être un peu mal posée. Après tout, si vous ne vous souciez pas de la taille du fichier, pourquoi ne pas simplement copier le flux MPEG-2 du DVD entier ? Bien sûr, votre AVI finira par faire 5Go, mais si vous voulez la meilleure qualité et ne vous souciez pas de la taille, ceci est probablement votre meilleure option.

En fait, la raison pour laquelle vous voulez convertir un DVD en MPEG-4 est que vous tenez réellement compte de la taille du fichier.

Il est difficile de proposer une recette sur la façon de créer des rips DVD de très haute qualité. Il y a de nombreux facteurs à prendre en compte, et vous devriez comprendre ces détails, ou vous serez déçus par les résultats. Ci-dessous nous allons examiner quelques-uns de ces problèmes, et voir un exemple. Nous supposerons que vous utilisez libavcodec pour encoder la vidéo, bien que cette exemple théorique s'applique également à d'autres codecs.

L'hypothèse principale de ce guide est que vous n'avez pas de contraintes de taille particulière et que perdre des octets en échange d'une meilleure qualitée ne vous dérange pas. Bien que la plupart des informations présentées ici soient utiles dans la plupart des cas, une partie peut vous poser problème si vous prévoyez une certaine taille, pour faire tenir une vidéo sur un CD par exemple.

7.11.1. Quantiseur constant contre deux passes

Il y a trois approches possibles pour encoder une vidéo: débit constant (CBR), quantiseur constant, et deux-passes (ABR, ou débit moyen).

Dans chacun de ces modes, libavcodec sépare les trames vidéos en macroblocs de 16x16 pixels et applique ensuite un quantiseur sur chaque macrobloc. Plus le quantiseur est bas, plus la qualité est bonne et le débit est gros. La méthode utilisée par libavcodec pour déterminer quel quantiseur utiliser varie et est très réglable (ceci est une simplification à l'extrème du processus, mais il est utile de comprendre le principe de base).

Lorsque vous spécifiez un débit constant, libavcodec encodera la vidéo en éliminant juste assez de détails pour rester en dessous du débit demandé. Si vous ne vous souciez pas de la taille de fichier, vous pouvez utiliser le CBR et spécifier un débit infini (en pratique, cela signifie une valeur suffisamment grande pour ne pas avoir de limite, comme 10000Kbit). Sans réelle restriction de débit, en définitive libavcodec utilisera le plus bas quantiseur possible pour chaque macrobloc (tel que spécifié par vqmin, qui vaut 2 par défaut). Si vous spécifiez un débit si bas que libavcodec soit forcé d'utiliser un quantiseur plus haut, alors vous êtes certainement en train de massacrer la qualité de votre vidéo. En général, vous devriez éviter le CBR si vous vous souciez de la qualité.

Avec un quantiseur constant libavcodec utilise le même quantiseur, spécifié par l'option vqscale, sur chaque macrobloc. Si vous voulez un rip de la meilleure qualité possible, là encore en ignorant le débit, vous pouvez utiliser vqscale=2. Cela donnera le même débit et le même PSNR (Peak Signal-to-Noise Ratio, rapport signal sur bruit de crête) que le CBR avec vbitrate=infini et la valeur de vqmin par défaut (2).

Le problème de la quantification constante est qu'elle utilise le quantiseur demandé même si le macrobloc n'en a pas besoin. En fait, il doit être possible d'utiliser un quantiseur plus haut sur un macrobloc sans sacrifier de la qualité visuelle. Pourquoi gaspiller des bits avec un quantiseur inutilement bas ?

Avec l'encodage deux-passes, la première passe va ripper le film comme en CBR, mais va garder un log des propriétés de chaque trame. Ces données sont ensuites utilisées pendant la seconde passe de façon à choisir intelligemment quels quantiseurs utiliser. Lors des scènes d'action rapide ou celles ayant peu de détails, des quantiseurs plus haut seront utilisés, et durant les scènes avec peu de mouvements ou avec beaucoup de détails, des quantiseurs plus bas seront utilisés.

Si vous utilisez vqscale=2, alors vous gaspillerez des bits. Si vous utilisez vqscale=3, vous n'aurez pas la meilleur qualité de rip. Supposez que vous rippez un DVD avec vqscale=3, et que le résultat soit 1800Kbit. Si vous faites un encodage deux passes avec vbitrate=1800, la vidéo produite aura une meilleur qualité pour le même débit.

Maintenant que vous êtes convaincu que l'encodage deux passes est la bonne méthode, la vraie question est maintenant de savoir quel débit utiliser. La réponse est qu'il n'y a pas de réponse unique. Idéalement, vous devriez choisir un débit offrant un compromis entre qualité et taille de fichier. Cela varie suivant la source vidéo.

Un bon point de départ pour un rip de très haute qualité est environ 2000Kbit, plus ou moins 200Kbit. Pour les vidéos comportant beaucoup d'actions ou de détails, ou si vous avez de très bon yeux, vous pouvez choisir 2400 ou 2600. Pour certains DVDs, vous pourriez voir une différence à 1400Kbit. C'est une bonne idée que d'essayer sur des scènes à différents débits pour s'en rendre compte.

7.11.2. Découpage et Redimensionnement

La résolution native des DVDs est de 720x480 pour NTSC, et 720x576 pour PAL, mais il y a un drapeau d'aspect qui spécifie si il s'agit de plein-écran (4:3) ou d'écran large (16:9). La plupart (si ce n'est tous) des DVDs écran large ne sont pas tout à fait 16:9, ils peuvent être soit en 1.85:1, soit en 2.35:1 (cinémascope). Cela signifie qu'il va y avoir des bandes noires qu'il va falloir découper.

MPlayer fournit un filtre de détection de bandes noires qui détermine la zone à découper (-vf cropdetect). Puisque MPEG-4 utilise des macroblocs de 16x16, vous devez vous assurer que la vidéo que vous encodez est un multiple de 16, sinon la qualité sera dégradée, surtout en bas débit. Vous pouvez faire ceci en arrondissant la longueur et la largeur du rectangle de découpage au multiple de 16 le plus proche. Pour le découpage, vous pouvez augmenter l'offset y de la moitié de la différence entre l'ancienne et la nouvelle hauteur de façon à ce que la vidéo obtenue soit prise à partir du centre de la trame. Et à cause de la façon dont est faite la vidéo des DVDs, assurez-vous que l'offset soit un nombre pair (en fait, en règle générale, n'utilisez jamais de nombres impairs lorsque vous découpez et redimensionnez une vidéo). Si perdre quelques pixels vous incommode, vous pouvez préférer redimensionner la vidéo. Nous allons voir cela dans l'exemple plus bas.

De plus, faites attention aux pixels "à moitié noirs" sur les bords. Assurez-vous de les découper également, ou sinon vous gaspillerez des bits qui seraient mieux dépensés ailleurs.

Une fois tout ceci fait, vous obtiendrez probablement une vidéo dont les pixels n'ont pas vraiment un rapport de 1.85:1 ou 2.35:1, mais quelque chose d'approchant. Vous pouvez calculer le nouvel ratio d'aspect manuellement, mais MEncoder offre une option pour libavcodec appelée autoaspect qui le fera pour vous. Ne redimmensionnez pas la vidéo pour obtenir des pixels carrés, à moins que vous n'aimiez gaspiller votre espace disque. Le redimensionnement devrait être appliqué lors de la lecture, et le lecteur utilisera l'aspect stocké dans le fichier AVI pour déterminer la résolution appropriée.

7.11.3. Audio

L'audio est un problème bien plus simple à résoudre: laissez-le juste tel-quel. Même les flux AC3 5.1 sont au plus en 448Kbit/s, dont chaque bit est utile. Vous pouvez être tenté de convertir l'audio en Ogg Vorbis de haute qualité, mais ne pas avoir de décodeur AC3 aujourd'hui ne veut pas dire que vous n'en aurez pas demain. Préparez le futur de vos rips DVDs en gardant le flux AC3.

7.11.4. Interlacing and Telecine

La plupart des films sont tournés en 24 fps. Puisque NTSC est en 29.97 fps, certains traitements doivent être appliqués pour l'adapter au débit NTSC. Ce procédé est appelé 3:2 pulldown, plus communément appelé téléciné (car le pulldown est souvent appliqué durant la phase de conversion en téléciné), et de façon simpliste, il fonctionne en ralentissant le film à 23.976 fps, et en répétant chaque quatrième trame.

Aucun traitement spécifique, n'est cependant appliqué pour la vidéo des DVDs PAL, qui tournent à 25 fps (techniquement, PAL peut être téléciné, ce qui est appelé 2:2 pulldown, mais ceci n'est pas un problème en pratique). Le film 24 fps est simplement lu en 25 fps. Le résultat est que la vidéo tourne légèrement plus vite, mais à moins d'être un alien, vous ne verrez pas la différence. La plupart des DVDs ont de l'audio dont le ton a été corrigé, donc quand elle est joué à 25 fps cela sonne correctement, même si la piste audio (et donc le film entier) a une durée 4% plus courte que les DVDs NTSC.

Puisque la vidéo d'un DVD PAL n'a pas été altérée, vous n'avez pas à vous soucier du débit. La source est en 25 fps, et votre rip sera en 25 fps. Par contre, si vous rippez un film d'un DVD NTSC, vous pourriez avoir besoin d'appliquer du téléciné inverse.

Pour les films tournés en 24fps, la vidéo du DVD NTSC est soit en 29.97 fps téléciné, soit en 24 fps progressif et prévu pour être téléciné à la volée par le lecteur DVD. D'un autre coté, les séries TV sont généralement seulement entrelaçées, pas télécinées. Ce n'est pas une règle absolue: certaines séries TV sont entrelaçées (comme Buffy contre les vampires) alors que d'autres sont un mélange de progressif et d'entrelaçé (comme Dark Angel, ou 24 heures chrono).

Il est fortement recommandé de lire la section Comment gérer le téléciné et le désentrelacement avec les DVDs NTSC pour apprendre à gérer les différentes possibilités.

De toute façon, si vous rippez surtout des films, vous rencontrerez soit de la vidéo 24 fps progressive, soit télécinée, et dans ce cas vous pouvez utiliser le filtre pullup -vf pullup,softskip.

7.11.5. Filtrage

En général, vous devriez appliquer le moins de filtres possible de façon à rester proche de la source DVD originale. Le découpage des bandes noires est souvent nécessaire (comme décrit ci-dessus), mais pas le redimensionnement. Bien réduire la résolution soit parfois préférée à l'usage de quantiseurs plus élévés, nous voulons éviter ces deux choses: rappelez-vous qu'au début nous avions décidé de privilégier la qualité sur l'encombrement disque.

De plus, n'ajustez pas le gamma, le contraste, la luminosité, etc. Ce qui s'affiche correctement sur votre matériel ne sera pas forcément pareil sur d'autres. Ces ajustements ne devraient être appliqués que lors de la lecture.

Une chose que vous pouvez faire, cependant, est de passer la vidéo au travers d'un très léger filtre anti-bruit, tel que -vf hqdn3d=2:1:2. De nouveau, il s'agit d'utiliser ces bits de la meilleur façon: pourquoi les gaspiller à encoder du bruit alors que vous pouvez en rajouter durant la lecture ? Augmenter les paramètres de hqdn3d améliorera la compressibilité, mais si vous augmentez trop, vous risquez de dégrader l'image. Les valeurs suggérées ci-dessus (2:1:2) sont très conservatrices; vous êtes libre d'expérimenter des valeurs plus grandes et d'observer les résultats par vous-même.

7.11.6. Exemple

Donc, vous venez d'acheter votre tout nouvel exemplaire de Harry Potter et la Chambre des Secrets (édition panoramique, bien sûr), et vous voulez ripper ce DVD pour pouvoir l'ajouter à votre PC Home Cinema. C'est un DVD zone 1, donc en NTSC. L'exemple ci-dessous s'applique également au PAL, à part l'option -ofps 23.976 qui devient inutile (car le débit sortant est le même que le débit entrant), et bien sûr les dimensions de découpe seront différentes.

Après avoir lançé mplayer dvd://1, nous suivons la méthode décrite dans la section Comment gérer le téléciné et le désentrelacement avec les DVDs NTSC et découvrons que la vidéo est en 24 fps progressif, ce qui signifie que nous n'aurons pas besoin d'utiliser un filtre de téléciné inverse, tel que pullup ou filmdint.

Ensuite, il faut déterminer le rectangle de découpage approprié, nous utilisons donc le filtre cropdetect:

mplayer dvd://1 -vf cropdetect

Assurez-vous de vous placer dans une trame parfaitement remplie (tel qu'une scène claire), et vous verrez sur la console de sortie de MPlayer:

crop area: X: 0..719  Y: 57..419  (-vf crop=720:362:0:58)

Nous relisons ensuite le film avec ce filtre pour tester sa justesse:

mplayer dvd://1 -vf crop=720:362:0:58

Et nous voyons que c'est parfait. Ensuite, nous nous assurons que la largeur et la hauteur sont des multiples de 16. La largeur est correcte, par contre la hauteur ne l'est pas. Comme nous sommes bon en maths, nous savons que le multiple de 16 le plus proche de 362 est 352.

Nous pourrions simplement utiliser crop=720:352:0:58, mais il serait plus sympatique de retirer un peu du haut et du bas pour aligner au centre. Nous rabotons la hauteur de 10 pixels, mais nous ne voulons pas augmenter le y-offset de 5 pixels car c'est un nombre impair et cela pourrait affecter la qualité. À la place, nous allons augmenter le y-offset de 4 pixels:

mplayer dvd://1 -vf crop=720:352:0:62

Une autre raison de raser les pixels du haut et du bas est de nous assurer que nous avons éliminé les éventuels pixels à moitié noirs. Notez que si votre vidéo est télécinée, assurez-vous que le filtre pullup (ou tout autre filtre de téléciné inverse que vous décidez d'utiliser) apparaisse bien au début de la chaine de filtres, avant le découpage. Si la vidéo est entrelaçée, désentrelacez-la avant le découpage (si vous voulez garder la vidéo entrelaçée, alors assurez-vous que votre offset de découpage soit un multiple de 4).

Si perdre ces 10 pixels vous gène vraiment, vous pouvez diminuer les dimensions au plus proche multiple de 16. La chaine de filtre ressemblera alors à:

-vf crop=720:362:0:58,scale=720:352

La réduction de résolution implique qu'un certain nombre de détails sera perdu, bien que cela sera probablement imperceptible. Augmenter les dimensions donnera une moins bonne qualité (à moins que vous n'augmentiez le débit). Le découpage supprime ces pixels. C'est un compromis à faire à chaque fois. Par exemple, si le DVD a été fait pour la télévision, vous devriez éviter de redimensionner verticalement, puisque l'échantillonnage de lignes correspond à la façon dont a été enregistré le contenu.

Après inspection, nous voyons que le film comporte pas mal d'action et un haut niveau de détail, nous choisissons donc un débit de 2400Kbit.

Nous sommes maintenant prêts pour l'encodage 2 passes. Première passe:

mencoder dvd://1 -ofps 23.976 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \
-lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=1 \
-o Harry_Potter_2.avi

La deuxième passe est identique, sauf que nous spécifions vpass=2:

mencoder dvd://1 -ofps 23.976 -oac copy -vf crop=720:352:0:62,hqdn3d=2:1:2 -ovc lavc \
-lavcopts vcodec=mpeg4:vbitrate=2400:v4mv:mbd=2:trell:cmp=3:subcmp=3:mbcmp=3:autoaspect:vpass=2 \
-o Harry_Potter_2.avi

Les options v4mv:mbd=2:trell vont énormément augmenter la qualité au détriment du temps d'encodage. Il y a peu de raisons d'enlever ces options quand notre but principal est la qualité. Les options cmp=3:subcmp=3:mbcmp=3 selectionnent une fonction de comparaison qui donne une meilleure qualité que les paramètres par défaut. Vous pouvez faire des expérimentations avec ce paramètre (référez-vous à la page de manuel pour les valeurs possibles) car les différentes fonctions peuvent avoir un impact important sur la qualité suivant la source. Par exemple, si vous trouvez que libavcodec produit trop d'artefacts de type "blocs", vous pouvez essayer de sélectionner le NSSE expérimental en tant que fonction de comparaison via *cmp=10.

Pour ce film, le fichier AVI final fera 138 minutes et environ 3Go. Comme la taille n'est pas importante, c'est tout à fait acceptable. En revanche, si vous voulez un fichier plus petit, vous pouvez essayer un débit plus faible. Augmenter le débit ne sert pas à grand chose, donc même si on peut obtenir une nette amélioration de 1800Kbit à 2000Kbit, l'amélioration ne sera peut être pas visible au dessus de 2000Kbit. Vous êtes libre d'expérimenter jusqu'à ce que vous soyez satisfait du résultat.

Puisque la vidéo d'origine est passée par un filtre anti-bruit, vous pouvez en rajouter pendant la lecture. Ceci, en conjonction avec le filtre de post-processing spp, augmente énormément la qualité perçue et permet l'élimination d'artefacts de la vidéo. Avec l'option autoq de MPlayer, vous pouvez faire varier la quantité de post-traitement faite par le filtre spp suivant la quantité de temps processeur disponible. De plus, à ce moment, vous pouvez ajouter une correction gamma et/ou de couleur pour l'adapter à votre affichage. Par exemple:

mplayer Harry_Potter_2.avi -vf spp,noise=9ah:5ah,eq2=1.2 -autoq 3

7.12. Comment gérer le téléciné et le désentrelacement avec les DVDs NTSC

Introduction.  Je vous suggère de visiter cette page si vous ne comprenez pas la plupart de ce qui est écrit dans ce document: http://www.divx.com/support/guides/guide.php?gid=10 Cette adresse mène à une description relativemement simple et complète de ce qu'est le téléciné.

Pour des raisons techniques imputables aux limitations des premiers postes de télévision, toute vidéo destinée à être joué sur un poste de télévision NTSC doit être à 59.94 champs par seconde. Les téléfilms et les émissions sont souvent filmés directement à 59.94 champs par seconde, alors que la majorité les films de cinéma sont filmés à 24 ou 23.976 trames par seconde. Quand le DVD d'un film est masterisé, la vidéo est convertie pour la télévision en utilisant un procédé appelé téléciné.

Sur un DVD, la vidéo n'est en fait jamais stockée à 59.94 champs par seconde. Pour une vidéo qui était à l'origine en 59.94, chaque paire de champs est combinée pour former une trame, donnant ainsi 29.97 trames par seconde. Les lecteurs DVD lisent ensuite un drapeau contenu dans le flux vidéo pour déterminer si les lignes paires -ou impaires- doivent former le premier champ.

En général, le contenu à 23.976 trames par seconde reste tel quel quand il est encodé pour un DVD, et le lecteur DVD doit "téléciner" à la volée. Parfois, cependant, la vidéo est téléciné avant d'être stockée sur le DVD; même si elle était à l'origine à 23.976 trames par seconde, elle passe à 59.94 champs par seconde, et est stockée sur le disque à 29.97 trames par seconde.

Quand on regarde des trames individuelles formées à partir d'une vidéo en 59.94 champs par seconde, téléciné ou similaire, l'entrelacement est clairement visible partout où il y a du mouvement, car un champ (disons, les lignes paires) affiche l'action se déroulant un 1/59.94 ème de seconde plus tard que le suivant. La lecture de vidéo entrelaçée sur un ordinateur est horrible parce que le moniteur a une résolution supérieure et parce que la vidéo est affichée trame-après-trame plutôt que champ-après-champ.

Notes:

  • Cette section ne s'applique qu'aux DVDs NTSC, et non PAL.

  • Les exemples de l'utilisation de MEncoder présents dans ce document ne sont pas destinés à un usage tel-quel. C'est juste le minimum requis pour encoder des vidéos de cette catégorie. Comment faire des bons rips DVD ou paramétrer libavcodec pour la meilleure qualité possible est en dehors du cadre de ce document.

  • Il y a deux notes de bas de page spécifiques à ce guide, notée ainsi: [1]

7.12.1. Comment trouver quel type de vidéo vous avez

7.12.1.1. Progressive

La vidéo progressive est filmé à l'origine en 23.976 fps, et stockée sur le DVD sans modification.

Quand vous jouez un DVD progressif avec MPlayer, MPlayer affiche la ligne suivante dès le début de la lecture du film:

 demux_mpg: 24fps progressive NTSC content detected, switching framerate.

À partir de maintenant, demux_mpg ne devrait jamais dire qu'il trouve du "30fps NTSC content."

Quand vous regardez une vidéo progressive, vous ne devriez jamais voir d'entrelacement. Attention, cependant, car il y est parfois mêlé un peu de téléciné, là où vous ne vous y attendriez pas. On peut même trouver des DVDs de programmes TV qui ont une seconde de téléciné à chaque changement de scène, ou dans des endroits apparemment aléatoires. On trouve aussi des DVDs qui progressifs durant la première moitié, et téléciné dans la seconde. Si vous voulez être vraiment certain, vous pouvez scanner tout le film:

mplayer dvd://1 -nosound -vo null -benchmark

L'utilisation de -benchmark indique à MPlayer de jouer le film aussi rapidement qu'il le peut; cependant, suivant votre matériel, cela peut prendre un certain temps. Chaque fois que demux_mpg signale un changement de débit, la ligne suivante indiquera l'heure à laquelle le changement s'est produit.

Parfois la vidéo progressive est appelé "soft-telecine" parce qu'elle est destinée à être téléciné par le lecteur DVD.

7.12.1.2. Télécinée

La vidéo télécinée a été filmée en 23.976, mais a été téléciné avant d'être gravée sur DVD.

MPlayer ne signale pas (toujours) les changements de débit quand il joue de la vidéo téléciné.

En regardant de la vidéo téléciné, vous verrez des artefacts d'entrelacement qui semblent "clignoter": ils apparaissent et disparaissent rapidement. Vous pouvez les regarder plus attentivement avec par exemple

  1. mplayer dvd://1
  2. Sautez à une partie avec du mouvement.

  3. Utilisez la touche . pour sauter une image a la fois.

  4. Regardez le motif des trames à l'apparence entrelacées et progressives. Si le motif que vous voyez est PPPII,PPPII,PPPII,... alors la vidéo est téléciné. Si vous voyez un autre motif, alors la vidéo a été téléciné en utilisant une méthode non-standard; MEncoder ne peut pas convertir une video téléciné non-standard en progressive sans perte. Si vous ne voyez aucun motif, c'est certainement que la vidéo est entrelaçée.

Parfois la vidéo téléciné est appelée "hard-telecine". Etant donné que le "hard-téléciné" est déja à 59.94 champs par secondes, le lecteur DVD lit la vidéo sans aucune manipulation.

7.12.1.3. Entrelaçée

La vidéo entrelaçée a été filmé à 59.94 champs par seconde, et stockée sur DVD à 29.97 trames par seconde. L'entrelacement (souvent appelé "combing") est le résultat de la combinaison des paires de champs dans des trames. Chaque champ est séparé du suivant par 1/59.94 secondes ; lorsqu'ils sont affichés simultanément, la différence est flagrante.

Comme pour la vidéo téléciné, MPlayer ne devrait jamais signaler les changements de débit pendant la lecture de contenu entrelaçé.

Si vous regardez attentivement une vidéo entrelaçée avec -speed 0.1, vous verriez que chaque trame est entrelaçée.

7.12.1.4. Progressive et télécinée mélangées

Toute la vidéo "progressive et téléciné mélangées" était à l'origine en 23.976 trames par seconde, mais certaines parties ont fini en téléciné.

Quand MPlayer joue cette catégorie, il oscillera (de manière répetée) entre "30fps NTSC" et "24fps progressive NTSC". Regardez le bas de la sortie texte de MPlayer pour voir ces messages.

Vous devriez regarder les sections "30fps NTSC" pour vérifier que c'est effectivement du téléciné, et pas juste de l'entrelaçé.

7.12.1.5. Progressive et entrelacée mélangées

Dans ce type de vidéo, le contenu progressif et entrelaçé, ont été collés l'un après l'autre.

Cette catégorie ressemble tout à fait à "progressive et télécinée mélangées", jusqu'à ce que vous examiniez les sections 30fps et voyez qu'elles n'ont pas de motif de téléciné.

7.12.2. Comment encoder chaque catégorie

Comme mentionné au début, les exemples d'utilisation de MEncoder ne sont pas destinés a être utilisé directement; ils démontrent juste les paramètres minimum pour encoder chaque catégorie.

7.12.2.1. Progressive

La vidéo progressive ne requiert aucun filtrage spécial pour l'encodage. Le seul paramètre que vous devez utiliser est -ofps 23.976. Sinon, MEncoder essaiera d'encoder en 29.97 fps et dupliquera des trames.

mencoder dvd://1 -nosound -ovc lavc -ofps 23.976

Il arrive souvent, cependant, qu'une vidéo apparemment progressive contienne en réalité quelques parties téléciné. A moins d'être sùr, il est préférable de considérer la video comme progressive et télécinée mélangée. La perte de performance sera minime [3].

7.12.2.2. Télécinée

Le téléciné peut être inversé pour retrouver le contenu original en 23.976, en utilisant un procédé appelé inverse-téléciné. MPlayer contient plusieurs filtres pour accomplir cela ; le meilleur, pullup, est décrit dans la section progressive et télécinée mélangées.

7.12.2.3. Entrelaçée

Dans la plupart des cas pratiques, il n'est pas possible d'extraire une vidéo progressive complète à partir de contenu entrelaçé. La seule manière d'y parvenir sans perdre la moitié de la résolution verticale est de doubler le débit et d'essayer de "deviner" ce qui est destiné a constituer les lignes correspondantes pour chaque champ (cela a des inconvénients - voir la méthode 3).

  1. Encodez la vidéo sous forme entrelaçée. Normalement, l'entrelacement entre en conflit avec la qualité de compression de l'encodeur, mais libavcodec a deux paramètres spécifiques pour gérer un peut mieux le stockage de la vidéo entrelaçée: ildct et ilme. De plus, utiliser mbd=2 est fortement recommandé [2] car il encodera les macroblocs en tant que non-entrelaçés là où il n'y a pas de mouvement. Notez que -ofps n'est PAS requis ici.

    mencoder dvd://1 -nosound -ovc lavc -lavcopts ildct:ilme:mbd=2

  2. Utilisez un filtre de désentrelacement avant l'encodage. Il y a beaucoup de de choix parmi les filtres disponibles, chacun ayant ses avantages et ses inconvénients. Consultez mplayer -pphelp pour voir ce qui est disponible (recherche sur "deint"), et cherchez sur les listes de diffusion de MPlayer pour trouver des discussions à propos des divers filtres. De nouveau, le débit ne change pas, donc il n'y a pas de -ofps. De même, le désentrelacement devrait être appliqué après le découpage [1] et avant le redimensionnement.

    mencoder dvd://1 -nosound -vf pp=lb -ovc lavc

  3. Malheureusement, cette option est boguée avec MEncoder; elle devrait bien fonctionner avec MEncoder G2, mais il n'est pas encore disponible. Vous pourrez avoir des plantages. De toute façon, le but de -vf tfields est de créer des trames complètes à partir de chaque champ, ce qui aboutit à un débit de 59.94. L'avantage de cette approche est qu'aucune donnée n'est perdue; par contre, puisque chaque trame provient d'un seul champ, les lignes manquantes doivent être remplies d'une manière ou d'une autre. Il n'y a pas vraiment de bonne méthode pour générer les données manquantes, et donc le résultat sera similaire à celui obtenu en utilisant certains filtres de désentrelacement. Générer les lignes manquantes créé d'autres problèmes, également, simplement parce que la quantité de données double. Donc, un débit d'encodage supérieur est requis pour maintenir la qualité, et plus de puissance CPU est utilisée pour l'encodage et le décodage. tflields a de nombreuses options différentes pour la création des lignes manquantes de chaque trame. Si vous utilisez cette méthode, alors référez vous à la page de manuel, et choisissez l'option qui donne le meilleur résultat avec votre matériel. Notez qu'en utilisant tfields vous devez spécifier -fps et -ofps en indiquant un débit double de celui de la source.

    mencoder dvd://1 -nosound -vf tfields=2 -ovc lavc -fps 59.94 -ofps 59.94

  4. Si vous comptez diminuer la taille de la vidéo énormément, vous pouvez extraire et encoder uniquement l'un des deux champs. Bien sûr, vous allez perdre la moitié de la résolution verticale, mais si vous prévoyez de réduire d'au plus 1/2 de l'original, la perte ne se vera pas trop. Le résultat sera un fichier progressif à 29.97 trames par seconde. La procédure est d'utiliser -vf field, et ensuite couper [1] et dimensionner correctement. Rappelez-vous que vous n'avez qu'à ajuster le redimensionnement pour compenser la réduction par deux de la résolution verticale.

    mencoder dvd://1 -nosound -vf field=0 -ovc lavc

7.12.2.4. Progressive et téléciné mélangées

De façon à transformer la vidéo progressive et télécinée mélangée en vidéo entièrement progressive, l'inverse-telecine doit être appliquée sur les parties télécinées. Il y a trois manières de faire cela décrites plus bas. Notez que vous devriez toujours, à moins d'être sûr de ce que vous faites, appliquer un inverse-téléciné avant tout redimensionnement ou découpage de la vidéo [1]. L'option -ofps 23.976 est alors nécessaire ici, car la sortie sera à 23.976 images par seconde.

  • L'option -vf pullup est utile pour appliquer un inverse-téléciné sur les parties télécinées tout en laissant les parties progressives intactes. Pour fonctionner correctement, l'option pullup doit être suivie de l'option softskip, sinon MEncoder se plantera. L'option pullup est, cependant, la méthode la plus propre et la plus précise pour encoder en télécinée et en "progressive et téléciné mélangée".

    mencoder dvd://1 -nosound -vf pullup,softskip -ovc lavc -ofps 23.976

  • Une méthode plus ancienne pour traiter ce type de vidéo est, plutôt que d'appliquer un inverse-téléciné sur les parties télécinées, de téléciner les parties non-télécinées et d'ensuite appliquer l'inverse-téléciné sur la vidéo entière. Cela vous semble confus ? softpulldown est un filtre qui parcoure une vidéo et la rend entièrement télécinée. Si vous faites suivre softpulldown de soit detc, soit ivtc, le résultat final sera entièrement progressif. L'option -ofps 23.976 est requise.

    mencoder dvd://1 -nosound -vf softpulldown,ivtc=1 -ovc lavc -ofps 23.976

  • Voici ce que D Richard Felker III dit de -vf filmdint:

    Il est bon, mais AMA il essaie de désentrelacer plutôt que de faire de l'inverse-téléciné trop souvent (tout comme les lecteurs DVD & et les TVs progressives), ce qui donne un scintillement horrible et d'autres artefacts. Si vous voulez l'utiliser, vous devrez au moins passer un peu de temps à régler les options et à regarder le résultat pour vous assurer que tout va bien.

7.12.2.5. Progressive et entrelaçée mélangées

Il y a deux options pour gérer cette catégorie, chacune d'elle étant un compromis. Vous devriez décider suivant la durée/position de chaque type.

  • Traitez-la en tant que progressive. Les parties entrelaçées apparaîtront comme entrelacées, et certains champs devront être sautés, donnant une lecture un peu saccadée. Vous pouvez utiliser un filtre de post-traitement si vous le voulez, mais celui-ci pourrait légèrement dégrader les parties progressives.

    Cette option ne devrait vraiment pas être utilisée si vous comptez afficher la vidéo sur un périphérique entrelaçé (avec une carte TV, par exemple). Si vous avez des trames entrelaçées dans une vidéo de 23.976 trames par secondes, elles seront télécinées avec les trames progressives. La moitié des "trames" sera affichée durant trois champs (3/59.94 secondes), provoquant un effet tremblotant "saut dans le temps" qui rend particulièrement mauvais. Si vous essayez cela, vous devez utiliser un filtre de désentrelacement comme lb ou l5.

    Cela peut être aussi une mauvaise idée pour l'affichage progressif. Des paires de champs consécutifs seront sautés, provoquant une discontinuité qui peut être plus visible avec la seconde méthode, qui montre certaines trames progressives deux fois. La vidéo en 29.97 trames par seconde est déjà un peu hachée car elle devrait être lue en 59.94 champs par seconde, donc les trames dupliquées ne se voient pas trop.

    De toutes manières, il vaut mieux prendre en compte autant votre contenu que comment vous comptez l'afficher. Si votre vidéo est 90% progressive et que vous ne comptez pas l'afficher sur une TV, vous devriez préférer une approche progressive. Si c'est seulement à moitié progressif, vous voudrez probablement l'encoder comme si elle était complètement entrelaçée.

  • Traitez-la comme entrelaçée. Certaines trames des parties progressives devront être dupliquées, causant des saccades irrégulières. De nouveau, les filtres de désentrelacement peuvent légèrement dégrader les parties progressives.

7.12.3. Notes de bas-de-page

  1. À propos du découpage:  Les données vidéo des DVDs sont stockées dans un format appelé YUV 4:2:0. Dans la vidéo YUV, luma ("luminosité") et chroma ("couleur") sont stockés séparemment. Dans une image YUV 4:2:0 il n'y a qu'un pixel chroma pour quatre pixels luma, car l'oeil humain est plus sensible à la couleur qu'à la luminosité. Dans une image progressive, chaque carré de quatre pixels luma (deux de chaque coté) a un pixel chroma en commun. Vous devez découper l'YUV progressif en une résolution paire, et utiliser des offsets pairs. Par exemple, crop=716:380:2:26 est correct mais crop=716:380:3:26 ne l'est pas.

    Quand vous traitez de l'YUV 4:2:0 entrelaçé, la situation est un peu plus compliquée. Au lieu de quatre pixels luma dans une trame partageant un pixel chroma, chaque ensemble de quatre pixels luma dans un champ partage un pixel chroma. Quand les champs sont entrelaçés pour former une trame, chaque scanline est haute de un pixel. Maintenant, au lieu d'avoir quatre pixels dans un carré, il y a deux pixels cote-à-cote, et les deux autres pixels sont cote-à-cote deux scanlines plus bas. Les deux pixels luma des scanlines intérmédiaires proviennent de l'autre champ, et donc partagent un pixel chroma différent avec deux pixels luma deux scanlines après. Toute ce joyeux désordre fait qu'il est nécessaire d'avoir des dimensions de découpage et des offsets multiples de quatre. L'horizontal peut rester pair.

    Pour la vidéo télécinée, je recommande de découper après le procédé d'inverse-téléciné. Une fois la vidéo en progressive, vous n'aurez plus qu'à découper par nombres pairs. Si vous voulez vraiment profiter du léger gain de temps qu'offre le découpage en premier, vous devez couper verticalement par multiples de quatre ou sinon le fitre d'inverse-téléciné n'aura pas suffisemment de données.

    Pour la vidéo entrelaçée (non télécinée), vous devez toujours découper verticalement par multiples de quatre à moins d'utiliser -vf field avant le découpage.

  2. À propos des paramètres d'encodage et de la qualité:  Le fait que je recommande mbd=2 ici ne signifie pas qu'il ne doit être utilisé ailleurs. Avec trell, mbd=2 est une des deux options de libavcodec qui augmentent le plus la qualité, et vous devriez toujours au moins les utiliser toutes les deux à moins que la vitesse d'encodage soit primordiale (par ex. encodage temps-réel). Il y a beaucoup d'autres options qui augmentent la qualité (et diminuent la vitesse d'encodage) mais c'est en dehors du cadre de ce document.

  3. A propos des performances de pullup:  C'est une bonne idée, en général, d'utiliser l'option pullup (avec l'option softskip) pour une video progressive, à moins d'être certain que cette vidéo est entièrement progressive. La perte de performance est minime dans la plupart des cas. Pour un encodage minimum, l'option pullup ralentit MEncoder de 50%. L'encodage du son et l'utilisation d'options lavcopts avancées masque cette difference, réduisant la baisse de performance dûe à l'option pullup à 2%.

Annexe A. Listes de diffusion

Il y a des listes de diffusion publiques sur MPlayer. À moins que cela soit explicitement précisé la langue utilisée sur ces listes est l'anglais. S'il vous plaît, n'envoyez pas de messages dans d'autres langues ou des mails en HTML ! La taille limite des message est 80k. Si vous avez quelque chose de plus gros, mettez-le en téléchargement quelque part. Sur les listes de diffusion, les règles d'écriture et de citation sont les mêmes que sur usenet. Suivez-les SVP, elles facilite énormément la vie de ceux qui lisent vos mails. Si vous ne connaissez pas ces règles, lisez le HOWTO edit messages.

  • MPlayer-announce

    Liste d'annonces de MPlayer. Inscrivez-vous si vous voulez obtenir les annonces de sécurité et de sorties de nouvelles versions.

  • MPlayer-users

    Liste de diffusion générale pour les questions relatives à MPlayer. Merci de lire la documentation entièrement avant de poster vos problèmes et vos demandes de fonctionnalités sur cette liste. Les rapports de bogues concernant MPlayer doivent aussi être envoyés sur cette liste, mais lisez les sections Bogues connus et rapports de bogues auparavant.

  • MPlayer-felhasznalok (hongrois)

    Liste des utilisateurs hongrois de MPlayer. Sujet ? Eh bien regardez par vous-même... que des insultes ou des questions à la RTFM maintenant :(

  • MPlayer-Matrox

    Questions relatives aux cartes Matrox comme mga_vid, les pilotes beta officiels de Matrox (pour XFree86 4.x.x), et matroxfb-TVout.

  • MPlayer-dvb

    Choses relatives à la carte de décodage matériel appelé DVB (pas DXR3 !).

  • MEncoder-users

    Liste de diffusion générale pour les questions relatives à MEncoder. Merci de lire la documentation entièrement avant de poster vos problèmes et vos demandes de fonctionnalités sur cette liste. Les rapports de bogues concernant MEncoder doivent aussi être envoyés sur cette liste, mais lisez les sections Bogues connus et rapports de bogues auparavant.

  • MPlayer-dev-eng

    Cette liste concerne le développement de MPlayer ! Parler des changements d'interface/API, des nouvelles librairies, des optimisations de code, des changements de configuration est à-propos ici. Envoyez des patches mais PAS de rapports de bogue, de questions d'utilisateur, de suggestions ou d'insultes ici, pour garder un trafic raisonnable.

  • MPlayer-cvslog

    Tous les changements de code dans MPlayer sont automatiquement envoyés sur cette liste. Seules les questions à propos de ses changements sont autorisées ici (si vous ne comprenez pas pourquoi un changement est requis, si vous en avez un meilleur ou si vous avez remarqué un bogue/problème possible dans l'envoi).

  • MPlayer-DOCS

    Cette liste concerne les discussions relatives à la documentation et à la homepage de MPlayer. Les logs CVS de la documentation et du site internet sont également envoyés là.

  • MPlayer-translations

    Cette liste concerne les discussions relatives au traduction de la documentation et du site internet de MPlayer. Les logs CVS de le documentation et du site internet sont également envoyés là.

  • MPlayer-cygwin

    Liste pour la discussion à propos du portage de MPlayer sous Cygwin et MinGW.

  • MPlayer-G2-dev

    Liste pour les discussions à propos de MPlayer G2, le lecteur vidéo de prochaine génération.

  • MPlayer-mirror

    Liste pour les discussions à propos de l'infrastructure des serveurs miroir de MPlayer.

  • MPlayer-MWN (INACTIVE)

    Liste pour les discussions à propos des MPlayer Weekly News (Nouvelles Hebdomadaires de MPlayer):

  • http://mplayerhq.hu/mailman/listinfo/mplayer-os2

    Liste pour les discussions sur le portage OS/2 de MPlayer.

  • MPlayer-qt-codecs-porting (INACTIVE)

    Liste pour les discussions à propos du support des codecs QuickTime.

Note

Vous pouvez obtenir les archives avec recherche possible à l'adresse http://www.mplayerhq.hu/cgi-bin/s-arch.cgi.

Annexe B. Comment rapporter les bogues

Les bons rapports de bogue sont une contribution précieuse pour tout projet en développement. Mais tout comme pour écrire un bon logiciel, les bons rapports de problèmes exigent du travail. Rendez-vous compte que la plupart des développeurs sont extrêmement occupés et reçoivent un nombre colossal d'emails. Donc bien que votre retour soit crucial pour l'amélioration de MPlayer et soit très apprécié, comprenez que vous devez fournir toutes les informations que nous demandons et suivre de près les instructions de ce document.

B.1. Comment réparer les bogues

Si vous pensez avoir les talents nécessaires vous êtes invité à essayer de réparer le bogue vous-même. Ou peut-être l'avez-vous déjà fait? Veuillez lire ce court document (en anglais) pour trouver comment faire inclure votre code dans MPlayer. Les gens de la liste de diffusion MPlayer-dev-eng vous assisterons si vous avez des questions.

B.2. Comment faire des tests de regression en utilisant CVS

Un problème qui peut survenir quelque fois est 'cela marchait avant, et plus maintenant...'. Voici une procédure étape-par-étape pour tenter d'indiquer quand exactement le problème s'est produit. Ceci n'est pas pour les utilisateurs occasionnels.

Premièrement, vous aurez besoin de récuperer l'arbre des sources de MPlayer depuis le CVS. Les instructions peuvent être trouvé au bas de cette page.

Vous aurez donc dans le repertoire main/ une image de l'arbre CVS, du coté client. Maintenant mettez à jour cette image à la date voulue:

cd main/
cvs update -PAd -D "2004-08-23"

Le format de date est AAAA-MM-JJ HH:MM:SS. Utiliser ce format de date vous assure que vous pourrez extraire les patches selon la date à laquelle elles ont été ajoutés au CVS, comme dans l' archive MPlayer-cvslog.

Maintenant procéder comme pour une mise-à-jour normale:

./configure
make

Pour un non-informaticien qui lit ceci, la méthode la plus rapide d'arriver au point où le problème se produit est d'utiliser une recherche dichotomique — qui est, chercher la date où est survenu le problème en divisant à plusieurs reprises l'intervalle de recherche par moitié. Par exemple, si le problème se produit en 2003, commencez en milieu d'année, puis demandez-vous "Le problème est-il déjà présent à ce moment?". Si oui, revenez au premier Avril; si non, allez au premier Octobre, et ainsi de suite.

Si vous avez beaucoup d'espace libre sur le disque dur (une compilation complète des sources prend actuellement 100 MO, et environ 300-350 MO si les symboles de déboguage sont activés), copiez la plus vieille version fonctionnelle connue avant de la mettre à jour; cela sauvera du temps si vous devez y revenir. (Il est habituellement nécessaire de lancer 'make distclean' avant de recompiller une version plus récente, donc si vous ne faites pas une copie de sauvegarde de votre arbre source original, vous devrez tout recompiler dedans quand vous reviendrez à la version présente.)

Quand vous avez trouvé le jour où le problème survient, continuez la recherche en utilisant l'archive mplayer-cvslog (triée par date) et une faites mise-à-jour depuis le CVS précisant heure, minute et seconde:

cvs update -PAd -D "2004-08-23 15:17:25"

Cela vous permettra de trouver facilement le patch exact à l'origine du problème.

Si vous trouvez le patch qui est la cause du problème, vous avez quasiement gagné; signalez le à MPlayer Bugzilla ou souscrivez à MPlayer-users et postez-le là. Il y a une chance pour que l'auteur s'empresse de suggérer un correctif. Vous pouvez également décortiquer le patch jusqu'à ce que le bug vous saute aux yeux :-).

B.3. Comment rapporter les bogues

Tout d'abord veuillez essayer la dernière version CVS de MPlayer car votre bogue y est peut-être déjà réparé. Le développement évolue très rapidement, la plupart des problèmes des versions officielles sont rapportés dans les jours voir les heures qui suivent, donc n'utilisez que le CVS pour rapporter les bogues. Ceci est également valable pour les paquets binaires de MPlayer. Les instructions CVS peuvent être trouvées en bas de cette page ou dans le README. Si tout cela ne vous aide pas, veuillez vous référer à la liste des bogues connus et au reste de la documentation. Si votre problème n'est pas connu ou non résolvable avec nos instructions, alors merci de rapporter le bogue.

Merci de ne pas envoyer de rapports de bogues en privé à chaque développeur. C'est un travail commun et il y a donc pas mal de gens que cela pourrait intéresser. Parfois d'autres utilisateurs ont rencontré les mêmes ennuis que vous et savent comment contourner le problème même si c'est un bogue dans le code de MPlayer.

Merci de décrire votre problème avec le plus de détails possibles. Faites un petit travail de détective pour restreindre les conditions d'occurrence du problème. Est ce que le bogue ne se montre que dans certaines situations ? Est-il spécifique à certains fichiers ou types de fichier ? Apparaît-il avec un seul codec ou est-ce indépendant du codec ? Pouvez-vous le reproduire avec tous les pilotes de sortie ? Plus vous fournissez d'information, plus grandes sont nos chances de résoudre votre problème. Merci de ne pas oublier d'inclure également les informations importantes requises plus bas, sinon nous ne pourront pas établir un diagnostic précis de votre problème.

Un guide excellent et bien écrit pour poser des questions sur les forums publiques est Comment Poser Les Questions De Manière Intelligente par Eric S. Raymond. Il y en a un autre (en anglais) appelé How to Report Bugs Effectively par Simon Tatham. Si vous suivez ces règles vous devriez pouvoir obtenir de l'aide. Mais merci de comprendre que nous suivons tous les listes de diffusion volontairement sur notre temps libre. Nous sommes très occupés et ne pouvons garantir que vous aurez une solution à votre problème ou même une réponse.

B.4. Où rapporter les bogues

Souscrivez à la liste de diffusion mplayer-users: http://mplayerhq.hu/mailman/listinfo/mplayer-users et envoyez votre rapport à mailto:mplayer-users@mplayerhq.hu où vous pourrez en discuter.

Si vous préférez, vous pouvez utiliser notre tout nouveau Bugzilla à la place.

La langue de cette liste est l'Anglais. Suivez les Règles de la Netiquette SVP et n'envoyez de mails en HTML sur aucune de nos listes de diffusion. Vous ne serez qu'ignoré ou banni. Si vous ne savez pas ce qu'est un mail en HTML ou pourquoi c'est mauvais, lisez ce sympatique document (en Anglais). Il explique tous les détails et a des instructions pour désactiver le HTML. Notez également que nous ne ferons pas de CC (copie conforme) individuelle et que c'est donc une bonne idée de souscrire pour recevoir votre réponse.

B.5. Que rapporter

Vous pouvez avoir besoin d'inclure des fichiers de log, de configuration ou d'échantillon. Si certains sont très gros alors il vaut mieux les uploader sur notre serveur FTP en format compressé (gzip et bzip2 préférés) et indiquer uniquement leur chemin et nom dans le rapport de bogue. Nos listes de diffusion ont une taille de message limite de 80k, si vous avez quelque chose de plus gros vous devrez le compresser ou l'uploader.

B.5.1. Information Système

  • Votre distribution Linux ou système d'exploitation et version, ex.:

    • Red Hat 7.1

    • Slackware 7.0 + paquets de développement de la 7.1 ...

  • version du noyau:

    uname -a

  • version de la libc:

    ls -l /lib/libc[.-]*

  • versions de gcc et ld :

    gcc -v
    ld -v
    

  • version des binutils:

    as --version

  • Si vous avez des problèmes avec le mode plein-écran:

    • Type de gestionnaire de fenêtre et version

  • Si vous avez des problèmes avec XVIDIX:

    • profondeur de couleur de X:

      xdpyinfo | grep "depth of root"

  • Si seul le GUI (ou IHM - Interface Homme Machine) est boguée:

    • version de GTK

    • version de GLIB

    • version de libpng

    • Position dans le GUI au moment où le bogue se produit

B.5.2. Matériel et pilotes

  • Info CPU (cela ne fonctionne que sous Linux):

    cat /proc/cpuinfo

  • Fabricant et modèle de votre carte vidéo, ex.:

    • chip ASUS V3800U: nVidia TNT2 Ultra pro 32Mo SDRAM

    • Matrox G400 DH 32Mo SGRAM

  • Type et version des drivers vidéo, ex.:

    • Pilote X intégré

    • nVidia 0.9.623

    • Utah-GLX CVS 2001-02-17

    • DRI avec X 4.0.3

  • Type de carte son et pilote, ex.:

    • Creative SBLive! Gold avec pilote OSS de oss.creative.com

    • Creative SB16 avec pilotes noyau OSS

    • GUS PnP avec émulation OSS ALSA

  • En cas de doute, joignez-y le résultat de lspci -vv sur les systèmes Linux.

B.5.3. Problèmes de configuration

Si vous rencontrez des erreurs pendant l'éxecution de ./configure, ou si l'auto-détection ou autre chose échoue, lisez configure.log. Vous pourriez y trouver la réponse, par exemple des versions multiples mélangées de la même librairie dans votre système, ou vous avez oublié d'installer les paquets de développement (ceux avec le suffixe -dev). Si vous pensez que c'est un bogue, incluez configure.log dans votre rapport de bogue.

B.5.4. Problèmes de compilation

Veuillez inclure ces fichiers:

  • config.h

  • config.mak

Uniquement si la compilation échoue à partir d'un de ces répertoires, incluez ces fichiers:

  • Gui/config.mak

  • libvo/config.mak

  • libao2/config.mak

B.5.5. Problèmes de lecture

Merci d'inclure la sortie de MPlayer en verbosité niveau 1, mais rappelez-vous de ne pas tronquer la sortie en le copiant dans votre mail. Les développeurs ont besoin de tous les messages pour diagnostiquer correctement un problème. Vous pouvez rediriger la sortie dans un fichier comme ceci:

mplayer -v options nomfichier > mplayer.log 2>&1

Si votre problème est spécifique à un ou plusieurs fichiers, alors merci d'uploader le(s) fautif(s) sur: ftp://mplayerhq.hu/MPlayer/incoming/

Uploadez aussi un petit fichier texte ayant le même nom que votre fichier mais avec une extension .txt. Décrivez le problème que vous avez avec ce fichier et incluez votre adresse e-mail ainsi que la sortie de MPlayer en verbosité niveau 1. Généralement les premiers 1-5 Mo sont suffisants pour reproduire le problème, mais pour être sûrs nous vous demandons de faire:

dd if=votre_fichier of=petit_fichier bs=1024k count=5

Cela coupera les 5 premiers Mo de 'votre_fichier' et les sauvera dans 'petit_fichier'. Essayez alors de lire le petit fichier, et si le bogue persiste vous pouvez envoyer le petit fichier par ftp. N'envoyez jamais ces fichiers par e-mail SVP ! Envoyez-les par FTP, et postez seulement le chemin/nom des fichiers sur le serveur FTP. Si le fichier est accessible en téléchargement à partir d'Internet, alors envoyez seulement son adresse URL exacte.

B.5.6. Plantages

Vous devez lancer MPlayer à l'intérieur de gdb et nous envoyer le résultat complet ou si vous avez un core dump du plantage vous pouvez extraire des informations utiles du fichier Core. Voici comment:

B.5.6.1. Comment conserver les informations sur un plantage reproductible

Recompilez MPlayer avec les instructions de déboguage activées:

./configure --enable-debug=3
make

et ensuite lancez MPlayer à l'intérieur de gdb en utilisant:

gdb ./mplayer

Vous êtes maintenant à l'intérieur de gdb. Tapez:

run -v options-pour-mplayer nomfichier

et reproduisez votre plantage. Aussitôt que vous l'avez fait, gdb va vous renvoyer à la ligne de commande où vous devrez entrer

bt
disass $pc-32 $pc+32
info all-registers

B.5.6.2. Comment extraire les informations significatives d'un core dump

Créer le fichier de commande suivant:

bt
disass $pc-32 $pc+32
info all-registers

Ensuite exécutez simplement la commande:

gdb mplayer --core=core -batch --command=fichier_de_commande > mplayer.bug

B.6. Je sais ce que je fait...

Si vous avez créé un rapport de bogue correct en suivant les étapes ci-dessus et que vous êtes persuadé qu'il s'agit d'un bug dans MPlayer, et non un problème de compilateur ou d'un fichier endommagé, vous avez déjà lu la documentation et vous n'arrivez pas à trouver une solution, vos pilotes son sont OK, alors vous pouvez souscrire à la liste mplayer-advusers et y envoyer votre rapport pour obtenir une réponse plus intéressante et plus rapide.

Soyez prévenu que si vous posez des questions de newbie (débutant) ou des questions dont les réponses sont dans le manuel, vous serez ignoré ou insulté au lieu de recevoir une réponse appropriée. Donc ne nous insultez pas et ne vous inscrivez à -advusers que si vous savez vraiment ce que vous faites et vous sentez en mesure d'être un utilisateur avancé de MPlayer ou un développeur. Si vous correspondez à ces critères il ne devrait pas être difficile de trouver comment on s'inscrit...

Annexe C. Bogues connus

C.1. Bogues/Problèmes spécifiques à certains systèmes ou à certains CPU

  • SIGILL (signal 4) sur P3 en utilisant les noyaux 2.2.x:

    Problème: le noyau 2.2.x n'a pas un support natif (fonctionnel) du SSE

    Solution: mettez à jour le noyau en 2.4.x

    Contournement: ./configure --disable-sse

  • SIGILL (signal 4) Général:

    Problème: vous avez compilé et utilisé MPlayer sur des machines différentes (par exemple compilé sur P3 et tournant sur Celeron)

    Solution: compilez MPlayer sur la machine sur laquelle vous l'utiliserez !

    Contournement: Vous pouvez oublier tout ceci en passant l'option --enable-runtime-cpudetection ou en désactivant les instructions spécifiques au CPU (comme --disable-mmx, --disable-3dnow, etc) lors de l'étape de configuration.

  • "Internal buffer inconsistency" pendant l'exécution de MEncoder:

    Problème: problème connu quand lame < 3.90 à été compilé avec gcc 2.96 ou 3.x

    Solution: utilisez lame >=3.90.

    Contournement: compilez lame avec gcc 2.95.x et retirez tous les paquetages lame éventuellement installés, ils peuvent avoir été compilés avec gcc 2.96.

  • Son MP2/MP3 altéré sur PPC:

    Problème: bogue de GCC sur les plateformes PPC, pas encore de solution de réparation.

    Contournement: utilisez le décodeur MP1/MP2/MP3 de FFmpeg (lent) (-ac ffmpeg)

  • SIGSEGV (signal 11) dans libmpeg2, pendant le redimensionnement+encodage:

    Problème: bogue MMX connu du GCC 2.95.2

    Solution: mettez à jour en 2.95.3.

C.2. Problèmes de synchro A-V et autres problèmes audio

C.2.1. Décalage audio général ou son saccadé (existe avec tous ou de nombreux fichiers)

  • Le plus courant: pilote audio bogué ! - Essayez d'utiliser d'autres pilotes, essayez l'émulation OSS ALSA 0.9 avec -ao oss, essayez aussi -ao sdl, des fois ça aide. Si votre fichier est lu correctement avec -nosound, alors vous pouvez être certain qu'il s'agit d'un problème de carte son (pilote).

  • Problèmes de buffer audio (taille de buffer mal détectée)

    Contournement: option -abs de MPlayer

  • Problèmes de taux d'échantillonnage - peut-être que votre carte ne supporte pas le taux d'échantillonnage utilisé dans vos fichiers - essayez le filtre de réechantillonnage (-af resample=...)

  • Machine lente (CPU ou VGA)

    Essayez avec -vo null, si la lecture fonctionne bien, alors vous avez un(e) carte/pilote VGA lent(e).

    Contournement: achetez une carte plus rapide ou lisez cette documentation pour augmenter la vitesse.

    Essayez aussi -framedrop

C.2.2. Décalage audio/désynchro spécifique à un ou quelques fichiers

  • Mauvais fichier

    Contournement:

    • options -ni ou -nobps (pour les fichiers non-entrelacés ou mauvais)

      et/ou

    • -mc 0(requis pour les fichiers avec de l'audio VBR mal entrelacé)

      et/ou

    • -delay ou les touches +/- pendant l'exécution pour régler le décalage

    Si rien de tout ça n'aide, uploadez le fichier SVP, nous le contrôlerons (et réparerons).

  • Votre carte son ne supporte pas la lecture à 48kHz

    Contournement: achetez une meilleur carte son... ou essayez de décrémenter le nombre de trames par seconde (fps) de 10% (utilisez -fps 27 pour un film à 30fps) ou utilisez le filtre de réechantillonnage (resample)

  • Machine lente (si A-V n'est pas proche de 0, et que le dernier nombre de la ligne d'état augmente)

    Contournement: -framedrop

C.2.3. Pas de son du tout

  • Votre fichier utilise un codec audio non-supporté

    Lisez la documentation et aidez-nous à en ajouter le support

C.2.4. Pas d'image du tout (juste une fenêtre complètement grise/verte)

  • votre fichier utilise un codec vidéo non-supporté

    Contournement: lisez la documentation et aidez-nous à en ajouter le support

  • le codec auto-sélectionné ne peut décoder le fichier, essayez avec un autre en utilisant les options -vc ou -vfm

  • Vous essayez de lire un fichier DivX 3.x avec le décodeur OpenDivX ou XviD (-vc odivx) - installez DivX4Linux et recompilez

C.2.5. Problèmes de sortie vidéo

Première note: les options -fs -vm et -zoom sont juste des recommandations, non supportées (encore) par tous les pilotes. Donc ce n'est pas un bogue si ça ne marche pas. Seuls quelques pilotes supportent le redimensionnement/zoom, ne l'espérez pas de x11 ou dga.

OSD/sub papillotant. 

  • pilote x11: désolé, cela ne peut être réparé maintenant

  • pilote xv: utilisez l'option -double

Image verte en utilisant mga_vid (-vo mga / -vo xmga). 

  • mga_vid a mal détecté la quantité de RAM de votre carte, rechargez-le en utilisant l'option mga_ram_size

Annexe D. Format de skins MPlayer

D.1. Aperçu

Ce n'est pas en rapport direct avec le format des skins, mais vous devez savoir que MPlayer n'a pas de skin par défaut, donc au moins une skin doit être installée pour pouvoir utiliser la GUI.

D.1.1. Répertoires

MPlayer cherche des skins dans ces répertoires (dans cet ordre):

  1. $(DATADIR)/Skin/

  2. $(PREFIX)/share/mplayer/Skin/

  3. ~/.mplayer/Skin/

Notez que le premier répertoire peut varier suivant la façon dont MPlayer a été configuré (voir les arguments --prefix et --datadir du script configure).

Chaque skin est installée dans son propre répertoire sous l'un des répertoires listés ci-dessus, par exemple:

$(PREFIX)/share/mplayer/Skin/default/

D.1.2. Format d'images

Les images doivent être en truecolor (24 ou 32 bpp) et enregistrées au format PNG.

Dans la fenêtre principale et la barre de lecture (c.f. ci-dessous) vous pouvez utiliser des images dotées de régions "transparentes": les régions remplies avec la couleur #FF00FF (magenta) deviennent transparentes dans MPlayer. Cela signifie que vous pouvez obtenir des formes particulières pour vos fenêtres si votre serveur X possède l'extension XShape.

D.1.3. Composants d'une skin

Les skins sont d'un format plutôt libre (contrairement aux formats fixes de Winamp/XMMS, par exemple), donc il ne tient qu'a vous de créer quelque chose de bien.

Actuellement, trois fenêtres doivent être décorées: la fenêtre principale, la sous-fenêtre, la barre de lecture, et le menu (activable par un clic droit).

  • Vous contrôlez MPlayer par la fenêtre principale et/ou la barre de lecture. L'arrière plan est une image. Divers objets peuvent (et doivent) venir se placer dans cette fenêtre: boutons, podomètres (sliders) et labels. Pour chaque objet, vous devez spécifier sa taille et sa position.

    Un bouton comprend trois états (pressé, relâché, désactivé), donc l'image doit se diviser en trois parties, verticalement. Voir l'objet bouton pour plus de détails.

    Un podomètre (principalement utilisé pour la barre d'avancement et le contrôle du volume/balance) peut posséder n'importe quel nombre d'états en empilant ces images, verticalement. Voir hpotmeter et potmeter pour plus de détails.

    Les labels sont un peu particuliers : les caractères nécessaires pour les dessiner sont récupérés depuis un fichier image, décrit par un fichier de description de polices. Ce dernier est un fichier texte brut spécifiant la position x,y ainsi que la taille de chaque caractère dans l'image (le fichier image et son descripteur forment une police ensemble). Voir dlabel et slabel pour plus de détails.

    Note

    Toutes les images disposent de la couleur de transparence décrite dans la section formats d'images. Si le serveur X ne supporte pas l'extension Xshape, les parties transparentes seront noires. Si vous voulez utiliser cette fonction, la largeur de l'image de la fenêtre principale devra être divisible par 8.

  • La sous-fenêtre contient la vidéo en elle même. Elle peut afficher une image si aucun film n'est chargé (ce n'est jamais plaisant d'avoir une fenêtre vide :-)) Note: la couleur de transparence n'est pas autorisée ici.

  • Le menu est simplement un moyen de contrôler MPlayer par des entrées graphiques. Deux images sont nécessaires pour le menu: l'une d'elle, l'image de base, affiche le menu dans son été normal, l'autre est utilisée pour afficher les entrées sélectionnées. Quand vous faites apparaître le menu, la première image s'affiche. Si vous passez la souris sur les entrées du menu, l'entrée sélectionnée est copiée depuis la seconde image, et uniquement la partie concernée par cette sélection (la seconde image ne s'affiche jamais complètement.)

    Une entrée de menu se définit par sa position et sa taille dans l'image (voir la section menu pour plus de détails).

Une chose essentielle n'a pas encore été mentionnée : pour que les boutons, podomètres et entrées du menu fonctionnent, MPlayer doit savoir quoi en faire. Ceci dépend des messages (events) envoyés. Pour chacun de ces objets vous devez définir le message à afficher quand on clique dessus.

D.1.4. Fichiers

Vous aurez besoin des fichiers suivants pour construire une skin:

  • Le fichier de configuration nommé skin indique à MPlayer comment assembler les différentes images et comment interpréter les clics de souris sur l'interface.

  • L'image de fond de la fenêtre principale.

  • Les images correspondants aux objets de la fenêtre principale (y compris une ou plusieurs polices et descripteurs nécessaires à l'affichage des textes).

  • L'image affichée dans la sous-fenêtre (optionnel).

  • Deux images pour le menu (nécessaires uniquement si vous voulez créer un menu).

A l'exception du fichier de configuration, vous pouvez nommer les fichiers comme bon vous semble (mais notez que les descripteurs de polices doivent avoir une extension .fnt).

D.2. Le fichier skin

Comme mentionné plus haut, c'est le fichier de configuration de la skin. Il est lu ligne par ligne; les lignes de commentaires démarrent par le caractère ';' en début de ligne (seuls les espaces et tabulations sont autorisées avant ce signe).

Les fichiers se composent de sections. Chaque section décrit la skin pour une application et s'écrit sous la forme:

section = nom de la section
.
.
.
end

Actuellement il n'existe qu'une application, donc vous n'aurez besoin que d'une section: dont le nom est movieplayer.

Dans cette section chaque fenêtre est décrite par un bloc de la forme suivante:

window = nom de la fenêtre
.
.
.
end

peut-être l'un des types suivants:

  • main - pour la fenêtre principale

  • sub - pour la sous-fenêtre

  • menu - pour le menu

  • playbar - barre de lecture

(Les blocs sub et menu sont optionnels - vous n'avez pas l'obligation de décorer le menu et la sous-fenêtre.)

Dans un bloc window, vous pouvez définir chaque objet sous la forme:

objet = paramètre

objet est une ligne identifiant le type d'objet de la GUI, paramètre est une valeur numérique ou textuelle (ou une liste de valeurs séparées par des virgules).

Le fichier final doit donc ressembler à ceci:

section = movieplayer
  window = main
  ; ... objets de la fenêtre principale ...
  end

  window = sub
  ; ... objets de la sous-fenêtre ...
  end

  window = menu
  ; ... objets du menu ...
  end

  window = playbar
  ; ... objets de la la barre de lecture ...
  end
end

Le nom d'un fichier image doit être donné sans distinction de répertoire - les images seront cherchées dans le répertoire Skin. Vous pouvez (mais ce n'est pas obligatoire) spécifier l'extension du fichier. Si le fichier n'existe pas, MPlayer essaie de charger le fichier <nomfichier>.<ext>, où png et PNG sera respectivement <ext> (dans cet ordre). La première correspondance trouvée sera utilisée.

Pour finir quelques mots sur le positionnement. La fenêtre principale et la sous-fenêtre peuvent être placées dans des coins différents de l'écran en donnant les coordonnées X et Y. 0 pour haut ou gauche, -1 pour centre et -2 pour droite ou bas, comme montré sur cette illustration:

(0, 0)----(-1, 0)----(-2, 0)
  |          |          |
  |          |          |
(0,-1)----(-1,-1)----(-2,-1)
  |          |          |
  |          |          |
(0,-2)----(-1,-2)----(-2,-2)

Un exemple. Supposons que vous avez crée une image main.png que vous voulez utiliser pour la fenêtre principale:

base = main, -1, -1

MPlayer essaie de charger les fichiers main, main.png, main.PNG.

D.2.1. Fenêtre principale et barre de lecture

Vous trouverez ci-dessous la liste des objets utilisables dans les blocs 'window = main' ... 'end', et 'window = playbar' ... 'end'.

base = image, X, Y

Vous spécifiez ici l'image de fond utilisée dans la fenêtre principale. La fenêtre apparaîtra a la position X,Y sur l'écran. La fenêtre aura la taille de l'image.

Note

Ces coordonnées ne fonctionnent actuellement pas pour la fenêtre d'affichage.

Avertissement

Les régions transparentes (couleur #FF00FF) apparaîtront en noir sur les serveurs X n'ayant pas l'extension XShape. La largeur de l'image doit être divisible par 8.

button = image, X, Y, largeur, hauteur, message

Place un bouton de taille largeur * hauteur a la position X,Y. Le message sera généré au clic sur ce bouton. L'image appelée par image doit avoir trois états empilés verticalement (pour les trois états du bouton), comme ceci:

+------------+
|  pressé    |
+------------+
|  relâché   |
+------------+
|  désactivé |
+------------+
decoration = enable|disable

Active (enable) ou désactive (disable) la décoration du gestionnaire de fenêtre pour la fenêtre principale. disable par défaut.

Note

Cela ne fonctionne pas pour la fenêtre d'affichage, il n'y en a pas besoin.

hpotmeter = button, blargeur, bhauteur, phases, numphases, default, X, Y, largeur, hauteur, message

vpotmeter = button, blargeur, bhauteur, phases, numphases, default, X, Y, largeur, hauteur, message

Place un podomètre horizontal (hpotmeter) ou vertical (vpotmeter) de taille largeur * hauteur à la position X,Y. L'image peut être divisée en différentes parties pour les différentes phases du podomètre (par exemple, vous pouvez en avoir un pour le contrôle du volume qui passe du vert au rouge quand sa valeur passe du minimum au maximum). hpotmeter peut posséder un bouton qui sera glissé horizontalement.

  • button - l'image utilisée pour le bouton (doit avoir trois états superposés, comme pour les boutons)

  • blargeur,bhauteur - taille du bouton

  • phases - l'image utilisée pour les différentes phases du podomètre. Une valeur NULL spéciale peut-être utilisée si vous ne voulez pas d'image. L'image doit être divisée en numphasesparts verticalement comme ceci:

    +------------+
    |  phase #1  |
    +------------+
    |  phase #2  |
    +------------+
         ...
    +------------+
    |  phase #n  |
    +------------+
    
  • numphases - nombre d'états placés dans l'image phases.

  • default - valeur par défaut du podomètre (dans un intervalle de 0 à 100)

  • X,Y - position du hpotmeter

  • largeur,hauteur - largeur et hauteur du hpotmeter

  • message - le message généré lors des changements d'état de hpotmeter

potmeter = phases, numphases, default, X, Y, largeur, hauteur, message

Un hpotmeter sans bouton. (je suppose qu'il est censé tourner en rond, mais il réagit uniquement aux tractions horizontales.) Pour une description de ses paramètres lisez hpotmeter. Ses phases peuvent être fixées à NULL, mais ce n'est pas vraiment utile, puisque vous ne pouvez pas voir son niveau.

font = fontfile, fontid

Définit une police. fontfile est le nom du descripteur de police avec l'extension .fnt (inutile de préciser son extension ici). fontid réfère à la police (c.f. dlabel et slabel). Jusqu'à 25 polices peuvent être définies.

slabel = X, Y, fontid, "texte"

Place un label dynamique à la position X,Y. texte est affiché en utilisant la police identifiée par fontid. Le texte est juste une chaîne brute (les variables $x ne fonctionnent pas) qui doit être mise entre doubles quotes (mais le caractère " ne peut pas faire partie du texte). Le label est affiché en utilisant la police identifiée par fontid.

dlabel = X, Y, longueur, align, fontid, "texte"

Place un label statique à la position X,Y. Le label est appelé dynamique parce que son texte est rafraîchi périodiquement. La longueur maximum du label est définie par longueur (sa hauteur dépend de la hauteur des caractères). Si le texte a afficher dépasse cette longueur il sera scrollé, ou bien aligné dans l'espace spécifié par la valeur du paramètre align: 0 pour droite, 1 pour centre, et 2 pour gauche.

Le texte à afficher est donné par texte: il doit être écrit entre doubles quotes (mais le caractère " ne peut pas faire partie du texte). Le texte s'affiche en utilisant la police spécifiée par fontid. Vous pouvez utiliser les variables suivantes dans le texte:

VariableSignification
$1temps de lecture au format hh:mm:ss
$2temps de lecture au format mmmm:ss
$3temps de lecture au format hh (heures)
$4temps de lecture au format mm (minutes)
$5temps de lecture au format ss (secondes)
$6longueur du film au format hh:mm:ss
$7longueur du film au format mmmm:ss
$8temps de lecture au format h:mm:ss
$vvolume au format xxx.xx%
$Vvolume au format xxx.xx
$bbalance au format xxx.xx%
$Bbalance au format xxx.xx
$$le caractère $
$aun caractère dépendant du type audio (aucun: n, mono: m, stéréo: t)
$tnuméro de piste (dans la playlist)
$onom du fichier
$fnom du fichier en minuscule
$Fnom du fichier en majuscule
$Tun caractère dépendant du type de flux (fichier: f, Video CD: v, DVD: d, URL: u)
$ple caractère p (si une vidéo est en lecture et que la police a le caractère p)
$sle caractère s (si une vidéo est stoppée et que la police a le caractère s)
$ele caractère e (si une vidéo est en pause et que la police a le caractère e)
$xlargeur du film
$yhauteur du film
$Cnom du codec utilisé

Note

Les variables $a, $T, $p, $s et $e e retournent toutes des caractères pouvant s'afficher comme des symboles spéciaux (par exemple, e est le symbole de pause qui ressemble généralement à ||). Vous pouvez avoir une police pour les caractères normaux et une autre pour les symboles. Lisez la section sur les symboles pour plus d'informations.

D.2.2. Sous-fenêtre

Vous trouverez ci-dessous la liste des objets utilisables dans le bloc 'window = sub' . . . 'end'.

base = image, X, Y, largeur, hauteur

L'image qui s'affichera dans la fenêtre. La fenêtre apparaîtra à la position X,Y sur l'écran (0,0 est le coin supérieur gauche). Vous pouvez spécifier -1 pour centre et -2 pour droite (X) et bas (Y). La fenêtre prendra la taille de l'image. largeur et hauteur donnent la taille de la fenêtre; ces paramètres sont optionnels (si ils sont absents, le fenêtre prend la taille de l'image).

background = R, V, B

Vous permet de définir la couleur de fond. Utile si l'image est plus petite que la fenêtre. R, V et B spécifient les composantes rouge, verte et bleue de la couleur (d'un intervalle entre 0 et 255).

D.2.3. Menu

Comme mentionné précédemment, le menu s'affiche en utilisant deux images. Les entrées normales du menu sont extraites de l'image spécifiée par l'objet base, tandis que l'entrée actuellement sélectionnée est extraite de l'image spécifiée par l'objet selected. Vous devez définir la taille et la position de chaque entrée du menu par l'objet menu.

Ils correspondent aux objets utilisés dans le bloc 'window = menu'. . .'end'.

base = image

L'image utilisée pour les entrées normales.

selected = image

L'image utilisée pour les entrées sélectionnées.

menu = X, Y, largeur, hauteur, message

Définit la position X,Y et la taille des entrées du menu dans les images. message est le message généré quand le bouton de la souris est relâché.

D.3. Polices

Comme mentionné dans la section sur les parties de la skin, une police est définie par une image et un fichier de description. Vous pouvez placer les caractères n'importe ou sur l'image, mais vous devez vous assurer que leur position et taille correspondent précisément au fichier de description.

Le fichier descriptif des polices (avec l'extension .fnt) peut avoir des lignes de commentaires commençant par ';'. Le fichier doit avoir une ligne du type

image = image

image est le nom de l'image qui sera utilisée pour la police (vous n'avez pas à définir d'extension).

"char" = X, Y, largeur, hauteur

Ici X et Y précisent la position du caractère char dans l'image (0,0 est le coin supérieur gauche). largeur et hauteur sont les dimensions du caractère en pixels.

Voici un exemple définissant les caractères A, B, C utilisant font.png.

; Peut être "font" au lieu de "font.png".
image = font.png

; Trois caractères suffisent pour une démonstration. :-)
"A" =  0,0, 7,13
"B" =  7,0, 7,13
"C" = 14,0, 7,13

D.3.1. Symboles

Certains caractères ont une signification spéciale quand ils sont retournés par des variables utilisées dans dlabel. Ces caractères sont censés s'afficher comme des symboles (par exemple, dans le cas d'une lecture DVD, vous pouvez afficher un beau logo DVD a la place du caractère 'd').

La table ci-dessous liste les caractères pouvant s'afficher comme des symboles (et nécessitent donc une police différente).

CaractèreSymbole
plecture
sstop
epause
npas de son
mson mono
tson stéréo
flecture depuis un fichier
vlecture depuis un Video CD
dlecture depuis un DVD
ulecture depuis une URL

D.4. Messages de la GUI

Ce sont les messages qui peuvent être générés par les boutons, podomètres et entrées du menu.

Note

Certains messages peuvent ne pas fonctionner comme prévu (ou ne pas fonctionner du tout). Comme vous le savez, la GUI est en cours de développement.

Contrôle de lecture:

evNext

Saute à la prochaine piste dans la playlist.

evPause

Associé à la commande evPlaySwitchToPause. Ils s'utilisent pour avoir un bouton play/pause commun. Les deux messages peuvent être assignés aux boutons affichés exactement à la même position dans la fenêtre. Ces messages mettent la lecture en pause et le bouton evPlaySwitchToPause s'affiche (pour indiquer que le bouton peut être pressé pour continuer la lecture).

evPlay

Commence la lecture.

evPlaySwitchToPause

Le contraire de evPauseSwitchToPlay. Ce message démarre la lecture et l'image associée au bouton evPauseSwitchToPlay s'affiche (pour indiquer que le bouton peut être pressé pour mettre en pause la lecture).

evPrev

Saute à la piste précédente dans la playlist.

evStop

Stoppe la lecture.

Déplacement dans le flux:

evBackward10sec

Recule de 10 secondes.

evBackward1min

Recule de 1 minute.

evBackward10min

Recule de 10 minutes.

evForward10sec

Avance de 10 secondes.

evForward1min

Avance de 1 minute.

evForward10min

Avance de 10 minutes.

evSetMoviePosition

Se place à la position (utilisable avec un podomètre; utilise la valeur relative (0-100%) du podomètre).

Contrôle vidéo:

evHalfSize

Réduit de moitié la taille de la fenêtre vidéo.

evDoubleSize

Double la taille de la fenêtre vidéo.

evFullScreen

Passe en mode plein écran.

evNormalSize

Met la vidéo à sa taille réelle.

Contrôle audio:

evDecAudioBufDelay

Diminue le délai du tampon audio.

evDecBalance

Diminue la balance.

evDecVolume

Diminue le volume.

evIncAudioBufDelay

Augmente le délai du tampon audio.

evIncBalance

Augmente la balance.

evIncVolume

Augmente le volume.

evMute

Active/désactive le son.

evSetBalance

Fixe la balance (utilisable avec un podomètre; utilise la valeur relative (0-100%) du podomètre).

evSetVolume

Fixe le volume (utilisable avec un podomètre; utilise la valeur relative (0-100%) du podomètre).

Divers:

evAbout

Ouvre la fenêtre 'A Propos'.

evDropSubtitle

Désactive le sous-titre actuellement utilisé.

evEqualizer

Active/désactive l'équalizer.

evExit

Quitte le programme.

evIconify

Iconifie la fenêtre.

evLoad

Charge un fichier (en ouvrant un mini navigateur de fichiers, où vous pouvez choisir un fichier).

evLoadPlay

Fait la même chose que evLoad, mais démarre la lecture automatiquement après le chargement du fichier.

evLoadSubtitle

Charge un fichier de sous-titres (avec un sélecteur de fichier)

evLoadAudioFile

Charge un fichier audio (avec un sélecteur de fichier)

evNone

Message vide, sans effet. (à part peut-être dans les versions CVS :-)).

evPlaylist

Ouvre/ferme la playlist.

evPlayDVD

Essaie d'ouvrir le disque dans le lecteur DVD-ROM indiqué.

evPlayVCD

Essaie d'ouvrir le disque dans le lecteur CD-ROM indiqué.

evPreferences

Ouvre la fenêtre de préférences.

evSetAspect

Fixe l'aspect de l'image.

evSetURL

Ouvre la fenêtre de saisie d'URL.

evSkinBrowser

Ouvre le navigateur de skins.

Annexe E. Lamentations du développeur

E.1. GCC 2.96

La toile de fond:  La série GCC 2.95 est une version GNU officielle et la version 2.95.3 de GCC est la version la plus exempte de bogues de toute la série. Nous n'avons jamais remarqué de problèmes de compilation que nous pourrions attribuer à GCC 2.95.3. A partir de Red Hat Linux 7.0, Red Hat a inclus une version CVS lourdement patchée de GCC dans sa distribution et l'a nommé 2.96. Red Hat a inclus cette version parce que GCC 3.0 n'était pas terminé à ce moment là, et ils avaient besoin d'un compilateur fonctionnant sur toutes leurs plateformes supportées, incluant IA64 et s390. Le distributeur Linux Mandrake (maintenant Mandriva) a également suivi l'exemple de Red Hat et a lancé la diffusion de GCC 2.96 avec sa série Linux-Mandrake 8.0.

Les évènements:  L'équipe GCC a nié tout lien avec GCC 2.96 et a publié une réponse officielle à GCC 2.96. De nombreux développeurs à travers le monde ont commencé à avoir des problèmes avec GCC 2.96, et plusieurs projets, dont avifile, ont donc recommandé d'autres compilateurs. D'autres liens intéressants sont Linux kernel news flash about kernel 2.4.17 et le Forum Voy. MPlayer a également souffert des problèmes intermittents qui ont tous été résolus en passant à une version différente de GCC. Plusieurs projets en commencé à implémenter des contournements pour quelques-uns des problèmes de 2.96, mais nous avons refusé de réparer les bogues des autres, surtout parce que certains contournements peuvent impliquer une pénalité sur les performances.

GCC 2.96 n'autorise pas les caractères | (pipe) dans les commentaires assembleur parce qu'il supporte aussi bien la syntaxe Intel que la syntaxe AT&T et que le caractère | est un symbole dans la variante Intel. Le problème est qu'il ignore silencieusement le bloc assembleur entier. Cela est théoriquement fixé maintenant, GCC affichant un warning au lieu de sauter le bloc.

Le présent:  Red Hat dit que GCC 2.96-85 et supérieur est réparé. La situation s'est en effet améliorée, mais nous voyons toujours des problèmes sur les listes de diffusion qui disparaissent avec un compilateur différent. Dans tous les cas cela ne peut plus durer. Normalement un GCC 3.x mature résoudra les problèmes. Si vous voulez compiler avec 2.96 passez l'option --disable-gcc-checking à configure. Rappelez-vous que vous êtes seul et donc de ne pas rapporter de bogues. Si vous le faites quand même, préparez-vous au pire comme vous faire insulter, voir banni de nos listes de diffusions car nous en avons par dessus la tête des problèmes relatifs à GCC-2.96 ; alors s'il vous plaît, abstenez-vous.

Si vous avez des problèmes avec GCC 2.96, vous pouvez obtenir les paquetages 2.96-85 sur le serveur ftp de Red Hat, ou d'utiliser les paquetages 3.0.4 offerts avec la version 7.2 et supérieur. Vous pouvez également obtenir les paquetages gcc-3.2.3-37 (non officiels, mais fonctionnant bien) et vous pouvez les installer avec le GCC 2.96 que vous avez déjà. Mplayer les détectera et utilisera 3.2 au lieu de 2.96. Si vous ne voulez pas ou ne pouvez pas utiliser les paquetages binaires, voici comment vous pouvez compiler GCC 3 depuis les sources:

  1. Allez sur la page des miroirs GCC et téléchargez gcc-core-XXX.tar.gzXXX est le numéro de version. Ceci inclus le compilateur C complet et est suffisant pour MPlayer. Si vous voulez aussi C++, Java ou certaines autres fonctions avancées de GCC, gcc-XXX.tar.gz pourrait mieux convenir à vos besoins.

  2. Décompressez l'archive avec

    tar -xvzf gcc-core-XXX.tar.gz

  3. GCC n'est pas construit depuis le répertoire source lui-même comme c'est le cas pour la plupart des programmes, mais a besoin d'un répertoire de construction à l'extérieur du répertoire source. Vous devez donc créer ce répertoire via

    mkdir gcc-build

  4. Ensuite vous pouvez procéder à la configuration de GCC dans le répertoire de construction, mais vous aurez besoin de le configurer depuis le répertoire source:

    cd gcc-build
    ../gcc-3.XXX/configure

  5. Compilez GCC en tapant cette commande dans le répertoire de construction:

    make bootstrap

  6. Maintenant vous pouvez installer GCC (en root) en tapant

    make install

E.2. Distribution binaire

MPlayer contenait précédemment du code source du projet OpenDivX, qui interdit toute redistribution binaire. Ce code à été retiré depuis la version 0.90-pre1 et le fichier restant divx_vbr.c qui est dérivé des sources OpenDivX à été placé sous GPL par ses auteurs au moment de la version 0.90pre9. Vous êtes maintenant invité à créer des paquetages binaires si vous en avez l'utilité.

D'autres impératifs pour la redistribution étaient les optimisations de compilation pour l'architecture binaire. MPlayer supporte maintenant la détection CPU (passez l'option --enable-runtime-cpudetection à configure). Elle est désactivée par défaut parce quelle implique un petit sacrifice de vitesse, mais il est maintenant possible de créer des binaires qui fonctionneront sur les différents membres de la famille des CPUs compatibles Intel.

E.3. nVidia

Nous n'aimons pas le fait que nVidia ne fournisse que des pilotes binaires (à utiliser avec XFree86), qui sont souvent bogués. Nous avons eu de nombreux rapports sur mplayer-users à propos de problèmes relatifs à ces pilotes closed-source et à leur piètre qualité, leur instabilité et le piètre support utilisateur et expert. Beaucoup de ces problèmes continuent de se répéter. Nous avons contacté nVidia récemment, et ils nous ont dit que ces bogues n'existaient pas, que l'instabilité était causée par de mauvais chips AGP, et qu'ils n'avaient pas reçu de rapports de bogues (comme la ligne violette). Donc si vous avez un problème avec votre carte nVidia, nous vous conseillons de mettre à jour le pilote nVidia et/ou d'acheter une nouvelle carte mère ou de demander à nVidia de fournir des pilotes open-source. Dans tous les cas, si vous utilisez les pilotes binaires nVidia et rencontrez des problèmes liés, soyez conscient que vous ne recevrez que peu d'aide de notre part car nous avons trop peu de pouvoir pour améliorer les choses.

E.4. Joe Barr

Joe Barr est devenu tristement célèbre en décembre 2001 pour avoir écrit une moins-que-favorable critique de MPlayer appelée MPlayer: The project from hell. Il a trouvé MPlayer difficile à installer, et en a conclu que les développeurs n'étaient pas amicaux et que la documentation était incomplète et insultante. Vous êtes seul juge. Il à ensuite mentionné négativement Arpi dans ses 10 prédictions Linux pour 2002. Puis dans une critique de xine appelée A streaming media player for the rest of us il a continué d'alimenter la controverse. Ironiquement à la fin de cet article il cite son échange avec Günter Bartsch, l'auteur original de xine, qui résume parfaitement la situation:

Toutefois, il a ajouté qu'il avait été "surpris" par mon papier à propos de MPlayer et pensait que c'était déloyal, me rappelant que c'est un projet de logiciel libre. "Si vous ne l'aimez pas," à dit Bartsch, "vous êtes libre de ne pas l'utiliser."

Presque deux ans après, en octobre 2003, il a écrit un autre article appelé Mplayer revisited. Dans celui-ci il arrive aux conclusions suivantes:

Je dois dire qu'il y a eu des améliorations dans le nombre de fonctions, au niveau des performances, et dans la documentation. Ce n'est toujours pas l'installation la plus facile au monde, spécialement pour les débutants, mais c'est un petit peut mieux qu'avant.

et

Mais plus important, je n'ai pas remarqué de récents commentaires à propos des abus des utilisateurs. Je suppose que je mérite de la reconnaissance pour cela, même si j'en fait partie moi-même. Arpi et le reste de l'équipe du projet doivent ressentir cela aussi, car ils ont pris soin de me le rappeler dans une section spéciale de la documentation incluse dans l'archive. Comme je l'ai dit au début, certaines choses n'ont pas changé du tout.

Nous n'aurions pas pu résumer mieux nos sentiments à l'égard de Joe Barr: "Ce n'est toujours pas l'article le plus honnête ou le plus recherché au monde, mais c'est meilleur qu'avant." Espérons que la prochaine fois nous répondrons mutuellement à nos attentes. De toute façon, le chemin de la maturité passe uniquement par l'âge, et peut-être en faisant fi des empoignades.