PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Artisan Numérique : Petite introduction à VIM

jeudi 14 mai 2015 à 23:48

Cela fait quelques temps déjà que j'évoque VIM au détours de divers billets sans jamais m'y arrêter vraiment. Du coup, j'ai reçu deux trois messages me demandant d'en parler un peu plus. Dans ces mêmes messages il m'a été (très gentiment) "reproché" de faire des articles un peu trop fleuves. Du coup je vais essayer de saucissonner un peu plus qu'à l'accoutumée pour commencer par une introduction très générale à VIM. Le reste (customisation, plugins, etc.) viendra plus tard.

Mais d'où sors-tu une telle vieillerie ?

Que voulez-vous, dans ce monde d'iPad et autres doudoux numériques, même les développeurs veulent que ça claque, que ça brille, que ça gigote, et comme VIM ne fait rien de tout cela, ça ne les excite que peu... Mais de là à considérer VIM comme une vieillerie c'est aller un peu vite en besogne.

Ceci étant dit, VIM est effectivement un "vieux" logiciel qui existe depuis plus de 10 ans et qui s'inspire de VI qui lui est né dans les années 70... Pour la petite histoire, son auteur (celui de VIM) cherchait à créer un clone de VI pour l'Amiga en partant du code de STvi, un clone de vi pour Atari... VIM voulait à l'époque dire VI iMitation et ce n'est que plus tard qu'il devint VI iMproved.

C'est sans doute cette longue histoire qui donne à VIM son côté faussement ventage. Mais ce serait oublier un peu vite qu'un logiciel doté d'un tel héritage, c'est aussi plus de 30 ans d'améliorations et de perfectionnements. Et c'est aussi oublier que VIM est un projet actif même s'il ne suit pas le modèle de rythme effréné adopté par la fondation Mozilla, ce que nous serons je pense peu à lui reprocher...

Maintenant si l'on se base uniquement sur les fonctionnalités, VIM propose absolument tout ce que vous pouvez trouver ailleurs. Auto-complètement statique ou dynamique (en fonction du contexte), multi-documents, multi-fenêtrage, onglets, personnalisation extrême et langage de script, coloration syntaxique (avec thèmes dynamiques et plusieurs centaines de formats de fichiers reconnus !!), auto-indentation, reformatage, supports de plugins (en perl, en python, en ruby, en Tcl, etc.), prise en charge des écritures de gauche à droite, replis (possibilité de plier automatiquement ou manuellement des portions de texte), gestion native de diff, etc, etc. Et tout ceci en restant léger en mémoire et très très rapide.

Côté parfums, VIM en deux déclinaisons : mode texte dans un terminal, mode graphique avec l'application gVim qui fonctionne sous Gtk2, mais aussi nativement sous MacOS, Windows, etc. Avouons qu'en virant la carrosserie de pas mal d'éditeurs "hype", il ne leur reste pas toujours de quoi faire rougir VIM...

Notez au passage que la version graphique de VIM exploite un cœur commun avec la version texte qu'elle habille plus qu'autre chose de menus déroulants, assesseurs, menus contextuels et autres barres d'outils. Cela signifie que même si vous utilisez la version graphique, en faisant gaffe à deux trois trucs, toute votre configuration et vos plugins fonctionneront sur la version console et vice-versa. Et c'est un plus non négligeable je vous l'assure, que de pouvoir intervenir à distance via SSH sur la machine d'un client avec SON PROPRE environnement configuré aux petits oignons... Car petit détail qui compte, plus que rares sont les GNU/Linux qui n'ont pas VIM installé en standard.

Comme vous le voyez à travers cette liste à la Prévert, VIM est loin d'être l'éditeur ringard décrit par certains. Et son héritage avec VI est à prendre plus au sens philosophique qu'au sens littéral.

Moi je veux bien mais quant j'y tape un truc, y'a rien qu'imprime !!

Ah vi, la philosophie de vi :-) Comme c'est déroutant la première fois.. Papi se souvient la larme à l'œil le nombre de fois où il a manqué d'envoyer contre un mur le clavier de son terminal.. Un machin en texte connecté à un, déjà à l'époque, antique IBM 6150... Non sérieusement, je ne blâmerais pas celui qui me dira que vi n'est pas simple d'accès, car c'est un fait, vi est à l'opposé de tout ce que vous avez jamais utilisé pour éditer un texte jusqu'à aujourd'hui.

Le point clef à comprendre est que vi est modale alors que tous les autres éditeurs sont visuels. Certains dirons, et je ne trouve pas cela si idiot que cela, que vi est l'éditeur du cerveau gauche et que les autres sont calés sur le cerveau droit.

En effet, vi décompose l'action d'éditer un texte principalement (mais il y en a bien d'autres) en deux modes :

  • Le mode normal qui permet de naviguer et d'effectuer des opérations d'altération.
  • Le mode insertion qui permet de taper du texte au kilomètre.

Et comme VI démarre en mode normal, pour taper son premier texte, il faut commencer par presser i de sorte à passer en mode insertion (Esc permettra de revenir au mode normal). Sans cela, c'est la cata car tout ce qui est tapé sera interprété comme des commandes à appliquer sur le texte. Voilà l'origine de ce qui énerve un néophyte arrivant la bouche en cœur sous VI pour modifier une pauvre config et qui n'arrive qu'à la pourrir un peu plus...

Pour comprendre l'origine de cet étrange découpage, il faut encore remonter dans le temps. Je vous parlais plus haut de mon IBM 6150 que l'on appelait à l'époque un MainFrame, un "gros" serveur auquel était relié par des liaisons série des terminaux, sortes de minitels évolués. Tout ce que l'on tapait était transmis au serveur, qui l'interprétait et renvoyait au terminal ce qu'il fallait afficher sur l'écran (ça ne vous rappelle pas le web ;-) Comme vous pouvez l'imaginer les transmissions étaient lentes, d'autant plus lentes que l'on était plusieurs à bosser sur le pauvre CPU à 5.9Mhz et ses colossales 1Mb de mémoire. Le choix de l'approche modale était donc avant tout une question d'économie des touches tapées pour effectuer le maximum d'opérations en un minimum d'octets.

À cette contrainte se rajoutait, dans une moindre mesure, des claviers souvent réduits au minimum, sans flèches ni pavé numérique. Le principe de la modalité était donc d'utiliser l'ensemble des touches alphanumérique pour les opérations courantes. Ainsi pour détruire un bloc de 10 lignes, ce qui correspondait avec un éditeur type wordstar à Ctrl-K-B, 10xflèche Bas, Ctrl-K K, Ctrl-K Y s'écrivait en VI : 10D. Je vous laisse calculer l'économie... Le modalité permet donc de "multiplexer" les touches en leur donnant une signification différente selon les contextes.

Alors de nos jours, est-ce que cette économie a encore un sens ? Je pense que oui, et ce pour plusieurs raisons :

  • Ce qui allait vite hier va tout aussi vite aujourd'hui. Une fois que vous commencez à maîtriser les commandes, VIM devient absolument ahurissant de rapidité. Et comme il a été pensé depuis des dizaines d'années dans ce sens, vous passez votre vie à découvrir des perles vous faisant gagner encore du temps. Par exemple, j'ai découvert ce matin qu'en mode normal, si je suis entre deux guillemets et que je veux remplacer tout ce qui se trouve entre ces guillemets par un autre texte, il me suffit de taper ci". Cela supprime tout ce qui se trouve entre les guillemets et passe tout seul en mode insertion, me permettant de saisir le texte en remplacement. Cela fonctionne sur tout caractère de type ouvrant/fermant, y compris les parenthèses... Pratique non ?
  • Pour qui tape beaucoup de texte (développeur, rédaction d'articles, etc), toute économie de pression sur le clavier se ressent directement sur des doigts et les poignets moins douloureux en fin de journée. A l'heure où l'on parle de plus en plus des troubles musculo-squelettiques liées à l'usage de l'informatique, VI se trouve ici un nouveau statut d'éditeur zen pour les articulations.
  • VIM se contrôle entièrement au clavier. La souris y fonctionne parfaitement mais n'est en aucun cas nécessaire. Et là aussi c'est une cause de trouble musculo-squelettique en moins, et pas des moindres celle-là. Pour rire, tapez un texte ou du code avec votre éditeur habituel mais mettez la souris beaucoup plus loin que d'habitude. Vous prendre ainsi conscience du nombre de fois où votre bras doit 'décoller' du clavier pour aller chercher le mulot, puis revenir au clavier. Et tout cela juste pour une simple sélection de bloc de texte à copier que vous auriez fait avec VIM par un Esc 10Y (copie-moi les 10 lignes qui suivent sous le curseur).

Donc oui, une bonne partie de l'optimisation du contrôle de VIM vient d'un âge révolu, mais le système qui en est sorti est toujours d'actualité. Et c'est important à garder en tête pour tacler aussi les vimmers sado-maso. Ceux qui disent par exemple qu'un vrai vimmer, n'utilise pas les flèches et doit privilégier les touches h (gauche), l (droite), j (bas) et l (haut). Ne riez pas, j'en connais qui désactivent exprès les flèches pour se forcer à utiliser ces touches !! Car oui cela économise encore un peu de mouvements du poignet ce qui ne peut pas faire de mal, je ne le conteste pas. Mais 1/ ces touches de directions existent avant tout parce qu'à une lointaine époque il n'y avait simplement pas de flèches sur le clavier 2/ pour tous ceux qui bossent sur un portable, les touches de directions sont maintenant totalement intégrées au corps central, et c'est aussi le cas pour beaucoup de claviers semi-compacts 3/ Et pour les claviers 102 touches à l'ancienne, on ne va pas en faire des tartines juste pour un déplacement de 5 cm à tout casser, faut pas déconner non plus...

Bref, il faut savoir raison garder et chercher plutôt à capter la philosophie d'ensemble et dans tous les cas, il faut que cela reste ludique ! Promis, vos dents ne vont pas tomber si vous faites des entorses à l'Esprit VI. Moi-même je le confesse mon père, j'ai péché. J'ai créé prés de 50 lignes de redéfinition de touches juste pour sélectionner visuellement une zone par Shift-flèches haut/bas/gauche/droit. J'ai même fauté avec la combinaison Control-Shift-flèches... Ben entre nous, au delà de mes dents qui sont toujours là, c'est tout de même bien pratique lorsqu'on veut sélectionner un bloc sans avoir à compter les lignes...

VIm est un outil qui fait plaisir, essayez de comprendre comment il fonctionne mais ne vous martyrisez pas non plus. Et rapidement, si vous gardez l'esprit jouer, tout cela deviendra tellement naturel que vous pousserez de vilains jurons en utilisant OpenOffice parce que vous aurez salopé votre texte en y tapant ggVG> (oui, ça veut dire quelque chose en VIM;-).

VIM ou gVIM, le choix des armes

Là, pas de grands discours à faire c'est une question de goûts. Les deux moutures sont aussi performantes l'une que l'autre. La gestion de la souris en mode console est proprement excellente (vous pouvez redimensionner les fenêtres, sélectionner des blocs, etc) ce qui diminue encore l'espace entre les deux.

Pour l'heure j'utilise la version console (cf copie d'écran) avant tout parce que j'apprécie de pouvoir lancer mon environnement de développement sur des machines distantes ne disposant pas de couche graphique. N'utilisant pas les menus déroulants et les barres d'outils, la version graphique m'apporte peu mais là encore c'est une question personnelle qui n'a au fond que peu d'incidence.

Encore du blabla ou on pratique un peu ?

Moi qui comptait faire court, c'est vaguement loupé. Ceci dit ici ce n'est pas vraiment le site de la "barrière des 1000 mots" ;-) Ceci dit je vais essayer de me rattraper par ce chapitre de mise en selle.

Comment j'écris un truc ?

Lorsque vous lancez VIM pour la première fois, vous arrivez sur une page remplie de ~ (qui signifie "ligne vide"), un message de bienvenue vous invitant à faire une donation à l'association humanitaire de l'auteur originel de VIM, un peu d'aide et 2 lignes vides en bas de l'écran. Les ~ représentent la fenêtre principale d'édition, la première ligne vide la barre de statut et la seconde la barre de commandes.

Comme nous l'avons vu plus haut, VIM à son démarrage est en mode normal. Pour commencer une saisie, nous devons basculer en mode Insertion. Pour cela pressez la touche i (ou Insert, ça marche aussi). A la première lettre que vous allez saisir le message d'accueil va disparaitre. Tapez ainsi plusieurs lignes, puis pressez Esc pour revenir au mode normal.

Et si je veux le modifier ?

S'il s'agit de petites tâches comme ajouter/supprimer des caractères par-ci par-là, vous pouvez rester ou revenir au mode insertion. Sinon en restant en mode normal il est possible de faire des choses plus intéressantes. Vous pouvez par exemple détruire la ligne sous le curseur (dd). En réalité elle n'est pas détruite mais déplacée dans un registre (une sorte de presse-papier). Ainsi si vous tapez p (sorte de "coller") elle vous sera restituée. Souvent les commandes du mode normal peuvent être précédée d'un chiffre. Ainsi si vous tapez 2dd, vous transférez dans le registre non pas une mais deux lignes. Si vous voulez copier et non supprimer, remplacez d par y (yank). Ainsi pour copier deux lignes, ce sera 2yy ou 2Y pour sa version encore plus courte.

Moi j'aime pas compter...

Si vous avez la flemme de compter les lignes, vous pouvez passer en mode Visuel en pressant (en mode normal) la touche V (notez la majuscule). Là vous pouvez bouger le curseur et étendre la sélection. Pour copier/supprimer, ce sera les mêmes lettres que le mode normal mais une seule fois (d pour déplacer dans le registre, y pour copier dans le registre). Bien évidement il y a plein d'autre commandes comme par exemple > ou < pour indenter/désindenter le bloc en cours. Cela fonctionne aussi en mode normal en doublant. Par exemple 10>> en mode normal va indenter les 10 lignes sous le curseur, curseur compris.

En réalité il y a trois modes visuels. Le mode V est le mode visuel "par ligne". On peut lui préférer le mode visuel "par caractères" en tapant (en mode normal) la lettre v (en minuscule). Vous pouvez maintenant vous déplacer à gauche et à droite, en haut et en vas pour surligner une zone exactement comme vous l'auriez faut avec une souris. Comme pour V vous pouvez appliquer des commande de copie, etc.

Pour le plaisir, le troisième mode visuel est le mode "bloc" accessible par Control-v. Très pratique pour supprimer des colonnes de texte mais pas seulement. Pour le fun, passez en mode insertion et saisissez trois mots, un par ligne. Revenez en mode normal par Esc, allez sur le premier caractère du premier mot puis pressez Control-v. Sélectionnez ainsi les 3 premiers caractère de vos trois mots et pressez I (majuscule) puis Mot:, puis enfin Esc. Magie, vos trois mots sont maintenant précédés par ce que vous venez de taper.

Des "astuces" comme cela, sans rigoler, il y en a des milliers... Une petite pour la route ? Comment exécuter une commande du mode normal sans pour autant sortir du mode insertion. Un usage type est de vouloir détruire la fin de la ligne où se trouve le curseur alors que je suis en mode insertion. Normalement il aurait fallut que je tape Esc (pour repasser en normal), puis d$ qui permet de détruire tout jusqu'à la fin de la ligne ($ signifie jusqu'à la fin. Si à l'inverse vous désirez détruire du début jusqu'au curseur utilisez ^). Ensuite je dois re-presser i pour revenir en insertion, un peu longuet... Et si c'est long c'est qu'il y a forcement un autre moyen. Ce moyen c'est Control-o. En mode insertion si vous pressez Control-o cela vous bascule en mode normal juste pour une commande et vous replace en insertion juste après. Notre destruction se simplifie donc par un Control-od$, beaucoup mieux :-)

Et si ce n'est pas encore assez rapide pour vous, comme soufflé en commentaire, vous pouvez utilisez le raccourcis sur d$, D (majuscule). Ce qui nous donne Control-oD.

Ok, mais comment je sauve ?

La sauvegarde du texte comme beaucoup d'opération générales passe par la saisie d'une commande en mode... commande. Ce mode est accessible à partir de tous les modes sauf insertion par la touche :. Lorsque vous la pressez, le curseur se déplace sur la dernière ligne de l'écran, la barre de commande. Vous pouvez alors saisir votre commande puis l'exécuter en pressant entrée.

Pour sauvegarder notre texte, nous allons utiliser la commande :write mon_fichier.txt (lorsque je commence par un : cela veut dire une commande en mode commande et je sous entends qu'il faut presser entrée pour l'exécuter). Sous VIM tout s'abrège pour aller plus vite et vous pouvez donc remplacer cela par :w mon_fichier.txt.

Bien évidement, une fois que vous avez sauver avec un nom, aucun besoin de répéter ce nom les fois suivantes. Faites un :w et cela suffira.

Dans la série des commandes utiles, :edit nouveau_fichier.txt (qui s'abrège en :e nouveau_fichier.txt) permet d'ouvrir un fichier. Si ce fichier existe, vous pouvez utiliser les tabulation en mode commande pour chercher son chemin comme sous Bash. Si ce fichier n'existe pas, il sera créé lorsque vous le sauvegardez (et pas avant).

Et comment je ME sauve ?

On me le souffle en commentaire, j'en oublie un morceau pour le moins important. Pour quitter, c'est la commande :quit (ou :q). Si vous n'avez pas sauvé vos fichier VIM va couiner. Pour éviter cela (et si vous souhaiter perdre vos modifications !!!) utilisez le bang ! qui veut très souvent dire "fait pas ch--r" dans le monde VIM. Ainsi q! quittera sans poser de question.

Mais souvent on veut sauver et quitter, ce qui s'écrit :wq (oui, on peut combiner les commandes d'une seule lettre). Mais comme c'est un truc que l'on fait souvent, il y a bien évidement un version en une seule lettre :x.

Conclusion

Voilà qui devrait je pense suffire pour commencer à utiliser VIM en mode "même pas peur". Après le net est littéralement gavé de sites, tutoriaux et vidéos, expliquant tel ou tel aspect de ce fantastique éditeur. Il n'y a qu'à chercher vous trouverez votre bonheur à commencer par ces très bonnes planches visuelles pour se repérer dans les différents modes.

Maintenant à défaut de vous avoir expliquer toutes les arcanes de VIM, j'espère au moins vous avoir donné envie de l'essayer. Et croyez moi, je n'ai qu'à peine effleuré 1 petit pourcent du sujet. La customisation du VIM par exemple est un monde à part entière et chaque vimmer fini à terme par disposer d'un éditeur totalement personnalisé. Mais cela, nous le verrons une prochaine fois.

Tweet

Gravatar de Artisan Numérique
Original post of Artisan Numérique.Votez pour ce billet sur Planet Libre.

Articles similaires

antistress : L'astuce du jour pour Firefox : capturer l'intégralité d'une page

jeudi 14 mai 2015 à 00:55

Super heros capé arborant le logo de Firefox sur la poitrine
Captain Extensions, c'est aussi des astuces
(et du coup ça colle plus trop avec le nom maintenant)

Voici une astuce pour Firefox qui vous fera économiser une extension :

« Qui ne s'est jamais retrouvé embêté en voulant capturer une page qui débordait de l'écran ? » interrogea le Captain à la cantonade.
La foule fut parcourue d'un long murmure.
« Personne, j'en étais sûr ! » conclut le Captain, satisfait car il aimait se rendre utile.

Car, oui !, Captain Extensions a la solution pour vous, braves gens !

L'astuce consiste à lancer la console réservée aux développeurs, appelée « barre de développement » dans Firefox, qui est accessible soit par le menu, soit par le raccourci clavier Maj+F2.

Saisissez alors la commande « screenshot --fullpage » (tabulez pour bénéficier de l’auto-complétion – et mais attendez : encore une astuce !) suivie d'une espace et du nom que vous souhaitez donner au fichier.

Validez : la capture est alors sauvegardée directement dans le dossier des téléchargements.

« Hoooo ! » s'exclama la foule, toute acquise à la verve du Captain, tandis que celui-ci s'envolait déjà pour de nouvelles aventures, sûr d'avoir accompli son devoir.

NB  : dans les commentaires, Okki donne une méthode encore plus simple !

L'illustration en tête de ce billet est une composition réalisée par mes soins à partir de cette image et donc soumise à la même licence CC BY-NC-SA que cette dernière.


Get Firefox Button

Gravatar de antistress
Original post of antistress.Votez pour ce billet sur Planet Libre.

Articles similaires

Artisan Numérique : Guide pratique pour mplayer

jeudi 14 mai 2015 à 00:17

Mplayer n'est pas le seul lecteur audio/vidéo sur la planète libre, mais c'est de loin le lecteur en ligne de commande qui cumule le plus d'avantages à mes yeux. Il est rapide, lit tout ou presque sans jamais râler, s'adapte à toutes les situations matérielles et tout cela avec des options en ligne de commande qui ne demande pas un doctorat en araméen pour être utilisées (cf. VLC).

Dans ce tuto nous allons voir comment utiliser Mplayer dans divers cas d'usage comme la lecture de DVD, de webcam ou encore d'une emission TNT.

Pour débuter...

mplayer est un lecteur et seulement un lecteur. Il ne fait pas comme VLC de diffusion mais comme VLC, se base sur de pseudos URL pour déterminer le type de source. La plus basique est l'URL "locale" de type file:///mom_dossier/ma_vidéo.avi, qui peut se contracter en /mon_dossier/ma_vidéo.avi.

gastonmplayer /mon_dossier/ma_video.avi
Lecture d'un vidéo locale

Déjà comme cela, mplayer devrait correctement lire votre vidéo. Il est cependant possible qu'il soit nécessaire de régler plus finement le type de sortie audio ou vidéo à utiliser, ce qui correspond respectivement aux paramètres -ao et -vo.

La liste des modules de décodage disponibles dans chacun des deux cas est accessible en tapant simplement mplayer -ao help ou mplayer -vo help. Ainsi, sur mon U810, il est clairement plus efficace de lire la vidéo avec le greffon -vo gl (utilisant OpenGL) qu'avec -vo xv activé par défaut. Du coup, si je veux lire ma vidéo en forçant la sortie GL et l'audio ALSA, nous obtenons la commande suivante :

gastonmplayer -vo gl -al alsa /mon_dossier/ma_video.avi
Lecture d'une vidéo en utilisant OpenGL et ALSA

Réparation des indexes

Si la vidéo a mal été encodé, ou si comme moi vous êtes une vraie feignasse qui n'attends jamais qu'une vidéo soit entièrement téléchargée pour la lire (je parle de la vidéo du dernier repas de famille évidemment !), mplayer dispose d'une option bien pratique de reconstruction de l'indexe des fichiers AVI. Pour l'activer, il suffit simplement d'ajouter -idx à mplayer. Ceci fait, vous pourrez vous déplacer normalement dans la vidéo.

Sous-titres

Enfin l'ajout de sous-titres au format texte (ex. fichier .srt) est possible sur n'importe quelle vidéo, soit automatique si le fichier a exactement le même nom que le fichier avi, soit en spécifiant le chemin et le nom du fichier des sous-titres par l'option -sub.

gastonmplayer -sub en_anglais.srt /mon_dossier/ma_video.avi
lecture d'un AVI avec les sous-titres

Forçage du type de conteneur

Normalement mplayer détecte tout seul le format du conteneur passé en paramètre. Il arrive cependant que le fichier soit mal gaulé et que cette détection se révèle hasardeuse.

Dans ce cas il est possible de forcer un type de conteneur, ou plus exactement le module chargé de décoder le conteneur. Par exemple lavf pour le format DV. Comme toujours pour ce type d'argument indiquant un module, il est possible d'en obtenir la liste via mplayer -demuxer help :

gastonmplayer -demuxer lavf mauvais_fichier.dv
force la lecture d'un fichier DV avec lavf

Navigation au clavier

A partir du moment où la vidéo est en route, le déplacement se fait par les flèches gauche/droite, haut/bas pour de plus grands déplacements, et page up et page down pour d'encore plus grands bonds.

Le volume quant à lui se change par les touches * et /, le passage d'une piste à l'autre par < et > et la bascule en plein écran par f. La pause se fait par la touche espace et vous pouvez à tout moment quitter mplayer par la touche q.

L'activation/désactivation des sous-titres se fait par la touche v, F pour forcer leur affichage, et le passage d'une langue à l'autre par y et g.

Enfin si vous notez une désynchronisation entre l'audio et la vidéo, il est toujours possible d'ajuster cela avec les touches + et -.

Lecture par liste

S'agissant des listes de lecture, vous devez passer la référence du fichier en paramètre avec l'option -playlist

une simple playlist au format WinAMP
gastonmplayer -playlist ma_playlist.m3u

une playlist via le réseau, ici la liste de la FreeBox TV
gastonmplayer -playlist http://mafreebox.freebox.fr/freeboxtv/playlist.m3u

Lecture d'un DVD

En utilisant le système d'URL de mplayer, il est bien entendu possible d'attaquer directement un lecteur de DVD :

gastonmplayer dvd://
lecture d'un DVD

La navigation dans un DVD est normalement possible mais n'a jamais réussi à fonctionner chez moi. Elle se fait en remplaçant dvd:// par dvdnav//.

Tel quel, la lecture se fera à partir du plus long titre, qui est généralement celui du film lui-même. Il est cependant possible de sélectionner un titre particulier en ajoutant son numéro après le //

gastonmplayer dvd://2
lecture d'un DVD à partir du titre 2

Il est aussi possible de sélectionner la langue par ordre de priorité avec -alang fr,en (d'abord le français, puis l'anglais), ainsi que les sous-titres avec -slang en,fr.

Pour connaître la structure d'un dvd , il est possible d'utiliser la commande lsdvd :

gastonlsdvd -as
Disc Title: WATERWORLD
Title: 01, Length: 02:09:38.140 Chapters: 17, Cells: 18, Audio streams: 05, Subpictures: 10
Audio: 1, Language: en - English, Format: ac3, Frequency: 48000, Quantization: drc, Channels: 5, AP: 0, Content: Undefined, Stream id: 0x80
Audio: 2, Language: de - Deutsch, Format: ac3, Frequency: 48000, Quantization: drc, Channels: 2, AP: 0, Content: Undefined, Stream id: 0x81
...
Audio: 5, Language: es - Espanol, Format: ac3, Frequency: 48000, Quantization: drc, Channels: 2, AP: 0, Content: Undefined, Stream id: 0x84
Subtitle: 01, Language: en - English, Content: Undefined, Stream id: 0x20,
Subtitle: 02, Language: pt - Portugues, Content: Undefined, Stream id: 0x21,
...
Subtitle: 10, Language: fr - Francais, Content: Undefined, Stream id: 0x29,

Title: 02, Length: 00:01:55.000 Chapters: 02, Cells: 02, Audio streams: 01, Subpictures: 00
Audio: 1, Language: en - English, Format: ac3, Frequency: 48000, Quantization: drc, Channels: 2, AP: 0, Content: Undefined, Stream id: 0x80

Title: 03, Length: 00:00:24.000 Chapters: 02, Cells: 02, Audio streams: 01, Subpictures: 00
Audio: 1, Language: en - English, Format: ac3, Frequency: 48000, Quantization: drc, Channels: 6, AP: 0, Content: Undefined, Stream id: 0x80

Longest track: 01
structure d'un dvd

Dans certain cas il peut être pratique si l'on a plus d'un lecteur de DVD, de spécifier en plus le périphérique à utiliser pour la lecture avec l'option -dvd-device /dev/sr0. Cette option permet aussi de lire un dossier issu de la recopie d'un DVD en local (via vobcopy -m).

le DVD doit être monté pour être copié
gastonsudo mount /dev/cdrom /media/cdrom
gastonvobcopy -m
Vobcopy 1.1.0 - GPL Copyright (c) 2001 - 2007 robos@muon.de
[Info] Writing files to this dir: /vidéo/WATERWORLD/VIDEO_TS/
...
gastonlsdvd -as /vidéo/WATERWORLD
...
Longest track: 01
gastonmplayer -dvd-device /vidéo/WATERWORLD dvd://1
capture et lecture d'un DVD

L'utilisation de lsdvd est juste là pour montrer comment utiliser cette commande avec un dossier, sinon l'utilisation de mplayer avec dvd:// aurait très bien suffit. En tout cas voilà un moyen simple pour lire un DVD sans le bruit assourdissant du lecteur.

Dans certains cas vous pouvez vous retrouver (je ne veux pas savoir comment) avec des sous-titres au format idx et sub, voir ifo. Il s'agit d'une extraction brute du flux correspondant dans un .VOB. Comme pour les srt vus plus haut, si ces fichiers ont le même nom que le fichier AVI, tout est automatique. Sinon il faut tout de même que les deux fichiers aient le même nom et tenter la commande suivant :

gastonmplayer -vobsub nom_sub_sans_extention fichier.avi
lecture de sous-titres VOB

Comme pour un DVD, les .sub peuvent contenir plusieurs langues et l'option -slang est donc applicable.

Lecture d'un flux réseau

Avec les flux provenant du réseau et la notion de protocole qui leur est associée, la URL prennent tout leur sens. Voici quelques exemples de flux réseau que mplayer est capable de prendre en charge :

Lecture d'un flux mms
gastonmplayer mms://source/fichier.wmv

lecture d'un flux RTSP en UDP
gastonmplayer udp://239.255.0.11:1234

Lecture des programmes de France2 sur la FreeBox, notez les "" pour éviter une mauvaise interprétation
gastonmplayer "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd"

Lecture de la radio "France Culture" à partir des flux de la FreeBox. Notez le "-novideo" car ici, seule la piste audio MP2 est disponible.
gastonmplayer -novideo "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=100006"
Lecture de flux

Enfin, il est possible de sauvegarder ces flux en conservant le format original. Par exemple pour sauvegarder une chaîne de la FreeBox :

notez les "", sans eux cela ne marchera pas...
gastonmplayer -dumpstream -dumpfile resultat.ts "rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd"
sauvegarde d'un flux FreeBox TV

Le fichier résultat est donc, dans cet exemple, très exactement au même format que celui émi par les services free, à savoir du MPEG2 pour la vidéo, du MP2 pour l'audio, un flux texte pour le télétexte, le tout encapsulé en MPEG_TS.

Lecture d'une carte Radio

Une carte Radio FM simple, ou une carte TV analogique incluant un tuner FM (ex. ma vieille Leadtek TV2000) est utilisable directement par mplayer :

Lecture de la radio à la fréquence 105.5 (France Intox)
gastonmplayer radio://105.5

Lecture de la radio en passant par une liste
gastonmplayer -radio channels="105.5-France Info,102.3-OUI FM" radio://2
lecture de la radio

Lecture d'une périphérique V4L

V4L pour Vidéo For Linux, est infrastructure de capture vidéo sous la forme de modules Kernel qu'utilisent les pilotes de WebCAM, de cartes TV analogique (ex. Leadtek TV2000) et/ou d'acquisition vidéo. Lorsque tout ce petit monde est correctement chargé, cela débouche sur la création d'une entrée de type /dev/videoX (ex. /dev/video0) qui permet aux applications de communiquer avec le matériel en utilisant les librairies V4L.

Une carte d'acquisition analogique, à partir d'un signal TV, Composite ou SVidéo, utilise donc le module V4L (ou V4L version 2, alias v4l2). Il est résulte pour mplayer une ligne un peu barbare qui va permettre de spécifier, à travers les options du pilote v4l ou v4l2, la manière dont le flux doit être décodé :

gastonmplayer -tv driver=v4l2:device=/dev/video1:volume=100:input=0:normid=9:outfmt=nv12:decimation=1:channels="25-TF1,22-France2,28-France3,K06-Canal+,30-France5/Arte,33-M6" tv://5
Lecture d'une chaine de télévision analogique

Les points intéressant sont l'utilisation de -tv pour passer mplayer en mode télévision et ainsi indiquer l'utilisation du v4l2, suivi de ses paramètres. Et enfin la sélection du canal initial avec l'URL de type tv://.

Dans les options du pilote, nous avons passé, comme pour la lecture radio, un jeu de fréquences. Il suffit donc de presser la touche K pour changer de canal. Dans le paramétrage du pilote, le source "tuner" correspond au paramètre input=0. Du coup, si nous cherchons cette fois à numériser une vidéo, nous utiliserons 1 pour sélectionner l'entrée composite et 2 pour l'entrée S-Vidéo. Ainsi pour lire une cassette VHS en passant par un magnétoscope, cela nous donne :

gastonmplayer -tv driver=v4l2:device=/dev/video1:volume=100:input=2:normid=9:outfmt=nv12:decimation=1 tv://
Lecture de la numérisation de l'entrée S-Vidéo

Comme la carte TV analogique, un WEBCam utilise elle aussi le module V4L. La lecture se fait de la même manière que précédemment avec des options un peu différentes, typiquement la résolution désirée :

Lecture d'un flux provenant d'une WEBCAM
gastonmplayer -tv driver=v4l:width=320:height=240:device=/dev/video1 tv://
lecture d'une WebCAM

Maintenant la lecture directe des flux V4L va devenir surtout intéressante lorsqu'utilisée avec mencoder (voir section suivante) pour sauvegarder cela dans des conteneurs type AVI.

Lecture de la TNT

La TNT est un flux DVB (Digital Video Broadcast) provenant d'une carte de réception "qui va bien", dans mon cas une Nova-T. Contrairement aux cartes analogiques, les cartes TNT fournissent directement le flux vidéo émis, sans numérisation, et demande donc aucune ressource processeur pour procéder à un enregistrement en temps réel. La lecture et son utilisation va donc un peu ressemble à ce que nous avions pour un flux réseau.

Outre le fait d'arriver à faire fonctionner la carte, ce qui ne pose plus trop de problème aujourd'hui, tout le jeu est de générer la liste chaîne/fréquences qui permettra d'utiliser mplayer aussi simplement que cela :

gastonmplayer dvb://ARTE
Lecture d'un flux DVB (via une carte TNT)

Cette liste de fréquence est obtenue grâce à l'utilitaire scandvb (ou scan ou dvbscan) du paquet dvb-apps. Son rôle va être de prendre en entrée une liste de transpondeurs, pour chacun d'eux, opérer un balayage des fréquences et de détecter les chaînes qu'ils hébergent. Cette liste initiale composée pour la France de 6 fréquences est spécifique à votre région. Vous pouvez la récupérer ici. Pour ce faire vous devez d'abord repérer le nom du fichier (ex. fr-paris) et lancer les commandes suivantes :

gastoncvs co http://www.linuxtv.org/cgi-bin/viewcvs.cgi/dvb-apps/util/scan/dvb-t/fr-paris
gastondvbscan fr-paris > ~/.mplayer/channels.conf
récupération de la liste parisienne et balayage des fréquences

Ceci fait, vous obtenez un fichier .mplayer/channels.conf composé d'une série de lignes comme celle-ci :

ARTE:586167000:INVERSION_AUTO:BANDWIDTH_8_MHZ:FEC_3_4:FEC_NONE:QAM_64:TRANSMISSION_MODE_8K:GUARD_INTERVAL_1_8:HIERARCHY_NONE:520:530:261

il est conseillé de modifier ce fichier pour ôter tout espace sur les noms de la première colonne (ex. Canal_Plus). Ensuite, vu que les cartes TNT ne font que réceptionner et vous transmettre un flux pré-existant, il ne reste plus qu'à utiliser mplayer comme pour les flux réseaux (-dumpstream) de sorte à récupérer un conteneur MPEG_TS/MP2/MPEG2 d'une résolution "DVD" que ni M6, ni TF1, ne peuvent vous empêcher de sauvegarder:

gastonmplayer -dumpstream -dumpfile temps_de_cerveau_utile.ts dvb://ARTE
gastonmplayer -dumpstream -dumpfile temps_de_cerveau_inutile.ts dvb://TF1
sauvegarde d'un flux DVB

Pour générer un conteneur AVI/MP3/MPeg4, voir l'exemple donné plus loin dans la section encodage.

Lecture d'un caméscope DV

mplayer ne contient aucun module capable de lire à partir d'un caméscope DV, il sait en revanche très bien lire ce format. L'astuce est donc de passer par la commande spécialisée dvgrab :

chargement du module firewire si ce n'est déjà fait
gastonsudo modprobe raw1394

lecture du flux DV via le fireWire en demandant à dvgrab de vider dans la sortie standard
gastondvgrab - | mplayer
Lecture de la vidéo d'un camescope DV

Bien sur mplayer ne permettra pas de se déplacer dans la vidéo. Pour y arriver il faut récupérer localement la vidéo

vidage d'un bloc
gastondvgrab --format raw ma_video.dv
gastonmplayer ma_video.dv

vidage par séquences
gastondvgrab  --timestamp --autosplit  -format raw ma_video.dv
Vidage de la vidéo d'un camescope DV

Pour désentrelacer la vidéo, vous pouvez soit faire cela au moment du transcodage avec mencoder (voir plus loin), soit dés maintenant avec ffmpeg, sans perte :

gastonffmpeg -i video-source.dv -deinterlace -target dv video-desentrelacee.dv
Désentrelacement d'une vidéo DV

Conclusion

Mplayer mérite bien, je pense, sa réputation de lecteur tout terrain. Comme je le disais en introduction, ce n'est pas le seul et VLC lui aussi est très efficace à ce jeu là. Mais là où Mplayer brille, c'est dans sa simplicité d'usage en ligne de commande qui en fait un outil absolument indispensable.

Tweet

Gravatar de Artisan Numérique
Original post of Artisan Numérique.Votez pour ce billet sur Planet Libre.

Articles similaires

Artisan Numérique : La magie du chroot...

mercredi 13 mai 2015 à 23:12

Le changement de racine est un aspect des Unix offrant une alternative très intéressante à la virtualisation. Éminemment plus léger, mais surtout plus simple à mettre en oeuvre, qu'un VirtualBox, KVM, ou même docker, le petit utilitaire chroot peut vous rendre bien des services pour emprisonner un accès FTP, pour créer une machine de développement avec des versions de librairies différentes de celle de votre système principal ou encore simplement pour tester les derniers joujous dans une version instable de debian.

Qu'est-ce qu'un chroot?

Comme vous le savez sûrement déjà, le système fichier d'un *NIX est construit autour d'une racine (le /) sur laquelle les partitions sont ensuite "montées" formant ainsi l'espace de fichier accessible. Cette racine est la référence pour tous les chemins absolus utilisés par un processus lui permettant d'accéder aux fichiers (librairies, configurations, etc.) qui lui sont nécessaires.

Ce que l'on sait moins c'est que cette racine est un paramètre du processus qu'il est parfaitement possible de modifier grace à l'utilitaire chroot. Pour quoi faire me direz-vous ? Tout simplement pour faire croire à ce processus que le dossier que nous lui avons arbitrairement fixé comme racine, est l'origine de tous ses chemins absolus.

Le cadre d'usage de cette technique est vaste. Elle permet par exemple de lancer des processus critiques dans un dossier isolé du reste du système de sorte à rendre plus difficile (mais pas impossible !) la compromission du reste du système de fichier en cas d'exploitation d'une faille de sécurité. C'est ce que l'on appelle mettre en prison le processus (jail).

Elle permet aussi de créer des environnements qui fonctionnent sur des règles différentes du reste du système. Il est ainsi possible de faire tourner une debian au sein d'une mandriva, ou encore un linux en 32bits au sein d'un linux 64 bits. La seule limitation est que le kernel doit être compatible entre les deux distributions.

Mais même si cela sonne terriblement comme de la virtualisation il est important de ne pas confondre les deux principes. Le changement de racine n'émule absolument rien. Ce n'est que l'exploitation d'une propriété des processus unix. Chaque processus chrooté accède donc au même matériel que les processus "normaux". De même ils tournent au sein du même kernel et partagent le même espace mémoire. Plus flagrant, les processus lancés dans le cadre d'un changement de racine sont parfaitement visible si l'on exécute une commande ps à partir d'un shell "normal".

Et c'est là finalement la grande force du changement de racine. C'est un principe limité mais simple, et qui ne souffre d'aucun problème de performance accompagnant généralement la virtualisation.

Construction d'un dossier chrootable

Il y a d'innombrables manière de créer un dossier utilisable pour un changement de racine. Tout dépend au fond du besoin derrière la manipulation. Si l'on désire chrooter un service FTP par exemple, on va s'attacher à ne mettre dans le dossier que les fichiers strictement nécessaires au processus : l'exécutable, ses librairies et ses fichiers de configurations, placé avec soin dans une arborescence qui mime parfaitement ce que l'on trouverait sur une racine réelle. Il existe des utilitaires qui aident à effectuer ce genre de tâche mais ce n'est pas forcement l'approche la plus didactique.

Pour notre exemple, voyons plutôt comment créer une debian complète dans notre racine de sorte à y placer une pile Apache, PostgreSql et PHP.

La première chose à faire est d'installer dans un dossier de votre choix une installation de la distribution Debian. Il est possible de faire bêtement une copie de la racine principale, cela marcherait très bien, mais ce serait sûrement très volumineux.

Heureusement, il existe un outil debian qui fait des miracles debootstrap. Notez que cet outil n'est pas spécifique à Debian et fonctionne aussi très bien sous Mandriva. Nous allons donc installer la commande et la lancer pour installer une wheezy tout neuve

gastonsudo aptitude install debootstrap
gastonsudo debootstrap --include=locales-all wheezy ma_racine http://ftp.fr.debian.org/debian
installation de la racine

Le paramètre --include indique à debootstrap des paquets supplémentaires à installer, ici les locales. Suit la version de debian à installer et le dossier dans lequel effectuer les opérations. Si ce dossier n'existe pas il sera créé. Enfin nous avons l'url des paquets debian en france.

Une fois lancée, la commande va jaquasser un petit moment pour installer tout cela. Lorsque c'est terminé, vous avez une mini debian d'environ 356Mo.

La debian est installée et déjà totalement fonctionnelle. Vous pouvez donc lancer votre premier changement de racine

on met un petit fichier témoin dans la racine
gastonsudo echo "Je suis dans ma racine..." | sudo tee ma_racine/ça_marche.txt > /dev/null

lancement d'un bash en chroot
gastonsudo chroot ma_racine /bin/bash

On vérifie que ça a bien marche...
rootcat /ça_marche.txt
Je suis dans ma racine...
premier chroot

Et voilà, nous sommes dans notre bash chrooté. Mais que c'est il passé exactement ?

  1. La commande chroot engendre un processus qui a pour racine la même que celle de son processus parent, généralement le / (mais rien n'empêche de se la jouer matryoshka ;-).

  2. En interne, chroot appel de la fonction kernel chroot("/ma_racine"). Le kernel va donc modifier la valeur de la racine pour ce processus et lui associer la valeur /ma_racine.

  3. Le processus de chroot, exécute la commande passée en 2nd paramètre, /bin/bash. Comme la racine de chroot a été changée, c'est bien le /bin/bash de la nouvelle racine /ma_racine qui va être exécuté.

  4. Cette exécution débouche sur la création d'un processus fils de celui du chroot qui hérite logiquement de cette nouvelle racine.

  5. Tout ce que /bin/bash lancera par la suite héritera de cette nouvelle racine jusqu'à ce que l'on tape exit qui mettra fin au processus /bin/bash, et par domino à celui du chroot qui a permis son lancement.

Ok, le bash c'est bien mignon mais voyons comment aller un peu plus loin.

Dossiers spéciaux

Notre debian a besoin d'un plus que les fichiers installés pour fonctionner. En effet pour accéder au matériel il lui faudra les fameux dossier /proc et /sys. Dans un premier temps, nous allons faire cela à la main.

rootmount proc /proc -t proc
rootmount sysfs /sys -t sysfs
Montage des dossiers spéciaux

Ok, là on lance cela à la main. Mais rien n'empêche de créer dans la nouvelle racine un fichier /etc/fstab pour automatiser tout cela et de lancer carrément init q pour lancer un système complet. Personnellement, je préfère coller bien sagement les deux montages dans un script de ce genre

cd /chemin/vers/ma_racine
sudo mount --bind /proc proc
sudo mount --bind /sys sys
sudo chroot . /bin/bash
sudo umount sys
sudo umount proc

Techniquement cela revient au même, sauf qu'au lieu de monter les dossiers spéciaux au sein de la racine, on les monte de l'extérieur en les liant aux dossiers principaux. L'avantage c'est que lorsque vous sortirez de la racine, les deux dossiers seront automatiquement démontés. Il est aussi possible de lancer autre chose que bash, comme par exemple un script qui va lancer apache... Le truc s'est qu'il faudra tuer apache pour arrêter le chroot :-)

Installation d'apache

Maintenant le système est complet, nous pouvons commencer à installer des choses comme nous en avons l'habitude.

rootaptitude install libapache2-mod-php5
installation de l'apache et PHP

Si, lors de l'installation, dpkg a essayé de lancer apache et a échoué lamentablement, c'est sans doute parce que vous avez déjà un apache qui tourne sur votre machine. Et comme il squate l'interface réseau, notre apache parent pauvre se voit signifier une fin de non recevoir.

La solution la plus efficace est simplement d'ajouter une adresse IP à votre interface réseau physique. Imaginons que cette interface s'appelle eth0 et que votre IP est 10.0.0.1, nous allons lui ajouter 10.0.0.2 :

ifconfig eth0:0 192.168.154.110
Ajoutd d'une adresse IP

Ceci fait, il ne reste plus qu'à modifier, tant sur l'apache principal que celui de la racine, le fichier /etc/apache2/ports.conf de sorte à préciser l'adresse à utiliser pour la directive Listen. Ce sera Listen 10.0.0.1:80 pour le principal et 10.0.0.2 pour le secondaire. Il ne reste maintenant plus qu'à redémarrer d'abord le principal, puis le secondaire.

Maintenant il ne reste plus qu'à tester, en tapant dans votre navigateur http://10.0.0.2, et normalement, It Works!.

Conclusion

Le chrooting est une base fondamentale. C'est cette même base qui a été fortement améliorée pour donner naissance au principe de conteneurs avec par exemple LXC. Et c'est LXC qui à son tour a servi de base au très célèbre Docker. Mais ça, c'est une autre histoire...

Tweet

Gravatar de Artisan Numérique
Original post of Artisan Numérique.Votez pour ce billet sur Planet Libre.

Articles similaires

RaspbianFrance : Plus petit, moins cher, le C.H.I.P va-t-il remplacer la Raspberry Pi ?

mercredi 13 mai 2015 à 21:18

Depuis quelques jours un petit nouveau agite le monde des nano-ordinateurs, le C.H.I.P !
Le monde la Raspberry Pi frémi, les médias s’emballent doucement et la rumeur bruisse, un nouveau venu va détrôner la Raspberry Pi ! Plus petit, moins cher et presque aussi puissant, le C.H.I.P serait le nouvel El Dorado ! Nous vous en disons un petit peu plus !

 

Le C.H.I.P c’est quoi ?

Le C.H.I.P, comme la Raspberry Pi, c’est un nano-ordinateur monocarte utilisant un processeur ARM.
En clair, un tout petit ordinateur de la taille d’une carte de crédit, livré par défaut sans écran ni clavier.
Actuellement le C.H.I.P en est encore au stade de projet et fait l’objet d’une campagne kickstarter ayant déjà levé près de 950 000 $, soit 19 fois le montant initialement demandé par Next Thing Co, la société créatrice du CHIP. Un projet largement financé donc et qui n’a aucune raison de ne pas voir le jour.
Au niveau logiciel, le C.H.I.P devrait embarquer une distribution Linux basée sur Debian, un petit peu comme Raspbian pour la Raspberry Pi.
Pour ce qui est de la date de lancement, le C.H.I.P devrait à priori sortir courant 2016 !

 

Le C.H.I.P niveau performances ça vaut quoi ?

La question que l’on se pose quand on voit un projet comme celui du C.H.I.P c’est évidemment celle des performances de la machine. Et de ce côté, il faut reconnaitre que le C.H.I.P n’a pas à rougir.

Les performances sont très proches des anciennes versions de la Raspberry Pi (B ou B+).

Une mémoire vive de 512 Mo, un processeur AllWinner A13 à 1 Ghz et un processeur graphique Mali400. En plus de ces caractéristiques, le CHIP est doté d’un espace de stockage fixe (à l’inverse de la Raspberry Pi) de 4 Go (petit avantage par rapport à la Raspberry Pi à ce niveau).

Le CHIP est donc proche de la Raspberry Pi B en terme de performances mais tout de même très en dessous de la Raspberry Pi 2.

 

La connectique du CHIP

La très grosse différence entre le CHIP et la Raspberry Pi se joue principalement sur la connectique.

Le CHIP n’embarque qu’un seul port USB et pas de port Ethernet.

Le CHIP possède un port composite Vidéo (port jack audio/vidéo) mais pas de port VGA ni HDMI.

En revanche, le CHIP intègre, de base, une connexion Wi-Fi et Bluetooth, ce qui est vraiment un bon point pour le CHIP.
Il est possible d’acquérir avec le CHIP un adaptateur VGA pour 10$ et HDMI pour 15 $.

Le CHIP intègre également des ports GPIO (dans un nombre encore inconnu).

 

Un point très positif sur le CHIP est la possibilité d’acquérir pour 40 $ un « PocketC.H.I.P ». Il s’agit d’une sorte de mini-ordinateur portable, à l’apparence proche d’une grosse GameBoy, destiné à accueillir un C.H.I.P et proposant un clavier QWERTY et un écran tactile de 4.3 pouces.

 

Le prix du CHIP

La dernière question qui se pose est bien-sûr celle du prix.

Jusqu’à présent le C.H.I.P est une bonne idée, un beau produit, mais il s’agit encore et toujours d’une Raspberry Pi moins puissante.
Alors pourquoi le monde des nano-ordinateurs s’emballe-t-il autour du C.H.I.P ? À cause de son prix bien-sûr !
En effet, le C.H.I.P ne coute que 9 $ ! Encore moins cher que la Raspberry Pi !

Faisons preuve d’un peu de méfiance cependant. En effet, le prix de 9 $ est actuellement celui prévu pour commander le C.H.I.P en avance sur kickstarter. Il n’est absolument pas certain qu’il s’agisse du prix de vente une fois le projet terminé.
Par ailleurs, les nombreuses options son payantes, batterie pour 10 $, adaptateur VGA pour 10 $, HDMI pour 15 $, PocketC.H.I.P. pour 40 $.
Là encore il s’agit des prix pour des précommandes kickstarter, rien de certain donc concernant les prix public réels.
Pour conclure, si le C.H.I.P se vante d’être adapté pour un usage bureautique quotidien, nous lui voyons plutôt un avenir dans un usage domotique ou robotique, la Raspberry Pi nous semblant bien plus adaptée à un usage bureautique, grâce à sa puissance et surtout sa communauté bien plus grande que celle du C.H.I.P.
Le C.H.I.P risque de souffrir quelque peu de sa nouveauté par rapport à la Raspberry Pi, ce qui se traduit notamment par un manque de communauté, mais le fait que le C.H.I.P soit open source devrait rapidement diminuer ce phénomène.
Il s’agit dans tous les cas d’une très bonne initiative que Raspbian France garde à l’oeil !

Toujours est-il qu’en attendant 2016 il faudra se tourner vers la Raspberry Pi et ses accessoires !

 

The post Plus petit, moins cher, le C.H.I.P va-t-il remplacer la Raspberry Pi ? appeared first on Raspbian-France.

Gravatar de RaspbianFrance
Original post of RaspbianFrance.Votez pour ce billet sur Planet Libre.

Articles similaires