Le royaume de Eric Buist >> Informatique >> Quelques-unes de mes recherches personnelles
Me contacter Plan du site
<< GRUB et l'UEFI: peuvent-ils être réunis? Capture vidéo de l'écran

Capture vidéo de l'écran

Il arrive dans certains cas que l'on souhaite enregistrer une vidéo des actions accomplies sur un ordinateur. La raison la plus évidente est la construction de didacticiels audio-visuels, mais plusieurs joueurs s'amusent à enregistrer leurs prouesses virtuelles, les commente et les diffuse sur YouTube. On peut même, de nos jours, retrouver des vidéos couvrant l'intégralité de certains jeux. On appelle cela un playthrough. Bien entendu, il faut éviter ce genre de vidéos si on souhaite jouer soi-même au jeu en question; c'est le meilleur moyen de gâcher le jeu!

L'idée semble simple, mais l'appliquer ne l'est pas, surtout quand on veut comme moi le faire sous Windows, Linux, Mac et des appareils mobiles, et pouvoir exporter le résultat sur YouTube! Sur cette page, je vais regrouper toutes les méthodes de capture que je connais, de la plus simple et naïve à la plus versatile. Je me concentre ici sur le côté technique, le comment. Il faut bien entendu réfléchir au contenu à enregistrer, pour que le résultat soit intéressant à regarder et à entendre, mais ceci est une toute autre histoire, totalement indépendante de la solution technique mise en oeuvre pour l'enregistrement.

On peut séparer le procédé de capture en deux phases: l'enregistrement proprement dit qui doit se faire au sein du système d'exploitation ou sur l'appareil capable de diffuser le contenu à capter, et le transcodage en préparation à la diffusion, qui n'a pas nécessairement à être fait sur l'appareil d'origine. Il arrive parfois qu'une phase d'assemblage soit nécessaire pour aboutir au résultat final.

Je vais commencer par regrouper les méthodes d'enregistrement pour ensuite me concentrer sur le transcodage.

Enregistrement

Il existe plusieurs méthodes permettant d'enregistrer le contenu diffusé par un appareil. La plupart sont spécialisées pour un appareil et un système d'exploitation donnés. Il existe aussi des méthodes générales, mais elles peuvent provoquer des pertes de qualité.

La méthode simple et naïve de la caméra

Il y a une méthode simple et universelle qui, bien que donnant souvent de mauvais résultats, est trop simple pour ne pas la mentionner! Il suffit d'utiliser n'importe quel caméscope numérique pour tout simplement filmer l'écran de l'appareil en train de diffuser le contenu à capter! Une simple caméra d'appareil-photo ou d'appareil mobile peut faire l'affaire, du moment que l'appareil source soit doté d'un écran à cristaux liquides. Avec un affichage cathodique (en voie de disparition de toute façon), l'image résultante est tout simplement affreuse. Bien entendu, il ne faut pas s'attendre à des miracles de cette méthode. Au minimum, on utilisera un trépied pour stabiliser la caméra, mais il faudra prendre garde de ne pas se placer entre la caméra et l'écran.

Cette méthode est parfois la seule disponible, par exemple pour capter la séquence d'amorçage d'un ordinateur ou filmer les ratés d'une installation de systèmes d'exploitation impossibles à reproduire dans une machine virtuelle. Il est aussi possible de l'utiliser pour capter l'interaction tactile avec un appareil mobile si cette interaction fournit des informations importantes.

Le truc de la machine virtuelle

Si vous avez déjà été tenté d'utiliser une caméra numérique pour filmer l'écran pendant l'installation d'un système d'exploitation, par exemple pour construire un didacticiel vidéo montrant comment installer Linux, oubliez cette idée! Avant d'en arriver là, installez simplement un logiciel du genre VirtualBox sur un ordinateur et installez le système d'exploitation dans une machine virtuelle tandis qu'un logiciel de capture s'exécutant sur l'hôte capte toutes les actions! La technique fonctionne très bien et malgré les problèmes dont souffrent les gestionnaires de machines virtuelles, les fonctionnalités de ces derniers suffiront amplement à réaliser une installation.

Ordinateur exécutant Windows de Microsoft

Pour capter le contenu diffusé sur l'écran d'un ordinateur, rien de mieux qu'utiliser un logiciel capable d'intercepter le contenu à la source, avant qu'il soit envoyé à l'écran. C'est beaucoup plus efficace et cela n'implique aucun équipement additionnel autre que l'ordinateur lui-même. Il faut bien entendu se doter d'un logiciel de capture.

La plupart des logiciels permettent de capter l'audio en plus de la vidéo. Il est possible de capter l'audio diffusé par les applications ainsi qu'une source audio externe, comme un microphone raccordé à l'ordinateur. Cela permet en particulier de commenter ses exploits lors de l'enregistrement d'un jeu vidéo tout en enregistrant de façon fiable et numérique (donc pas de perte de qualité) les sons produits par le jeu.

Le meilleur logiciel que je connais pour accomplir cette tâche, bien que pas gratuit, s'appelle FRAPS. Il est suffisamment puissant pour enregistrer l'action dans un jeu vidéo plein écran mais peut aussi capter le contenu du bureau Windows. Comme le montre la figure suivante, FRAPS permet d'enregistrer l'audio des applications ainsi que celui d'une source externe.

La fenêtre de FRAPS

Un autre logiciel que j'ai bien aimé dans le passé est CamStudio. Il permet d'enregistrer l'image et le son, à condition de le jumeler avec ffdshow pour bénéficier d'un codec MPEG plutôt que le codec spécifique de CamStudio. Malheureusement, CamStudio souffre de problèmes de performance causant souvent une perte de synchronisation entre le son et l'image. Il faut donc utiliser un autre logiciel pour enregistrer le son séparément et trouver un moyen de démarrer les deux logiciels simultanément puis combiner l'audio et la vidéo, ce qui n'est vraiment pas une mince affaire! Je préfère de loin utiliser FRAPS, qui fait tout le travail correctement.

Ordinateur exécutant Linux

Sous Linux, mon logiciel de capture préféré est RecordMyDesktop. Il permet d'enregistrer ce qui se passe à l'écran ainsi que l'audio provenant d'une source externe. La version originale est en ligne de commande, mais il existe un frontend, GTK-RecordMyDesktop, offrant une interface graphique. Le logiciel fonctionne très bien, mais une longue phase d'encodage se produit après la fin de chaque capture. Les fichiers produits sont dans le format Ogg Theora qui ne m'a jamais donné de bons résultats lors de transferts sur YouTube. J'ai été obligé de recoder les captures avec un autre logiciel pour pouvoir les transférer.

L'image suivante montre la fenêtre principale de l'application: très simple, pas d'options obscures qui ne fonctionnent pas. Fenêtre principale de GTK-RecordMyDesktop Trop simple, en fait. Heureusement pas, car il y a un bouton Avancé donnant accès à une foule d'options pour paramétriser la vidéo et l'audio. Malheureusement, aucune option ne permet d'influencer le format des fichiers produits.

Ordinateur Macintosh

Il existe plusieurs applications de capture vidéo pour Mac OS X. La plupart ne sont pas gratuites, mais elles ne sont pas très coûteuses. Les applications gratuites limitent malheureusement les fonctionnalités ou la durée des captures. J'ai par contre trouvé de quoi faire mon bonheur sur le App Store: Screen Record Pro. Très simple, ce petit outil permet de capter la vidéo et le son. En plus, les fichiers produits sont lisibles dans QuickTimes et d'une taille raisonnable pour un transfert direct vers YouTube.

Qu'en est-il d'Android?

Les possesseurs d'appareils Android rootés peuvent essayer Screencast Video Recorder qui semble offrir de bonnes performances. La version 2.0 est capable de capter l'audio en plus de l'image. Étant donné que ma tablette Android n'est pas rootée, je ne peux pas expérimenter avec cet outil.

Malheureusement, c'est la sule façon connue de capter la vidéo sous Android. Elle ne fonctionne ni sur les appareils non rootés, ni sur les Galaxy Nexus de Samsung, ni sur les appareils à base de Tegra 2 ou 3! Donc les appareils récents sont exclus, mais les vieux aussi puisqu'il faut un processeur assez puissant pour traiter toute l'information! Ainsi, l'idéal est malheureusemenet d'utiliser la méthode suivante, qui est coûteuse et difficile à mettre en oeuvre.

Enregistreur numérique

Ceci est la méthode la plus générale mais aussi la plus compliquée à mettre en oeuvre. Elle consiste à enregistrer physiquement, avec un appareil dédié, le signal vidéo produit par un autre appareil. C'est pratiquement la seule méthode fiable pour enregistrer le contenu produit par une console de jeux ou un appareil mobile. Pour que cela fonctionne, il faut connecter ensemble trois composantes différentes: l'appareil source diffusant le contenu, un enregistreur qui convertit le signal vidéo en données numériques, et un ordinateur pour capter et stocker ces données.

Bien entendu, cette méthode coûteuse n'est à utiliser qu'en dernier recours. L'enregistreur à lui seul coûte plusieurs centaines de dollars et il faut mettre en place la connexion entre les composantes.

L'appareil source peut être pratiquement n'importe quoi, allant du petit iPod à la PlayStation en passant par une Wii, une XBox, un téléphone cellulaire ou un ordinateur portatif. De nos jours, la sortie vidéo la plus courante est la prise HDMI. Les consoles de jeux offrent habituellement la sortie par composantes en plus du HDMI. Dans le cas d'un iPod, il faut se procurer un câble spécial convertissant le connecteur dédié d'Apple vers une prise composite ou composantes. Beaucoup d'appareils Android sont dépourvus de sortie vidéo, empêchant l'utilisation de cette technique. Mais certains fournissent une sortie HDMI.

L'enregistreur le plus versatile que j'ai utilisé est le HD PVR de Hauppauge. Il accepte un signal composite, S-Video ou composante, et peut aussi traiter l'audio sous forme analogique ou numérique. Malheureusement, aucune entrée HDMI n'est offerte. Le HD PVR ne se contente pas de traiter le signal vidéo; il peut le retransmettre par ses sorties vidéo et audio. Cela permet d'utiliser l'appareil comme un enregistreur numérique. Il laisse passer le signal vers un téléviseur, permettant d'utiliser sa source audio-visuelle normalement mais autorise un enregistrement à tout moment. Le HD PVR est relié à l'ordinateur par USB 2, ce qui en fait un appareil relativement portable. La taille du boîtier de l'appareil ainsi que la nécessité de brancher plusieurs fils pour le mettre en oeuvre en réduisent bien entendu sa portabilité.

Pour compenser l'absence d'entrée HDMI sur mon HD PVR, je serais tenté d'essayer avec un convertisseur HDMI vers composantes; ça existe et celui sur Monoprice semble même pouvoir s'accomoder d'un signal protégé contre la copie! Ainsi, si Vidéotron commence à faire ça cochon en désactivant la sortie par composantes, je pourrais faire mieux que me taper la tête sur les murs.

Le Intensity Pro de BlackMagic offre pour sa part une entrée HDMI en plus de composantes, ce qui en fait un appareil très intéressant que j'aimerais bien essayer éventuellement. Quel est l'avantage par rapport au HD PVR jumelé avec le convertisseur? Eh bien le signal vidéo demeure numérique tout au long du traitement. Il n'y a ainsi aucune perte de qualité. Ce n'est pas nécessaire du tout pour capter une partie de Angry Birds ou de Bad Piggies, mais c'est un atout pour enregistrer un film HD ou d'un jeu sur console. Le Intensity est offert en plusieurs modèles: une version PCI Express pour ordinateurs de bureau, une autre USB 3 et une Thunderbolt (principalement pour les utilisateurs de Mac puisque très peu de PC en 2012 étaient dotés de Thunderbolt). J'ai ressenti la tentation démoniaque de remplacer mon HD PVR par cet appareil... jusqu'à lire qu'il ne permet pas de capter du contenu protégé contre la copie. Ainsi, le Intensity risque fort bien d'échouer à la tâche si on tente de l'utiliser pour enregistrer des films diffusés par un terminal de cablodistribution ou récepteur de TV satellite. Mais il pourra sans problème capter la sortie d'un appareil mobile.

Pour une solution n'offrant que le composite ou le S-Video, on peut se tourner vers le WinTV HVR de Hauppauge. Ça peut fonctionner parfaitement pour enregistrer le contenu diffusé par un appareil mobile, mais bien évidemment, ce sera insuffisant pour capter la sortie d'une console de jeux de façon convainquante.

L'ordinateur, ça peut être n'importe quoi, du moment qu'il supporte l'enregistreur choisi. Il faut bien entendu un disque dur avec plusieurs giga-octets libres, surtout pour enregistrer du contenu HD provenant d'une console de jeux.

Encodage

Souvent, le résultat de la capture est un fichier trop gros ou dans un format incompatible avec son usage pour lequel on le destine. En particulier, FRAPS produit des fichiers volumineux tandis que RecordMyDesktop donne du contenu dans le format Theora à peu près inutilisable à part sous Linux! Si vous utilisez une caméra numérique pour toute étape de la capture, ce sera pire! Ces appareils produisent du contenu dans des formats pas toujours valides et il faut souvent traiter le contenu pour espérer un transfert correct sur YouTube. C'est encore pire quand on essaie de combiner du contenu provenant de plusieurs sources! Il faut donc la plupart du temps traiter la capture brute. Parfois, un simple transcodage suffit tandis que d'autres, il est nécessaire de retrancher des portions de vidéo, d'incruster du texte pour ajouter des précisions, juxtaposer plusieurs segments de vidéo. Dans ce temps-là, des logiciels d'édition vidéo sont nécessaires, et ils ne sont pas disponibles pour toutes les plateformes!

VirtualDub

C'est sans doute la meilleure solution sous Windows. VirtualDub permet de traiter des fichiers dans le format AVI afin de les transcoder et de choisir un segment de fichier à retenir. Il est couramment combiné à l'outil AviSynth pour appliquer des filtres sur la vidéo.

L'image suivante montre la fenêtre principale du logiciel dans laquelle une vidéo captée avec FRAPS a été ouverte. Il est possible de visualiser la vidéo ou de sauter à n'importe quel moment de celle-ci.

Fenêtre principale de VirtualDub

Pour traiter une capture de FRAPS, il faut activer les commandes Full processing mode des menus Video et Audio. Ensuite, il est possible d'ajuster la compression audio et vidéo depuis les commandes Compression des mêmes menus. Les deux images suivantes montrent les options de compression. Bien entendu, les encodages disponibles dépendent des codecs installés.

Options de compression vidéo offertes par VirtualDub Options de compression audio offertes par VirtualDub

Les réglages faits, il suffit de sauvegarder le résultat en utilisant la commande Save as AVI du menu File.

HandBrake

Le logiciel HandBrake permet de transcoder, sous Windows, Linux ou Mac. Je l'ai utilisé avec succès à quelques reprises. L'installation sous Ubuntu 12.10 m'a causé quelques difficultés, mais le logiciel un coup installé fonctionne très bien. Voici un exemple de fenêtre produit par ce dernier:

Fenêtre principale de HandBrake

La dernière fois que j'ai tenté de construire une vidéo sous Mac OS X, j'ai utilisé MEncoder pour traiter le produit de mon appareil-photo numérique et le combiner avec l'audio produit par mon H2N. Ça a été si compliqué que je n'ai plus envie de retenter le coup! Mais avec HandBrake, l'opération semble très facile et se verra sans doute décernée un tutoriel vidéo un bon jour!

Éditeurs vidéos

Dans certains cas, il ne suffit pas de transcoder. Il faut retrancher des segments de vidéo qui ne sont pas souhaités, ajouter des incrustations, combiner du matériel provenant de plusieurs sources (par exemple une caméra et un logiciel de capture), etc. Dans de tels cas, les transcodeurs ne font tout simplement pas le poids! Il faut plutôt utiliser de véritables éditeurs vidéo. Malheureusement, ces logiciels ne sont pas gratuits, pas disponibles pour toutes les plateformes et surtout, pas égaux.

Il y a deux références incontestées dans ce domaine: Premiere de Adobe et Final Cut de Apple. Le premier est très gourmand en ressources et offre une interface utilisateur inutilisable pour moi, car les caractères sont minuscules et il est impossible de les agrandir, à moins d'abaisser la résolution de l'écran! Le second n'est disponible que pour Mac, mais je pourrai éventuellement l'essayer puisque je possède maintenant un Hackintosh fonctionnel.

Final Cut et Premiere sont coûteux, mais il existe des versions grand public plus abordables: Premiere Elements et Final Cut Express. Les deux outils héritent des limitations de leurs grands frères, bien évidemment. Ça me prendrait toujours une loupe pour utiliser Premiere Elements et j'aurai besoin de mon Hackintosh (et peut-être même d'un vrai Mac) pour Final Cut Express!

Il en existe d'autres, plein d'autres, mais ils sont souvent uniquement pour Windows et parfois instables. Pour le moment, VideoStudio de Corel me semble un bon choix.