Servez-vous

du logiciel libre, du boggle, du java, de la ligne de commande...

Ajuster en direct le son, l'image et les sous-titres d'une vidéo avec vlc

Voilà une petite astuce pour synchroniser en direct le son, l'image et les sous-titres dans vlc. 


Utilisez les touches "j" et "k" pour décaler l'audio en "live"

  • j -> augmenter l'avance de l'audio
  • k -> augmenter le retard

Pour ce qui est des sous-titres, utilisez les touches "g" et "h"
  • g -> augmenter l'avance des sous-titres
  • h -> augmenter le retard

Petit cas pratiques:
- vous voyez à l'écran que la personne parle, mais le son arrive un peu après. Quelques appuis sur "j" résoudront le problème.
- les sous-titres arrivent trop tôt. Utilisez la touche "h" !

Utiliser la balise <video>

La toute nouvelle version de firefox (3.5) est sortie hier, et supporte la balise <video> qui je l'espère va révolutionner rapidement l'utilisation des vidéos embarquées et casser un peu le monopole de flash insupportable par sa lourdeur (à cause du plugin linux merci adobe) et sa non liberté.

Voilà un exemple très simple d'utilisation, qui personnellement couvrira tout mes besoins:

<video id="video" src="out.ogv" controls="" width="300">
    Vidéo
</video>
Le résultat : jetez un coup d'oeil ici.

Pour du fullscreen il suffit d'utiliser le code suivant et de passer le navigateur en mode fullscreen):
<video id="video" src="out.ogv" controls="" width=100%>
    Vidéo
</video>
ou mieux encore d'utiliser une extension firefox. (merci FF pour ces deux astuces)

J'utiliserai cette balise dans les prochains billets nécessitant une vidéo, avec un lien vers la vidéo avec lecteur flash pour ceux dont le navigateur ne la supporte pas.

recordmydesktop et windowid


Il existe plusieurs outils permettant d'enregistrer le bureau sous forme de vidéos. Je vais parler ici rapidement de recordmydesktop, qui est très simple, et en ligne de commande.

Tout d'abord installez le paquet recordmydesktop à l'aide de votre gestionnaire de paquets. Lancez ensuite la commande
recordmydesktop
Sans aucun argument, la commande enregistre immédiatement l'ensemble du bureau, jusqu'à ce que vous envoyez un signal SIGINT à l'aide de CTRL-C. À ce moment l'enregistrement cesse, et l'encodage de la vidéo commence. Quelques secondes après, vous avez votre vidéo dans le fichier out.ogv (par défaut) du répertoire où vous étiez. (besoin d'un autre format? voir ffmpeg )
Pour sélectionner un autre fichier de sortie il suffit de préciser son nom après l'argument -o
recordmydesktop -o demo.ogv
On peut aussi choisir de n'enregistrer qu'une zone de l'écran, par exemple une fenêtre uniquement. Pour cela il faut donner à recordmydesktop le windowid de la fenêtre à enregistrer.
recordmydesktop --windowid 0x4800021
Mais comment récupérer le window id d'une fenêtre ? Il suffit de lancer la commande
xwininfo
puis de cliquer sur la fenêtre dont on cherche à connaître le windowid, xwinfo nous renvoie ensuite un tas d'informations, dont l'identifiant, en premier.
xwininfo: Please select the window about which you
would like information by clicking the
mouse in that window.
xwininfo: Window id: 0x3400082 "Mozilla Firefox"
Absolute upper-left X: 0
Absolute upper-left Y: 47
Relative upper-left X: 0
Relative upper-left Y: 21
Width: 1280
Height: 752
Depth: 24
Visual Class: TrueColor
Border width: 0
Class: InputOutput
Colormap: 0x20 (installed)
Bit Gravity State: NorthWestGravity
Window Gravity State: NorthWestGravity
Backing Store State: NotUseful
Save Under State: no
Map State: IsViewable
Override Redirect State: no
Corners: +0+47 -0+47 -0-1 +0-1
-geometry 1280x752+0-0
recordmydesktop offre la possibilité de mettre un retardateur au démarrage de la vidéo:
recordmydesktop -delay 3
Cette commande laisse 3 secondes pour se mettre en place. (On peut même aller jusqu'à plusieurs heures ! )

On peut aussi régler certains paramètre vidéos, comme
- le nombre de frame par seconde -fps n où n nombre de fps
 - la compression vidéo -v_quality x avec x entre 0 et 64, 0 = mauvaise qualité 64 = meilleure (par défaut)

Il y a aussi la possibilité d'enregistrer une zone de l'écran définie par les coordonnées du coin en haut à gauche et la taille de la zone en pixel.
recordmydesktop -x X_position -y Y_position -width longueur -height hauteur

Et enfin encore quelques options à propos du curseur, de l'audio (que je n'ai pas testé): tout est dans
man recordmydesktop
Bon enregistrement !

Convertir de ogg vers avi avec ffmpeg


Pour poster les vidéos de démonstration récemment, j'ai été amené à convertir au format avi les vidéos obtenues grâce à recordmydesktop , les formats ogg n'étant malheureusement pas acceptés par la majorité des uploader des sites comme dailymotion, vimeo...

J'ai utilisé pour cela ffmpeg, à l'aide de la commande:

ffmpeg -i video.ogg video.avi


Oui c'est très (trop) simple, mais n'étant pas expert en traitement vidéo, ça me convient parfaitement.