Vidéos pour présentations scientifiques

Les vidéos permettent de présenter des jeux de données complexes et dynamiques rapidement et clairement. Sauf qu'entre la mise en forme des images de la vidéos et l'inclusion de celle-ci dans une présentation, une foule de problème a tendance à survenir. La faute, sans doute, à de trop nombreux formats de compression, d'encapsulation de fichiers, et de liens symboliques hasardeux qui se perdent en chemin lors d'une copie vers une clé USB. Il existe toutefois des solutions permettant d'obtenir des vidéos de bonne qualité et de taille raisonnable en assurant une compatibilité avec le programme censé la lire (Powerpoint ou Adobe Reader, je n'utilise pas Keynote malheusement).


Faire une vidéo à partir d'une séquence d'images

ImageJ et MATLAB permettent de faire des films à partir respectivement d'un objet movie (une figure éventuellement animée) et d'une séquence d'images (stack). Malheureusement, il existe assez peu de paramètres permettant d'exporter la vidéo en question au format qui nous convient, et avec un choix sur la qualité de l'encodage. Pis, la taille des vidéos obtenues n'est pas toujours raisonnable.

Une alternative gratuite, multiplateforme, très efficace quoiqu'un peu austère (en ligne de commande) est ffmpeg. Il permet également d'encoder des séquences d'images ou de ré-encoder une vidéo de logiciels propriétaires pas forcément très aimables en une vidéo lisible par tous, pas trop grosse et de bonne qualité. Un appel classique à ffmpeg s'écrit :

./ffmpeg -i image_%03d.png [options] mavideo.mp4

Sous Windows, on se passera du ./, et on pensera à ajouter le dossier de ffmpeg aux variables d'environnement (PATH). L'option -i de ffmpeg spécifie le fichier, ou la liste de fichiers qui va être convertie en vidéo ; ici, avec des fichiers du type image_001.png, image_002.png, etc.

Jetons maintenant un œil aux principales options susceptibles de nous intéresser. Ralentir une vidéo s'effectue en utilisant un filtre vidéo, avec un syntaxe du type (ici, pour un ralentissement d'un facteur 3) :

-filter:v "setpts=3*PTS"

Il est possible de changer la taille de la vidéo (ici, pour forcer une taille de 572x946 pixels)

-s 572x946

La qualité de la vidéo se change en utilisant l'option -qscale (allant de 1, sans perte, à 31, plus mauvaise qualité, 18 étant déjà excellent) :

-crf 18

Une foule d'autres options existent pour ce logiciel et sont généralement bien expliquées sur le Wiki de ffmpeg.


Compatibilité avec les présentations Powerpoint

J'utilise deux logiciels pour mes présentations scientifiques : Microsoft PowerPoint ® et Adobe Reader CC ®. Le premier logiciel, depuis sa version 2013, est compatible avec le codec par défaut de ffmpeg et l'intégration des vidéos est donc transparente. Pour une version Powerpoint 2010, il faut passer par le codec Xvid, plus ancien :

./ffmpeg -i image_%03d.png -c:v libxvid -q:v 4 video.avi

Le codec produit alors un fichier .avi, et est malheureusement moins efficace que le codec natif de ffmpeg. Cette fois-ci, la qualité de la vidéo se règle avec la commande -q:v.


Le cas Adobe Reader / Beamer

Pour les versions d'Adobe Reader supérieures à 9 (et donc, Adobe Reader CC), et si vous faites vos présentations en utilisant Beamer, il est possible d'inclure des vidéos directement dans les fichiers PDF. Pour cela, il faut inclure le paquet media9 dans votre préambule :

\documentclass[...]{beamer} 
[...]
\includepackage{media9}
[...]
\begin{document}

Vous pouvez ensuite vous servir du paquet pour inclure des fichiers multimédia dans vos présentations (cela inclut également des animations 3D, ou des liens vers des flux Youtube). J'utilise généralement la macro suivante :

\newcommand{\addvideo}[3]{
% Macro to add video : 
% Argument 1 : video source location
% Argument 2 : image preview file location
% Argument 3 : width of video
\begin{center}
    \includemedia
    [
        width  = {#3}, addresource = {#1},               %Inclut le fichier source dans le fichier pdf
        flashvars = {src=#1 & scaleMode = letterbox}     % Appelle le fichier source dans le lecteur 
    ]
    {\includegraphics[width = {#3}]{#2}}{StrobeMediaPlayback.swf} % Arg #2 is used as preview image        
\end{center}
}

Si vous voulez inclure votre vidéo préférée video.mp4 avec une image d'exemple image_exemple.png quand la vidéo n'est pas lancée, le tout avec une largeur de 8cm, cela donne donc une commande LaTeX du style :

\addvideo{video.mp4}{image_exemple.png}{8cm}

La vidéo est alors incluse dans le fichier PDF, et il n'est plus nécessaire de la copier avec la présentation.

Dernier point : à cause d'un léger problème de compatibilité du côté d'Adobe, les vidéos que vous créerez devront être encodées avec un espace de couleurs spécifique, obtenu en rajoutant l'option suivante :

./ffmpeg -i image_%03d.png -pix_fmt yuv420p video.mp4

Il faut également noter que l'espace colorimétrique obtenu (le pixel format) n'admet que des tailles de vidéo (472x276, 800x600, etc.) paires.

Leave a Comment