Les guerres d'un Responsable Informatique

Vous êtes passionnés comme moi de machines basse-consommation, ARM, Atom : rendez visite à mon partenaire !

Video screen capture avec ffmpeg

jeudi 25 novembre 2010 à 07:00 | Dev
script bash

Régulièrement, j'ai besoin de réaliser des captures vidéo d'écran de PC sous linux, pour des tutoriaux vidéo, des démonstrations interactives. Comme je suis un geek, je vous propose un script bash, basé sur des outils opensource, un soupçon de grep, de awk et de ffmpeg.

Et oui, l'outil opensource ffmpeg permet de capturer la vidéo d'un écran, avec le flag : ffmpeg -f x11grab

Pour récupérer, les coordonnées et la taille, de ma fenêtre à capturer et pour simplifier le travail j'utilise xwininfo.

#!/bin/bash echo 'click on the window you want to capture, I need to get its size !' INFO=(`xwininfo |grep -oEe 'Absolute upper-left X: [0-9]+|Absolute upper-left Y: [0-9]+|Width: [0-9]+|Height: [0-9]+'|awk '{if($4=="") {print $2} else {print $4};}'`) # ffmpeg need a odd size so let's do some math ;) if [ $(( ${INFO[2]} % 2 )) -ne 0 ] then INFO[2]=$(( ${INFO[2]} + 1 )) fi if [ $(( ${INFO[3]} % 2 )) -ne 0 ] then INFO[3]=$(( ${INFO[3]} + 1 )) fi `ffmpeg -f x11grab -r 30 -s ${INFO[2]}x${INFO[3]} -i :0.0+${INFO[0]},${INFO[1]} -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output1.mkv`

Allez une démo, une démo ! Bon si vous insistez ?!

J'espère que cela vous sera utile.

A propos de Vincent RABAH

Directeur des systemes d'information

Je suis DSI depuis 10 ans. Spécialiste en systèmes d'information et réseaux.
Expert en management, GreenIT et virtualisation de serveurs. Vous pouvez consulter l'ensemble de mon parcours.

I do speak English even if my blog is written in French ... Feel free to leave comments, I'll answer you !


Partagez cet article :



Fil des commentaires de cet article

3 commentaire(s) Commentaires »

  1. bonsoir
    je viens de tomber par hasard sur ce script (très bon) et pour avoir le son j'ai rajouter :
    -f alsa -ac 2 -i hw:0,0
    après ffmpeg, le son est bon mais bas j'ai pas trouvé pour l'augmenter sauf en recodant avec mencoder

    soit le script modifié:

    #!/bin/bash

    echo 'click on the window you want to capture, I need to get its size !'
    INFO=(`xwininfo |grep -oEe 'Absolute upper-left X: [0-9]+|Absolute upper-left Y: [0-9]+|Width: [0-9]+|Height: [0-9]+'|awk '{if($4=="") {print $2} else {print $4};}'`)

    # ffmpeg need a odd size so let's do some math ;)
    if [ $(( ${INFO[2]} % 2 )) -ne 0 ]
    then
    INFO[2]=$(( ${INFO[2]} + 1 ))
    fi
    if [ $(( ${INFO[3]} % 2 )) -ne 0 ]
    then
    INFO[3]=$(( ${INFO[3]} + 1 ))
    fi

    `ffmpeg -f alsa -ac 2 -i hw:0,0 -f x11grab -r 25 -s ${INFO[2]}x${INFO[3]} -i :0.0+${INFO[0]},${INFO[1]} -acodec pcm_s16le -vcodec libx264 -vpre lossless_ultrafast -threads 0 output1.mkv`

  2. Bonjour Josy,
    Tous les types de DVDRom fonctionnent.

  3. Bonjour Monsieur !

    Une question : comment faire pour enregistrer une vidéo créée sur mon ordinateur - Quel type de DVD-rom choisir ?

    Merci de répondre à ceci ...

Laisser un Commentaire

Quelle est la première lettre du mot hviex ? :