Les applications pour lire des vidéos sont assez récentes et se développent très rapidement. Soyez patient. Tout ne va pas fonctionner aussi bien que cela pu être le cas avec le son.
Avant que vous ne commenciez, vous devrez connaître le modèle de carte vidéo dont vous disposez ainsi que le circuit intégré qu'elle utilise. Alors qu'Xorg et XFree86™ supportent une large variété de cartes vidéo, seul un petit nombre d'entre elles donne de bonnes performances en lecture de vidéos. Pour obtenir la liste des extensions supportées par le serveur X utilisant votre carte employez la commande xdpyinfo(1) durant le fonctionnement d'X11.
C'est une bonne idée d'avoir un court fichier MPEG
qui pourra être utilisé comme fichier test pour
évaluer divers lecteurs et leurs options. Comme certains
programmes de lecture de DVD chercheront un support DVD sur
/dev/dvd
par défaut, ou ont ce
périphérique fixé définitivement dans
leur code, vous pourrez trouver utile de créer des liens
symboliques vers les périphériques corrects:
#
ln -sf /dev/acd0 /dev/dvd
#
ln -sf /dev/acd0 /dev/rdvd
Notez qu'en raison de la nature du système
devfs(5), les liens créés à la main
comme les précédents ne seront pas
conservés si vous redémarrez le système.
Afin de créer automatiquement les liens symboliques
dès que vous redémarrez votre système,
ajoutez les lignes suivantes au fichier
/etc/devfs.conf
:
link acd0 dvd link acd0 rdvd
De plus, le décodage de DVD, qui nécessite de faire appel à des fonctions spéciales du lecteur de DVD, demande d'avoir la permission d'écrire sur les périphériques DVD.
Pour augmenter la mémoire partagée pour l'interface X11, il est recommandé que les valeurs de certaines variables sysctl(8) soient augmentées:
kern.ipc.shmmax=67108864 kern.ipc.shmall=32768
Il y a plusieurs manières possibles pour afficher de la vidéo sous X11. Ce qui fonctionnera vraiment est énormément dépendant du matériel. Chaque méthode décrite ci-dessous donnera différents résultats en fonction du matériel. De plus, le rendu de la vidéo sous X11 est un sujet recevant beaucoup d'attention dernièrement, et avec chaque nouvelle version d'Xorg, ou d'XFree86™, il pourra y avoir des améliorations significatives.
Une liste des interfaces vidéo communes:
X11: sortie X11 classique utilisant de la mémoire partagée.
XVideo: une extension de l'interface X11 qui supporte la vidéo sur n'importe quelle partie de l'écran contrôlé par X11.
SDL: “Simple Directmedia Layer” - couche simple d'accès directe au média.
DGA: “Direct Graphics Access” - accès direct au graphique.
SVGAlib: couche graphique bas niveau pour la console.
Xorg et XFree86™ 4.X disposent d'une extension appelée XVideo (également connue sous les termes Xvideo, Xv, ou xv) qui permet d'afficher directement de la vidéo à travers une accélération spécifique. Cette extension fournit une très bonne qualité de rendu même sur les machines bas de gamme.
Pour vérifier si l'extension fonctionne utilisez
xvinfo
:
%
xvinfo
XVideo est supporté pour votre carte si le résultat de la commande ressemble à:
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 "XV_COLORKEY" (range 0 to 16777215) client settable attribute client gettable attribute (current value is 2110) "XV_BRIGHTNESS" (range -128 to 127) client settable attribute client gettable attribute (current value is 0) "XV_CONTRAST" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_SATURATION" (range 0 to 255) client settable attribute client gettable attribute (current value is 128) "XV_HUE" (range -180 to 180) client settable attribute client gettable attribute (current value is 0) maximum XvImage size: 1024 x 1024 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) id: 0x30323449 (I420) guid: 49343230-0000-0010-8000-00aa00389b71 bits per pixel: 12 number of planes: 3 type: YUV (planar) id: 0x36315652 (RV16) guid: 52563135-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x3e0, 0x7c00 id: 0x35315652 (RV15) guid: 52563136-0000-0000-0000-000000000000 bits per pixel: 16 number of planes: 1 type: RGB (packed) depth: 0 red, green, blue masks: 0x1f, 0x7e0, 0xf800 id: 0x31313259 (Y211) guid: 59323131-0000-0010-8000-00aa00389b71 bits per pixel: 6 number of planes: 3 type: YUV (packed) id: 0x0 guid: 00000000-0000-0000-0000-000000000000 bits per pixel: 0 number of planes: 0 type: RGB (packed) depth: 1 red, green, blue masks: 0x0, 0x0, 0x0
Notez également que les formats listés (YUV2, YUV12, etc...) ne sont pas présents dans chaque implémentation d'XVideo et leur absence pourra gêner certains programmes.
Si le résultat ressemble à:
X-Video Extension version 2.2 screen #0 no adaptors present
Alors XVideo n'est probablement pas supporté pour votre carte.
Si XVideo n'est pas supporté pour votre carte, cela signifie seulement qu'il sera plus difficile pour votre système d'affichage de répondre aux demandes du rendu vidéo en termes de puissance de calcul. En fonction de votre carte vidéo et de votre processeur, vous pourriez encore obtenir de bons résultats. Vous devriez probablement vous documenter sur les méthodes pour améliorer les performances en lisant la Section 8.4.3, « Lectures supplémentaires ».
La couche simple d'accès directe au média, SDL, a été prévue pour être une couche de portage entre Microsoft® Windows®, BeOS, et UNIX®, permettant à des applications “cross-platform” qui font un usage efficace du son et du graphique d'être développées. La couche SDL fournit une abstraction de bas niveau vers le matériel qui peut parfois être plus efficace que l'interface X11.
La bibliothèque SDL peut être trouvée dans devel/sdl12.
L'accès direct au graphique est une extension X11
qui permet à un programme de bypasser le serveur X et
d'accéder directement au matériel. Comme il
repose sur une copie bas niveau de la mémoire, les
programmes l'utilisant doivent être
exécutés avec les privilèges de l'utilisateur
root
.
L'extension DGA et ses performances peuvent être
testées avec dga(1). Quand dga
est
exécuté, il changera les couleurs de l'affichage
à chaque appui sur une touche. Pour quitter, utilisez la touche
q.
Cette section traite des logiciels disponibles dans le catalogue des logiciels portés de FreeBSD qui peuvent être utilisés pour lire de la vidéo. Les applications vidéos sont un domaine de développement très actif, et les capacités de diverses applications seront sujettes à des divergences avec la description donnée ici.
Premièrement, il est important de savoir que plusieurs des applications vidéos fonctionnant sous FreeBSD ont été développées comme des applications pour Linux. Plusieurs de ces applications sont encore considérées comme étant de qualité bêta. Parmi les problèmes que l'on peut rencontrer avec les applications vidéos sous FreeBSD, nous trouvons:
Une application ne peut pas lire un fichier produit par une autre application.
Une application ne peut pas lire un fichier quelle a produit.
La même application sur deux machines différentes, recompilée sur chaque machine pour la machine elle-même, jouera le fichier différemment.
Un filtre apparemment insignifiant comme un changement d'échelle de l'image donne de très mauvais résultats en raison d'une routine de changement d'échelle boguée.
Une application qui plante régulièrement.
La documentation n'est pas installée avec le logiciel
porté et peut être trouvée sur Internet ou
dans le répertoire
work
du logiciel porté.
Parmin ces applications, nombreuses sont celles qui peuvent présenter des “Linuxismes”. Aussi, il y peut y avoir des problèmes résultants de la façon dont certaines bibliothèques standards sont implémentées dans les distributions Linux, ou certaines caractéristiques du noyau Linux qui ont été employées par les auteurs des applications. Ces problèmes ne sont pas toujours remarqués et contournés par les responsables du portage du logiciel ce qui peut mener vers quelques ennuis comme ceux-ci:
L'utilisation de /proc/cpuinfo
pour
détecter les caractéristiques du processeur.
Une mauvaise utilisation des “threads” qui provoque le blocage de programme au lieu de se terminer complètement.
Des logiciels habituellement utilisés en conjonction avec l'application ne sont pas encore dans le catalogue des logiciels portés.
Jusqu'ici, les développeurs de ces applications ont été coopératifs avec les responsables des logiciels portés pour minimiser les modifications nécessaires au portage.
MPlayer est une application pour lire des vidéos récemment et rapidement développée. Les objectifs de l'équipe de MPlayer sont la rapidité et la flexibilité sur Linux et autre UNIX®. Le projet fut démarré quand le fondateur de l'équipe en eu assez des mauvaises performances en lecture des autres lecteurs disponibles. Certains diront que l'interface graphique a été sacrifiée pour une conception rationalisée. Cependant, une fois que vous avez les options en ligne de commande et les combinaisons de touches en main, cela fonctionne très bien.
MPlayer réside dans multimedia/mplayer.
MPlayer
effectue un certain nombre de contrôle du
matériel durant le processus de compilation, il en
résulte un
binaire qui ne sera pas portable d'un système à l'autre.
Ainsi il est important d'utiliser le logiciel porté et de ne
pas utiliser un logiciel pré-compilé.
En plus, un certain nombre d'options peuvent être
spécifiées dans la ligne de commande make
,
comme décrit dans le fichier Makefile
et au départ de la compilation:
#
cd /usr/ports/multimedia/mplayer
#
make
N - O - T - E Take a careful look into the Makefile in order to learn how to tune mplayer towards you personal preferences! For example, make WITH_GTK1 builds MPlayer with GTK1-GUI support. If you want to use the GUI, you can either install /usr/ports/multimedia/mplayer-skins or download official skin collections from http://www.mplayerhq.hu/homepage/dload.html
Les options par défaut du logiciel porté
devraient être suffisantes pour la plupart des
utilisateurs. Cependant si vous avez besoin du codec XviD,
vous devez spécifier l'option
WITH_XVID
dans la ligne de commande. Le
périphérique DVD par défaut peut
également être défini avec l'option
WITH_DVD_DEVICE
, par défaut
/dev/acd0
sera utilisé.
Au moment de l'écriture de ces lignes, le logiciel
porté de MPlayer compilera sa
documentation HTML et deux exécutables,
mplayer
et
mencoder
, qui est un outil pour ré-encoder
de la vidéo.
La documentation HTML de MPlayer est très complète. Si le lecteur trouve l'information sur le matériel vidéo et les interfaces manquante dans ce chapitre, la documentation de MPlayer est une alternative très complète. Vous devriez certainement prendre le temps de lire la documentation de MPlayer, si vous êtes à la recherche d'informations sur le support vidéo sous UNIX®.
Chaque utilisateur de MPlayer doit
créer un
sous-répertoire .mplayer
dans son
répertoire d'utilisateur. Pour créer ce
sous-répertoire nécessaire, vous pouvez taper ce qui
suit:
%
cd /usr/ports/multimedia/mplayer
%
make install-user
Les options de commande de mplayer
sont
données dans la page de manuel. Pour plus de détails
il y a la documentation HTML. Dans cette section, nous
décrirons que quelques unes des utilisations les plus courantes.
Pour lire à un fichier, comme
testfile.avi
en utilisant une des
diverses interfaces vidéo utilisez l'option
-vo
:
%
mplayer -vo xv testfile.avi
%
mplayer -vo sdl testfile.avi
%
mplayer -vo x11 testfile.avi
#
mplayer -vo dga testfile.avi
#
mplayer -vo 'sdl:dga' testfile.avi
Cela vaut la peine d'essayer toutes ces options, comme leur performance relative dépend de nombreux facteurs et variera de façon significative avec le matériel.
Pour lire un DVD, remplacez
testfile.avi
par dvd://
où N
-dvd-device
DEVICE
N
est
le numéro du titre à jouer et
DEVICE
est
le fichier spécial de périphérique correspondant
au lecteur de DVD. Par exemple, pour jouer le titre 3 depuis
/dev/dvd
:
#
mplayer -vo xv dvd://3 -dvd-device /dev/dvd
Le périphérique DVD par défaut
peut être défini lors de la compilation du
logiciel porté MPlayer par
l'intermédiaire de l'option
WITH_DVD_DEVICE
. Par défaut, ce
périphérique est
/dev/acd0
. Plus de détails
peuvent être trouvés dans le
Makefile
du logiciel
porté.
Pour arrêter, avancer, etc..., consultez
les combinaisons de touches, qui sont données en
exécutant mplayer -h
ou lisez
la page de manuel.
D'autres options importantes pour la lecture sont:
-fs -zoom
qui active le mode plein écran
et -framedrop
qui aide au niveau des
performances.
Pour que la ligne de commande à taper ne devienne pas trop
longue, l'utilisateur peut créer un fichier
.mplayer/config
et y fixer les options
par défaut:
vo=xv fs=yes zoom=yes
Enfin, mplayer
peut être
utilisé pour extraire une piste du DVD dans un fichier
.vob
.
Pour récupérer la seconde piste vidéo
d'un DVD, tapez ceci:
#
mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvd
Le fichier de sortie, out.vob
, sera du
MPEG et peut être manipulé par les autres
logiciels décrits dans cette section.
Avant
d'utiliser mencoder
c'est une bonne
idée de vous familiariser avec les options données
par la documentation HTML. Il existe une page de manuel, mais
elle n'est pas très utile sans la documentation en HTML.
Il y a d'innombrables façons d'améliorer la
qualité, diminuer le débit binaire, et
modifier les formats, et certaines de ces options peuvent faire
la différence entre de bonnes et mauvaises performances.
Voici quelques exemples pour y arriver. Tout d'abord une
simple copie:
%
mencoder input.avi -oac copy -ovc copy -o output.avi
De mauvaises combinaisons d'options peuvent conduire
à des fichiers illisibles
même par mplayer
. Aussi, si
vous voulez juste extraire un fichier, restez sur l'option
-dumpfile
de mplayer
.
Pour convertir input.avi
au format MPEG4
avec un codage audio MPEG3 (audio/lame est nécessaire):
%
mencoder input.avi -oac mp3lame -lameopts br=192 \ -ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.avi
Ceci a produit un fichier lisible par mplayer
et xine
.
input.avi
peut être remplacé
par dvd://1 -dvd-device /dev/dvd
et exécuté en tant
que root
pour ré-encoder directement un
titre DVD. Puisque vous êtes susceptible de ne pas
être satisfait du résultat la première fois, il
est recommandé d'extraire le titre vers un fichier et de
travailler sur le fichier.
Le lecteur xine est un projet de grande envergure visant non seulement à être une solution vidéo tout-en-un, mais également de produire une bibliothèque de base réutilisable et un exécutable modulaire qui peut être étendu grâce à des greffons. Il est fourni sous forme pré-compilée et de logiciel porté, multimedia/xine.
Le lecteur xine est encore un peu brut, mais c'est clairement un bon début. Dans la pratique, xine demande soit un processeur rapide avec une carte vidéo rapide, soit l'extension XVideo. L'interface graphique est utilisable, mais peu pratique.
Au moment de l'écriture de ces lignes, il n'y a pas de module d'entrée fourni avec xine qui lira les DVDs codés en CSS. Il existe des versions tiers qui ont des modules à cet effet intégrés, mais aucune de ces dernières ne se trouve dans le catalogue des logiciels portés de FreeBSD.
Comparé à MPlayer, xine fait plus pour l'utilisateur, mais au même moment, rend inaccessible à l'utilisateur certains contrôles bien précis. Le lecteur xine se comporte le mieux sur les interfaces XVideo.
Par défaut, le lecteur xine lancera une interface graphique. Les menus peuvent alors être utilisés pour ouvrir un fichier précis:
%
xine
Alternativement, le lecteur peut être invoqué pour jouer directement un fichier sans l'interface graphique avec la commande:
%
xine -g -p mymovie.avi
Le logiciel transcode n'est pas un
lecteur, mais une suite d'outils pour
ré-encoder les fichiers audio et vidéo.
Avec transcode,
on a la capacité de fusionner des fichiers vidéos,
réparer les fichiers endommagés, en utilisant les outils
en ligne de commande avec des interfaces de flots
stdin/stdout
.
Un grand nombre d'options peut être précisé lors de la compilation du logiciel porté multimedia/transcode, nous recommandons d'utiliser la ligne de commande suivante pour compiler transcode:
#
make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \ WITH_MJPEG=yes -DWITH_XVID=yes
Le paramétrage proposé devrait convenir à la plupart des utilisateurs.
Pour illustrer les capacités de
transcode
, voici un exemple montrant comment
convertir un fichier DivX en fichier MPEG-1 en standard PAL (VCD
PAL):
%
transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
%
mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpa
Le fichier MPEG résultant,
output_vcd.mpg
, peut être directement
lu avec MPlayer. Vous pourrez
même le graver sur un CD pour créer ainsi un
Vidéo CD; dans ce cas vous devrez installer et utiliser
les programmes multimedia/vcdimager et sysutils/cdrdao.
Il existe une page de manuel pour
transcode
, mais il est conseillé de
consulter également le wiki de
transcode pour plus d'information et des
exemples.
Les différents logiciels vidéo pour FreeBSD se développent rapidement. Il est fort possible que dans un futur proche plusieurs des problèmes abordés ici seront résolus. Entre temps ceux qui veulent tirer partie des possibilités audio/vidéo de FreeBSD devront se débrouiller avec des connaissances extraites de plusieurs FAQs et guides et utiliser différentes applications. Cette section existe pour fournir au lecteur des références sur ces documentations additionnelles.
La documentation de MPlayer est techniquement très instructive. Ces documents devraient probablement être consultés par quiconque désirant obtenir un niveau élevé d'expertise sur la vidéo et UNIX®. La liste de diffusion de MPlayer est hostile à toute personne qui n'a pas pris la peine de lire la documentation, aussi si vous projetez de leur envoyer des rapports de bogue, lisez la documentation!
Le HOWTO de xine contient un chapitre sur l'amélioration des performances qui est général à tous les lecteurs de vidéo.
Et enfin, il y a quelques autres applications prometteuses que le lecteur devrait essayer:
Avifile qui est également un logiciel porté multimedia/avifile.
Ogle qui est également un logiciel porté multimedia/ogle.
multimedia/dvdauthor, un logiciel libre pour la création de DVDs.
Ce document, ainsi que d'autres peut être téléchargé sur ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Pour toutes questions à propos de FreeBSD, lisez la
documentation avant de contacter
<questions@FreeBSD.org>.
Pour les questions sur cette documentation, contactez
<doc@FreeBSD.org>.