URL: https://linuxfr.org/users/pseudo007/journaux/mplayer-est-presque-mort-vive-mpv-et-vaapi Title: Mplayer est (presque) mort, vive Mpv (et vaapi) Authors: Pseudo007 Date: 2014年06月09日T16:07:51+02:00 License: CC By-SA Tags: mplayer, mplayer2, mpv, vaapi, multimedia, matos et matériel Score: 69 Damned, il y a longtemps que je n'étais pas venu ici. Mpv semble très très peu connu de linuxfr, donc je vais en faire un peu la promotion. Avant d'en venir à Mpv, je donne le contexte. Il y a moins d'un an je me suis acheté un nouveau PC, from scratch, sans rien garder de l'ancien. J'ai pris du "moderne" sans que ça soit du matos de ouf. Architecture Intel Haswell : - carte mère : Asus Z87-A, le bas de gamme, sans gadget, suffisant et pas moins performant que le haut de gamme. - cpu : Intel i7-4770S (la version qui consomme moins) à 3 GHz. Ce CPU intègre une carte graphique qui me suffit (HD Graphics 4600). Quand on met des sous dans un nouveau, on ne veut pas qu'il soit rapidement obsolète. Pour les vidéos, j'ai eu peur... Le reste de mon matos n'est pas important pour la suite, mais je me permets d'en parler. Je voulais un PC silencieux et qui consomme peu. Boitier avec isolant, alimentation fanless, radiateur CPU fanless, des DD 2'5 de portable sur support avec amortissant pour réduire le rayonnant. Pas de ventilateur pour le boitier non plus. Très très silencieux pour ne pas dire inaudible. J'entends souvent parler de PC silencieux, mais c'est souvent pour des petits serveurs. Je garantis qu'on peut aussi le faire pour un PC de bureau "multi usage". Ceci dit, c'est pas le top pour les jeux, mais je ne suis pas un gamer. Je suis depuis de nombreuses années un utilisateur ravi de Mplayer. Avec la montée de la HD, je l'étais moins. Le problème de synchronisation de la vidéo (vidéo un peu "hachée") se posait de plus en plus même avec un CPU récent. Problème aussi lié à Mplayer ! Les cartes graphiques Intel (qu'on retrouve sur les CPU i7 et d'autres) permettent le décodage et l'affichage de la vidéo via l'interface VAAPI. Il y a VAAPI pour Mplayer, en séparé : https://gitorious.org/vaapi/mplayer/source/e4a658ef28e09e8441630f9028506f5cf7449480: J'ai utilisé, la consommation CPU chute drastiquement grâce à VAAPI, mais... Il reste toujours des problèmes de synchronisation (par exemple avec la TNT HD, qui en plus a presque systématiquement un décalage son/vidéo). Cette branche de Mplayer n'est plus mise à jour depuis longtemps et quand j'avais une nouvelle version de Mplayer, il fallait que je refasse le patch. C'est pas amusant à la longue. Finalement j'ai abandonné. Un jour j'ai découvert que Youtube propose des vidéos en 2160h (contre 1080h en hauteur pour la HD actuelle). Exemple pioché au hasard : https://www.youtube.com/watch?v=suWsd372pQE Inutile de compter sur Flash pour voir ça en 2k. On peut récupérer la vidéo avec youtube-dl (format 138). J'utilise mplayer et j'obtiens : _dimensions are too high: 3840x2160 (maximum is 2048x2048)_ On peut contourner avec "-vf scale=..." mais ça met le CPU à genoux, ou utiliser "-vo gl". Dans tous les cas la restitution reste hachée. Et voila, mon matériel tout rutilant est déjà obsolète. Il y a le problème d'afficher physiquement de telle vidéo (écran 2160h et liaison avec l'écran), mais mettons ça de côté. Les vidéos Youtube n'étant pas très bien codées, du 2160h codé par Youtube donne du bon 1080h. J'ai du matériel moderne, mais je n'arrive pas à lire convenablement des formats de vidéos récents. **Ne serait-il pas possible avec du matériel récent de lire convenablement des formats de vidéos récents sous GNU/Linux ?** Ça me ferait mal. J'ai découvert par hasard Mpv : http://mpv.io/ Dans les grandes lignes, c'est un fork de Mplayer/Mplayer2 qui veut aller de l'avant et qui s'est débarrassé de tous les boulets historiques de Mplayer. Mpv est compatible Mplayer, c'est l'héritage du fork, mais ce n'est pas une priorité et il y a des incompatibilités. Mpv intègre VAAPI. J'ai une fantastique Fedora 20 (qui a les fabuleux systemd et journalctl qui font l'unanimité), mpv est dans le dépôt rpmfusion. Donc "Yum install mpv". Rpmfusion à la version 0.3.6. J'ai mis à jour vers 0.3.10 il y a quelques heures pour voir, ça ne change pas grand chose, des bugs en moins. Pour utiliser vaapi avec Mpv : mpv -vo vaapi (ou opengl) --hwdec=vaapi On peut aussi bricoler /etc/mpv/... ou ~/.mpv/ pour raccourcir la ligne de commande. Avec mpv et vaapi, la consommation cpu est en chute libre, AUCUN problème de synchronisation (enfin !). Pour la vidéo Youtube en 2160h, je peux la lancer 2 fois en parallèle avec "-speed 2" (60 fps), ça passe les doigts dans le nez, fluide. Moins de 10 % CPU par Mpv (pour un thread, le CPU en a 8). Les très gourmands Blu-ray sont (enfin) sans défaut. NB: pensez à avoir la fréquence de l'écran qui correspond à la vidéo ou un multiple pour que ça soit vraiment fluide. Donc revoyez Modeline et "xrandr --newmode" "xrandr --addmode" "xrandr --rate". Je ne fais pas ici un test complet de Mpv, je l'utilise seulement depuis 2 jours. Le projet est récent mais n'empêche... Adieu Mplayer, merci pour les services rendus, et bienvenu à Mpv. J'ai seulement une régression par rapport à Mplayer. Avec VAAPI sur Mplayer, on peut demander à la carte graphique de faire le "désentrelacement" des vidéos entrelacées. Avec Mplayer il y avait doublement de fps (comme "-vf tfields"). Avec Mpv, bien que la doc dit que c'est du désentrelacement "bob", ce n'est pas ce que j'ai vu. Autre avantage de VAAPI, on n'a pas le problème de l'écran qui se rafraichi avec l'image de la vidéo qui en fait est composée de 2 images car le lecteur écrit dans la mémoire de la carte graphique en même temps. Il y a un astuce pour gnome-shell si vous n'utilisez pas VAAPI qui évite ce problème mais qui n'est pas activée par défaut. VAAPI ne permet pas seulement de décoder et afficher des vidéos, VAAPI permet aussi de les coder. Il y a des outils très rudimentaires dans le paquet libva-utils, c'est diablement rapide (plus de 25 fps pour du 1920x1080 en loseless) et ça ne consomme rien. Le CPU qui intègre la carte graphique ne chauffe pas. C'est bluffant. J'espère qu'un jour le codage via VAAPI sera supporté par ffmpeg (ou mpv qui peut coder à l'instar de mencoder). Mpv est un meilleur lecteur vidéo que Mplayer, mais il a aussi quelques raffinements appréciables. Par exemple, si on arrête la lecteure d'une vidéo avec 'Q' (au-lieu de 'q'), Mpv sauvegarde la configuration dont la position de lecture. Quand on relit le fichier, on retrouve la vidéo où on l'avait quittée. En appuyant sur '.' avec Mplayer, on peut faire du image par image. Idem pour Mpv, mais en appuyant sur ',' on peut le faire à reculons. Avec Mplayer si on voulait une copie d'écran, il fallait relancer avec "-vf screenshot". Mpv insère à la volée le plugin qui va bien si on appuie sur 's'. C'est juste une mise en bouche, le reste est à découvrir ici : http://mpv.io/ Je vais faire de ce journal un fourre-tout. Puisque j'ai maintenant un PC très silencieux, pourquoi ne pas en faire un système audiophile ? Je me suis offert un DAC/Ampli Sony UDA-1 (http://www.sony.fr/electronics/amplificateurs-dac-usb/uda-1 , le test Qobuz http://www.qobuz.com/info/Hi-Fi/Bancs-d-essai/Amplificateur-avec-DAC-UDA-1174158 ). Le prix parait élevé, mais pas tant que ça quand on y regarde de plus près et vu l'excellente restitution qu'il donne. La prise casque est également excellente même avec des casques très exigeants. Ce DAC/Ampli marche parfaitement sous Linux (je l'utilise comme il se doit via USB). Rien à installer, en tout cas avec Fedora 20. Sans surprise, il n'y a aussi aucun souci avec le génial Pulseaudio (à configurer pour les hautes fréquences et le 24/32 bits néanmoins si on veut abuser du DAC avec des fichiers en haute résolution). On peut donc couper l'ampli sans que ça foute le bordel. D'ailleurs l'ampli a un switch pour une mise en veille automatique. Ce n'est pas une vraie mise en veille, ça coupe vraiment l'ampli. Il ne se remet pas en marche automatiquement, mais s'est appréciable. PS: Si des trolls se sont malencontreusement glissés dans ce billet, je m'en excuse d'avance.