Catégories
Blog Open-source Planet-libre Systeme Web

Shelr, un service de screencast pour votre terminal

Shelr propose un outil pour enregistrer, rejouer et diffuser les commandes et leurs résultats saisies dans votre terminal favori (console). L’avantage par rapport à un screencast classique est que le termcast sauvegarde non pas une vidéo mais juste le texte.

Il est possible de fonctionner de manière autonome en gérant vous même vos enregistrements (ce qui peut par exemple être très pratique pour une présentation ou un cours à des élèves). Si vous souhaitez diffusez ces enregistrements sur Internet, il faut passer par le site Shelr.tv: l’inscription prends quelques secondes et l’hébergement de vos termcasts est gratuite.

Cerise sur le gâteau, les outils Shelr sont fournis sont licence GPL v3 dans un GitHub.

Installation Shelr sur votre système

Voici la procédure à suivre sur une distribution Ubuntu. Les seuls pré-requis sont d’avoir ruby et rubugems installés sur son système d’exploitation:

sudo apt-get install ruby rubygems
sudo gem install shelr

Comment utiliser le logiciel Shelr

Le logiciel en question se présente sous la forme d’un executable unique: shelr qui propose dans sa version actuelle les options suivantes:

# shelr 

Usage: shelr command [arg]
Commands:
    setup API_KEY   - setup
    record          - record new shellcast
    push RECORD_ID  - publish
    list            - print list of records
    play RECORD_ID  - play local record
    play RECORD_URL - play remote record

Enregistrement de votre premier termcast

Il suffit de saisir la commande suivante:

shelr record

Shelr va alors vous demander le nom (description) à associer à votre enregistrement puis lancer un fork de votre shell courant ou vous pourrez taper en toute transparence vos commandes à enregistrer.

Pour terminer l’enregistrement, il faut appuyer sur la combinaison CTRL-D (ou saisir la commande exit).

Afficher la liste des termcast stockés sur votre système

L’option list permet d’afficher la liste des termcasts que vous avez enregistrez:

$ shelr list

1333815250: A Glances 1.3.7 demo
1333815271: A Glances 1.3.7 demo
1333815112: A first test

Le chiffre qui précède la description est l’identifiant unique de votre termcast.

Rejouer un termcast

On utilise shelr avec l’option play suivi du numero d’identifiant:

shelr play 1333815112

Le terminal devrait s’animer tout seul, comme par magie.

Petite remarque: seul l’affichage est rejoué, pas l’exécution des commandes !

Il est également possible de fournir en argument de la commande play, l’URL d’un termcast stocké sur le site Shelr.tv

Diffuser vos termcasts sur le site Shelr.tv

Pour partager vos termcast à partir dur site Shelr.tv, il faut d’abord créer un compte en vous rendant sur la page suivante. Si vous avez un compte GitHub, Twitter ou Facebook, il est alors facile de créer un compte en quelques secondes.

Après la création du compte, vous aller obtenir un code d’API:

Il faut alors saisir la commande « shelr setup CODEAPI » dans un terminal pour associer votre ordinateur à votre compte Shelr.tv.

Pour diffuser sur le site un termcast enregistré sur votre disque il faut saisir la commande (en remplaçant l’identifiant par celui obtenu par la commande shelr list):

shelr push 1333815112

Il est également possible de diffuser le dernier enregistrement en utilisant l’alias:

shelr push last

Vous pouvez voir de nombreux exemples de termcasts sur le site Shelt.tv.

Visualiser un termcast Shelr.tv depuis une console

Une fois diffusé, vous aller obtenir l’URL de votre termcast que l’on pourra rejouer dans sa console. Par exemple, pour voir une démonstration de la dernière version bêta de mon logiciel Glances:

shelr play http://shelr.tv/records/4f81498796608031bf000003.json

Notez le .json à la fin de l’URL…

Visualiser un termcast Shelr.tv depuis un navigateur

Il est également possible, pour ceux qui non pas encore Shelr installé sur leur système, de voir le termcast directement depuis un navigateur internet depuis la page suivante: http://shelr.tv/records/4f81498796608031bf000003

Conclusion

Voilà une « killer application » qui va sûrement envahir les blogs techniques dans les prochains mois !

PS: Le compte Shelr.tv du blog de Nicolargo est disponible ici.

Catégories
Gstreamer Open-source Planet-libre Video Web

MyScreenCast passe en version 0.11

Il y quelques mois, j’avais écrit un script shell (MyScreenCast) permettant d’automatiser, en ligne de commande, la création d’un screencast (une vidéo de votre écran) avec des outils libres disponibles sur les distributions GNU/Linux (notamment GStreamer).

Je viens de mettre en ligne la version 0.11 de ce script avec les fonctions suivantes:

  • possibilité d’incruster un texte en overlay avec l’option  -o <Bla bla>
  • encodage du même screencast avec différents codecs
  • amélioration des pipelines GStreamer

Ces fonctions viennent s’ajouter aux fonctions suivantes:

  • capture vidéo de l’écran quelque soit sa résolution
  • capture audio (depuis le microphone par défaut de votre système)
  • incrustation de la vidéo venant de votre Webcam (avec l’option -w)
  • affichage des touches actionnées avec keymon (avec l’option -k)

Pour tester ce logiciel, il faut récupérer la dernière version du script:

MyScreencast

Puis de lancer la ligne de commande suivante:

chmod a+x ./myscreencast.sh

./myscreencast.sh

Comme toujours j’attend vos retours / tests sur d’autres distributions (je l’ai testé sous Ubuntu 10.10).

Catégories
Gstreamer Open-source Video Web

MyScreenCast, comment faire du screencast avec GStreamer

Je ne sais pas vous mais je n’arrive pas à trouver LE logiciel de screencast libre ultime pour mon PC Linux. J’ai essayé Istanbul (le résultat est très mauvais sur ma distribution Ubuntu 10.04), XVidCap (pas d’enregistrement du son) et même VLC (un peu usine à gaz pour ce besoin)… Seul RecordMyDesktop sort du lot bien que son interface graphique d’administration (gtk-recordmydesktop) ne soit pas des plus ergonomique.

Ce billet est donc un appel à la communauté pour développer CE logiciel en question !

Nous allons dans un premier temps donner les bases techniques permettant de faire un screencast à partir du framework GStreamer (fourni en standard sous Linux). Puis donner dans les grandes largeurs les spécifications DU logiciel.

On commence par la fin: le résultat

Voici le screencast obtenu (format libre OGV – Theora/Vorbis – hébergé sur blip.tv): si votre navigateur est compatible…

Sinon vous pouvez toujours consulter la vidéo en ligne sur Blip.tv ou sur Vimeo (codec H.264/AAC)

Les fichiers générés sont au format HD 720p et ont une taille d’environ 11 Mo pour le format M4V et 13 Mo pour le format OGV.

Screencast avec GStreamer en ligne de commande

On commence par vérifier que l’on dispose bien du plugin gstreamer istximagesrc:

[cc]

gst-inspect istximagesrc

version 0.2.2

[/cc]

Si ce n’est pas le cas, il suffit d’installer le package Istanbul qui inclue ce plugin:

[cc]

sudo aptitude install istanbul

[/cc]

Aller, une fois ces menus préparatifs passés,  on commence par lancer un capture vidéo de l’écran et sonore en utilisant la ligne de commande GStreamer (pipeline) suivante:

[cc]

gst-launch avimux name=mux ! filesink location=screencast.avi \
alsasink ! audioconvert ! queue ! mux. \
istximagesrc name=videosource use-damage=false ! video/x-raw-rgb,framerate=10/1 \
! ffmpegcolorspace ! queue ! videorate ! ffmpegcolorspace ! videoscale method=1 \
! video/x-raw-yuv,width=1152,height=720,framerate=10/1 ! mux.

[/cc]

Cette commande va capturer l’écran à 10 images par secondes (istximagesrc), le son (alsasink) et mixer le tout (sans compression mais avec une redimensionnement de la vidéo au format 720p) dans un fichier temporaire au format AVI. Ce fichier aura une taille très importante mais c’est juste une étape temporaire avant la compression.

Pour cette compression j’utilise deux pipelines permettant de générer des screencasts au format libre OGV (Theora/Vorbis) et propriétaire M4V (H.264/AAC), comme cela, tous les navigateurs sont heureux:

[cc]

gst-launch filesrc location=screencast.avi ! decodebin name= »decode » \
decode. ! videoparse format=1 width=1152 height=720 framerate=10/1 \
! queue ! ffmpegcolorspace ! theoraenc ! queue ! \
oggmux name=mux ! filesink location=screencast.ogv \
decode. ! queue ! audioconvert ! vorbisenc ! queue ! mux.

gst-launch filesrc location=screencast.avi ! decodebin name= »decode » \
decode. ! videoparse format=1 width=1152 height=720 framerate=10/1 \
! queue ! ffmpegcolorspace ! x264enc pass=4 quantizer=23 threads=0 ! queue ! \
ffmux_mp4 name=mux ! filesink location=screencast.m4v \
decode. ! queue ! audioconvert ! faac tns=true ! queue ! mux.

[/cc]

Un script qui fait tout…

Comme je suis un bon loulou, voici un script shell qui automatise

  1. le lancement de votre Webcam pour avoir une incrustation de votre image dans le screencast
  2. le lancement de la capture video de l’écran + capture audio (après un délais de 3 secondes histoire de refaire son nœud de cravate)
  3. (on arrête la capture en faisant un CTRL-C dans la fenêtre)
  4. la compression du screencast dans un fichier screencast-dateetheure.ogv (codec Theora/Vorbis)
  5. la compression du screencast dans un fichier screencast-dateetheure.m4v (codec H.264/AAC)
  6. la suppression du fichier temporaire

A télécharger ici: https://raw.github.com/nicolargo/myscreencast/master/myscreencast.sh

Vous pouvez éditer le fichier et notamment la configuration suivante:

[cc]

### Variables à ajuster selon votre configuration
AUDIODEVICE= »alsasrc »
WEBCAMDEVICE= »/dev/video0″
WEBCAMHEIGHT= »240″
OUTPUTHEIGHT= »720″
OUTPUTFPS= »10″
### Fin des variables à ajuster

[/cc]

… en attendant LE programme ultime

qui devra reprendre en gros les étapes de mon script mais en ajoutant:

  • une interface graphique
  • le choix d’une portion de l’écran à capturer
  • le choix d’une application (fenêtre) à capturer
  • le choix de la source audio (mixage possible avec la librairie Jack)
  • paramétrage fin des codecs audio et video
Catégories
Open-source Systeme

Installation de XvidCap sous Ubuntu Janty

Si comme moi vous avez essayé le logiciel de screencast XvidCap sous Ubuntu Janty, vous avez également du être déçu… En effet, le logiciel disponible dans les dépôts crache lamentablement au démarrage de l’enregistrement. C’est sur la bible documentaire Ubuntu-fr (que j’ai légèrement modifié pour l’occasion) que j’ai trouvé la solution que je détaille ici.

On va donc commencer par installer XvidCap à partir du dépôt Ubuntu afin de satisfaire toutes les dépendances:

[shell]sudo aptitude install xvidcap[/shell]

Ensuite on installe un certain nombre de pré-requis nécessaires à la compilation de XvidCap:

[shell]sudo aptitude install libavcodec-unstripped-52 libxmu-dev libglade2-dev libgtk2.0-dev build-essential[/shell]

On récupère la dernière version des sources (version 1.1.7 au moment de l’écriture de ce billet):

[shell]cd ~
mkdir tmp
cd tmp
wget http://downloads.sourceforge.net/project/xvidcap/xvidcap/1.1.7/xvidcap-1.1.7.tar.gz?use_mirror=surfnet[/shell]

On compile:

[shell]cd xvidcap-1.1.7
./configure
make
sudo make install[/shell]

Il ne reste plus qu’a lancer le logiciel apr le menu « Applications / Son et vidéo / XvidCap screen capture ».

XvidCap


Catégories
Open-source Web

Screencast facile avec VLC media player

Dans les nouvelles fonctions présentes dans VLC media player 0.9.2, on peut noter la possibilité d’utiliser l’écran comme source de périphérique de capture (testé sous Linux et Mac, à voir sous Windows) . Un bon moyen de faire à moindre frais des screencast facile encoder en OGG/Theora…

Heu c’est quoi un screencast ?

Bonne question… Heureusement, Wikipedia est notre ami

Un screencast (aussi appelé capture vidéo de l’écran) est un enregistrement vidéo d’un écran d’ordinateur accompagné la plupart du temps d’une narration audio. Bien que le terme screencast ait été défini par Jon Udell en 2004, des outils permettant de faire une capture vidéo de l’écran existaient déjà en 1993 comme par exemple le logiciel Lotus ScreenCam. Les principaux inconvénients de ces anciens outils étaient la taille importante des fichiers qu’ils produisaient et leurs fonctionnalités assez limitées. Les produits les plus récents gèrent des formats de fichier de taille plus restreinte comme le Flash et possèdent des fonctionnalités plus élaborées comme le suivi du pointeur de la souris, et la narration audio.

De la même façon qu’une capture d’écran (screenshot) peut être vu comme une photo de ce que l’utilisateur voit à l’écran, la capture vidéo (screencast) peut être assimilé à un film de ce que l’utilisateur voit à l’écran.

Comment faire un screencast avec VLC media player ?

C’est très simple, il faut dans un premier temps lancer VLC media player (version 0.9.2 ou supérieure).

Lecteur multimédia VLC.jpg

Puis aller dans le menu Fichier / Ouvrir un périphérique de capture et sélectionner « Ecran » dans la liste.

Ouvrir un flux.jpg

Configurer le « frame rate » (nombre d’image par seconde) à adapter selon vos besoins. Attention plus celui-ci est élevé plus votre fichier vidéo sera gros.

Ouvrir un flux-1.jpg

Enfin on active le radio bouton « Diffusion/Sauvegarde » (1) et on passe à la configuration en cliquant sur le bouton « Paramètres » (2).

Ouvrir un flux-2.jpg

C’est dans cet écran que l’on va définir le fichier dans lequel le screencast sera stocké. On sélectionne d’abord le type de conteneur en sélectionnant Ogg (par exemple) dans le champ méthode. Puis on sélectionne le codec Theo dans l’option de transcodage vidéo. Enfin on sélectionne l’emplacement du fichier de sortie.

VLC.jpg

Le début du screencast démarre dès que l’on clique sur le bouton « Ok » suivant:

Ouvrir un flux-3.jpg

A la fin de votre screencast, il faut cliquer sur le bouton « Stop » pour arrêter la capture.

Lecteur multimédia VLC 2.jpg

Exemple de screencast

Voici un exemple de screencast.

VLC media player screencast

Quelques options complémentaires

Il est possible d’ajouter des options en modifiant la ligne de commande (ou la ligne Media Resource Localtor MRL).

–screen-caching <Entier>: Taille du cache pour les captures d’écran, en millisecondes.

–screen-fps <Flottant>: Débit d’images pour la capture.

–screen-top <Entier>: Ordonnée du sous-écran en haut à gauche.

–screen-left <Entier>: Abscisse du sous-écran en haut à gauche.

–screen-width <Entier>: Largeur du sous-écran

–screen-height <Entier>: Hauteur du sous-écran

–screen-follow-mouse, –no-screen-follow-mouse: Suivre la souris lors de la capture d’une partie de l’écran.

A vos screencast !

Catégories
Blog

Le screencast facile

Je viens de découvrir un outil de screencast (capture vidéo d’écran) qui est la fois simple, performant, disponible sous PC/Mac et gratuit…

Jing pour ne pas le citer permet donc de capturer une partie ou la totalité de son écran sous la forme d’un fichier vidéo. Ce dernier, au format Flash (.SWF) peut ensuite être sauvegardé sur son disque local ou bien mis à disposition sur le site Screencast.com. Si vous choisissez cette dernière solution vous pourrez alors facilement intégrer vos screencasts dans votreblog (soit directement par un lien URL vers la vidéo, soit en intégrant le lecteur comme dans l’exemple suivant).

Ces deux services (Jing + Screencast) ont des interfaces utilisateurs très bien faites. Il n’y a donc plus aucune excuse pour ne pas intégrer des tutoriels vidéos sur vos sites 😉