Ligne de commande mencoder

On commence par mes plus plates excuses : la version anglaise du blog est toujours buggée, mais malheureusement je n’ai pas le temps de m’y consacrer :-( .

Ouverture synthétique

Pas le temps ? Eh oui, j’ai fini par succomber à la pression1 et je fait turbiner le Mac Pro de mon bureau2 sur de la synthèse d’ouverture optique.

Comme en SAR, le principe est de combiner les images de plusieurs caméras (ou plusieurs observations d’une même scène, ça revient au même) pour simuler, mathématiquement, une caméra “plus grande”. Dans le cas du radar, on simule une plus grande antenne pour améliorer la précision des mesures. Dans le cas optique, on simule une pupille d’entrée (ouverture) plus grande, dans mon cas de 60 ou 70 cm, alors que la focale des objectifs utilisés est de 6 mm.

Les fans de photographie auront tout de suite deviné l’intérêt de ces systèmes : comme la profondeur de champ est inversement proportionnelle à la taille de l’ouverture, on peut transformer des images entièrement nettes en images où le plan de netteté est très mince, sans avoir à payer le prix d’une optique de grande ouverture et en ayant le choix a posteriori du plan de netteté.

Pipe-line de traitement

Donc, un labo voisin m’a transmis 15 Go de données brutes de capteurs (fichiers images raw), qui passent par une savante moulinette :

  • démosaïquage (standard, celui d’OpenCV pour l’instant) ;
  • débruitage (filtre bilatéral) car les images sont horriblement bruitées ;
  • calibration (un algo maison à base de détection de coins et de points d’intérêt, car le point est assez décalé sur certaines caméras et le flou engendré perturbe la détection de coins) ;
  • synthèse d’ouverture (youpi), à exécuter sur les 36 000 images d’entrée pour chaque distance de mise au point désirée.

Le résultat de tout ça, c’est un dossier contenant environ 4000 images (les trames individuelles de la séquence vidéo) pour chaque distance de mise au point synthétique, que je vais ensuite transformer en fichier vidéo grâce à mencoder en ligne de commande.

La commande mencoder

Comme mencoder est assez peu documenté, j’en arrive donc au coeur de ce billet, à savoir la (longue) commande que j’exécute :

mencoder mf://${SRC_DIR/*.png} -mf w=1024:h=768:fps=30:type=png -ovc -lavcopts vcodec=mpeg4:mbd=2 -oac copy -o$DEST_MOVIE

La première partie de la commande décrit les données d’entrée : des images png, dans le dossier SRC_DIR de taille 1024x768 pixels à 30 images/seconde, qu’il faut ensuite encoder en vidéo (-ovc) avec le codec mpeg4, la partie audio étant simplement copiée (-oac copy) depuis le fichier d’origine, donc ici ignorée. Le tout est ensuite écrit dans le fichier DEST_MOVIE.

Mais au fait, pourquoi… ?

Oui, mais pourquoi s’embêter avec cette commande ? Deux raisons :

  • je n’ai pas trouvé de clicodrome satisfaisant pour cette tâche assez simple
  • je peux continuer à bosser depuis chez moi en lançant les conversions via ssh, en ligne de commande, depuis mon téléphone. Oui, bon, d’accord, cette dernière raison n’est peut-être pas la meilleure…

mencoder via ssh


  1. Et aussi par retrouver un peu d’esprit positif. ^
  2. D’ailleurs, aucune annonce de nouveaux Mac Pro à la WWDC de cette semaine, je sens l’esprit négatif et râleur qui repointe le bout du nez… ^

Related