lundi 17 mai 2004, 11:21
Ma Divxbox : Configurer la sortie TV
Configurer la sortie TV est l'étape la plus importante (et aussi la plus difficile) dans la réalisation de la divxbox. Les enjeux sont énormes :
- Sans sortie TV pas de divxbox :)
- La sortie TV doit permettre d'utiliser correctement la carte vidéo pour lire les vidéos, par exemple la vo xv de mplayer pour soulager le cpu
- La sortie TV doit être de bonne qualité, parceque regarder un film avec un affichage tout pourri , ça gache tout !
J'ai personnellement bien lutté pour obtenir une sortie TV correcte, mais bon je n'ai jamais eu beaucoup de chance avec Linux. Donc tout ce que je peux vous souhaiter c'est de trouver la bonne carte du premier coup !
NVidia GeForce 2 MX 400
Mon premier essai est avec une ancienne GeForce 2 MX 400 équipée d'une sortie TV composite. Au boot, la sortie TV s'active toute seule et reste à peut près potable pour le mode console pur et dur.
Le framebuffer par défaut active egalement la sortie TV sans problème. Il faut juste regler la résolution dans le fichier /etc/lilo.conf
avec le paramètre vga
. Par exemple vga=789
pour un affichage 800x600 en 16 millions de couleurs. Ci-après le tableau de tous les codes (il me semble que certains ne fonctionnent qu'avec bootsplash).
Colors-----640x480-----800x600-----1024x768-----1280x1024 256----------769---------771----------773----------775 32000--------784---------787----------790----------793 65000--------785---------788----------791----------794 16.7 Mill.---786---------789----------792----------795
Pour XFree 4.3 maintenant, c'est une autre paire de manches à tordre. Les drivers libres ("nv") sont, d'après ce que j'ai pu tester, incapables de gerer tout seul la sortie TV (sans parler du fait qu'il n'y aura aucune acceleration 3D). Donc il faut installer les drivers propriétaires et configurer XFree. Heureusement, les drivers de NVidia, malgré leurs nombreux défauts, sont relativement bien documentés concernant la sortie TV (voir APPENDIX J: CONFIGURING TV-OUT dans le README des drivers).
En résumé, il faut ajouter des sections screen et monitor correspondantes à la télé :
Section "Monitor" Identifier "TV" HorizSync 30-50 VertRefresh 60 EndSection Section "Screen" Identifier "tvout800" Device "geforce" Monitor "TV" DefaultDepth 24 Option "TVStandard" "PAL-N" Option "ConnectedMonitor" "TV" Option "TVOutFormat" "COMPOSITE" Option "NoLogo" "on" Subsection "Display" Depth 24 Modes "800x600" ViewPort 0 0 EndSubsection EndSection
Mon fichier de config complet pour XFree 4.3 est disponible par ici.
Un programme permet egalement de bidouiller la sortie TV des cartes nvidia : nvtv
. Honnetement j'ai toujours pas compris comment il fonctionne, comment on enregistre la configuration, etc... Et puis comme les drivers proprios donnent de bons résultats j'ai laissé tomber.
Pour lancer Xfree sur la télé j'utilise la commande :
startx -- -screen tvout800
Ensuite je peux lancer mplayer, mais c'est là que ça se gâte. La vo x11 fonctionne bien mais, comme elle n'utilise pas du tout les possibilités de la carte graphique, pompe la quasi-totalité du CPU (surtout en plein écran à cause du redimensionnement). Bref inutilisable. L'idéal est la vo xv, mais là suprise, alors que sur un écran ça fonctionne, sur la télé il y a des bandes bleu vif sur la gauche et sur le haut du film !
Pour l'instant je n'ai rien trouvé sur le net se rapportant à ce problème, après plusieurs nuits blanches j'ai donc décidé de laisser tomber cette carte. Cela dis si une star en Linux connait la solution à ce problème, je suis toujours preneur :)
ATI Rage 128
En cherchant un peu suite à mes déboires avec la GeForce2, j'ai vu ça et là que les sorties TV des cartes ATI était censé être beaucoup mieux que les NVidia. Bah ça tombe bien j'ai une ATI Rage 128 AGP sous la main...
Comme précedemment, la console standard et le framebuffer s'activent sans problème (à condition que la sortie TV soit branchée au boot).
Par contre, les drivers r128
par défaut de XFree n'affichent rien du tout sur la télé, et pire, si la sortie TV est branchée au boot, l'affichage sur l'écran déconne ! Bon il existe un programme, atitvout
, qui est censé activer les sorties télé des cartes ATI... Manque de bol avec ma carte il ne fonctionne pas, et comme il n'est plus maintenu par l'auteur il ne faut pas trop esperer...
Je me suis ensuite tourné vers les drivers Gatos, qui sont censés faire des miracles et notamment activer la sortie TV des Rage 128. Encore une fois manque de bol avec ma carte ils ne fonctionnent pas.
En dernier recours, j'ai tenté les drivers vesa
. Evidemment ils fonctionnent bien mais :
- Aucune acceleration 3D
- Aucune vo performante disponible pour mplayer (uniquement
vesa
) - La qualité des films en vo vesa n'est pas top (problème de rafraichissment je suppose)
Sur le site de BibooBox il y a d'autres solutions proposées, mais aucune d'entre elles ne fonctionnaient avec mon modele de Rage 128. Bref c'est inutilisable, alors j'ai laissé tomber cette carte.
NVidia GeForce 4 MX 440
N'ayant plus aucune vieille carte disponible sous la main, et n'ayant plus rien à perdre, j'ai pris une GeForce 4 MX 440 (les cartes pas chères pour bureautique de NVidia) d'un PC qui ne servait plus trop pour la tester sur la DivxBox...
J'ai utilisé exactement la même config que pour la GeForce 2 MX 400, sauf que là, surprise, pas de bandes bleues sur la sortie xv ! La vidéo est niquelle, et (seulement) 25% du CPU sont utilisés pour lire un divx (vo xv rulez !)
Bon il faut bien l'admettre, mettre une GeForce 4 (même si c'est une MX) dans un p3 500 je trouve que c'est un peu du gâchi parceque j'avais des vieilles cartes à recycler. Mais ça faisait déjà trop longtemps que je cherchais à faire fonctionner une sortie TV correcte, alors maintenant que ça fonctionne je garde !
Autres pistes : Carte de décompression MPEG (dxr3)
J'ai retrouvé dans les placards une vieille carte de décompression MPEG2 (dvd) "Hollywood +", équipée d'une sortie TV S-VIDEO ainsi que d'une sortie Audio. Après quelques recherches, j'ai découvert que ce type de carte était bien gérée sous Linux. Chouette !
Liens :
Encore une fois je remercie cette merveilleuse distribution qu'est Debian, puisque des paquets sont dispo pour configurer très facilement cette carte. Leur nom commence par em8300
. L'un deux installe tout ce qu'il faut (device, fichier de conf, etc...) et un autre contient les sources pour compiler un module noyau (à la sauce debian, c'est à dire make-kpkg module-image
dans les sources du noyau). Bref si on est un peu à l'aise avec les méthodes de Debian ça se fait très facilement (même moi j'ai reussi tout seul, c'est pour dire !)
Je n'ai toutefois pas pousser plus loin cette solution, pour plusieurs raisons :
- La sortie TV en S-Video, ça suxor un peu quand on a pas de quoi la convertir en Composite ou Peritel (seules prises gérée par ma télé :)
- Il faut recompiler mplayer avec le support dxr3. Et pour utiliser Freevo il faut egalement recompiler la libSDL comme indiquée sur la doc de Freevo
- Les applications qui n'utilisent pas la libSDL pour l'affichage ne pourront pas s'afficher sur la sortie dxr3 (en tous cas je n'ai pas trouvé comment)
Malgré ça, l'utilisation d'une carte de décompression présente des avantages non négligeable :
- Permet de lire des DVD sur des petites machines
- La mienne possède une sortie audio, gérée par OSS, donc pas besoin de carte son supplémentaire à priori...
- Pareil pour la carte graphique, il serait surement possible de s'en passer...
A toi de voir...
Par cgo2, dans GNU/Linux
Commentaires
Salut,
ça c'est un tuto qui sert à quelque chose (pcq sur le net y a plein de truc qui servent à rien). J'ai une geforce2 MX440.
En suivant les expliquations pas à pas, nikel du premier coup ça marche ! Si on pouvais trouver que des tuto comme ça sur le net ça serait niklel !!!!!
Et pour les traits bleu sur les côté moi c'est bon y pas !!!
a++
Bonjour,
J'ai une carte graphique sur mon pc portable hp pavilion dv9017 NVidia GeForce Go 7600, j'ai branché la prise svidéo en sortie pc vers le branchement tv svidéo pour pouvoir afficher l'image vidéo de mon pc, je n'ai aucune image sur le téléviseur, je ne sais pas trop comment savoir si ma carte à une sortie tv, il y aurait-il quelqu'un qui pourrai m'aiguiller s'il vous plaît?
Je suis pas sûr de comprendre la question, mais si tu veux savoir si ta carte à une sortie TV je te répond oui, car c'est le cas sur tous les portables.