Convertir un diaporama PDF en vidéo MP4

J’avais besoin de faire défiler automatiquement un diaporama de présentation qui était enregistré au format PDF.

Paquets nécessaires

On aura besoin de 2 paquets : pdftoppm (qui fait partie des outils contenus dans poppler-utils) et ffmpeg.

Commandes pour les installer

Voici les commandes pour Ubuntu, à adapter pour d’autres distributions.

sudo apt install poppler-utils
sudo apt install ffmpeg

Découper le PDF en images

On commence par convertir le fichier PDF en autant d’images que de diapositives dans le diaporama.

Commande

Se placer dans le répertoire où se trouve le diaporama.

cd le-repertoire-ou-se-trouve-le-diaporama

Lancer la conversion. Dans l’exemple ci-dessous, chaque page sera enregistrée sous le nom image-01.png, image-02.png … dans le répertoire où se trouve le diaporama avec une résolution de 144 dpi aussi bien en longueur qu’en largeur. Cette commande prend un peu de temps à s’effectuer sans aucune indication dans le terminal. Soyez patients.

pdftoppm -png -rx 144 -ry 144 diaporama.pdf image

Paramètres

  • -png : indique le format des fichiers images obtenus ;
  • -rx : indique la résolution horizontale ;
  • -ry : indique la résolution verticale.

Résolution

La commande qui permet de créer la vidéo semble exiger que les images soient en des résolutions comme 72 ou 144 dpi. En effet cela n’a pas fonctionné avec 150 dpi par exemple (qui est la résolution par défaut de la commande pdftoppm si on ne précise pas).

Créer la vidéo

Commande

On se place dans le répertoire où se trouvent les images (dans mon exemple, c’est le même que le précédent et je peux donc enchaîner les deux commandes)..

ffmpeg -r 1/4 -i image-%02d.png -c:v libx264 -r 30 -pix_fmt yuv420p video.mp4

Paramètres

  • -r 1/4 : signifie que le temps entre 2 diapositives sera 4 secondes ;
  • -i image-%02d.png : signifie que ce sont les fichiers dont le nom commence par « image-« , suivi par un nombre à 2 chiffres (%02d) et qui finit par « .png ». Dans cet exemple, les fichiers image-01.png à image-99.png dans l’ordre et s’ils existent seront utilisés pour la vidéo. Si les images sont numérotées sur 1 ou 3 chiffres, il faudra modifier : image-%01d.png ou image-%03d.png selon la cas (on indique le nombre de chiffres de la numérotation, d pour digit en anglais) ;
  • -c:v libx264 : indique le codec utilisé pour la vidéo (ici h264) ;
  • -r 30 : indique le nombre d’images par seconde de la vidéo (ici ce n’est très important) ;
  • -pix_fmt yuv420p : indique la résolution de la vidéo ;
  • video.mp4 : est le nom et le format de la vidéo obtenue.

Sources