Transformation 4K SuperView 16:9 > 4:3 > équirectangulaire : nouvelle version du remap2 + Fisheye Center

 

Nous avons vu précédemment dans un article comment on pouvait transformer une vidéo tournée en 16:9 en 4:3 pour ensuite la changer en équirectangulaire grâce au filtre ffmpeg REMAP et des LUTs en X et Y. Cette méthode est particulièrement utile dans le cas d’une prise de vue avec la caméra GoPro Hero 4 avec un fisheye Entaniya 280°, le combo parfait pour capturer en 360 monoscopique avec une seule caméra. Le filtre en question a été mis à jour récemment afin de faciliter la transformation et voici les quelques changements :

  • plus besoin de 2 fichiers luts x et y séparés, on peut spécifié une seule lut en png couleur.
  • possibilités de donné en options les coordonnées du centre optique obtenu grâce à l’outil Fisheye Center afin de faire la transformation en équirectangulaire.

Remap2 n’est malheureusement pas dans la version officielle de ffmpeg, il faut donc compiler soit même ce dernier avec le filtre ou si vous êtes sur MacOS 10.11 ou 10.13, utiliser notre version static build, prête à l’emploi, avec toutes les libraries nécessaires (Voir plus bas, section Téléchargement).

Voici un nouveau guide pour cette nouvelle version :

Superview 16:9 > 4:3

 

ffmpeg -i votrevideo.mp4 -i superviewlut.png -filter_complex remap2 -crf 18 videout.mp4

 

DYLD_LIBRARY_PATH=dylibs ./ffmpeg : Si vous utiliser la version static pour MacOS proposé en bas, c’est la commande à taper qui spécifie le chemin vers le répertoire où se trouve les librairies. Il faut s’assurer qu’on est dans la racine du dossier ffmpeg. Vous pouvez aussi créer un alias pour vous rendre la tâche moins pénible !

-filter_complex remap2 : ceci va appliquer la LUT sur la vidéo.

-crf 18 : Constant Rate Factor, 0 étant la meilleure qualité sans aucune perte et 51 est la plus mauvaise qualité possible. 23 est par défaut, 18 est un bon compromis qualité/taille du fichier.

Le résultat doit ressembler à cela :

Trouver le centre du fisheye

Ouvrir le fichier processing “fisheye_center.pde”.

Avant toute chose, il faut installer la librairie Processing Video. Pour cela, allez dans la barre de menu de Processing en haut vers Sketch > Importer une librairie > Ajouter une librairie… Cherchez “processing video”, sélectionner “Video | GStreamer-based video library for Processing” et faites “Install” en bas.

Note : Vous devez vous assurer que le dossier “data” soit à la racine du .pde.

Exécuter le sketch et sélectionner le fichier 4K en 4:3. Vous allez voir votre vidéo avec une déformation comme sur la capture d’écran en dessous.

 

Corriger la déformation avec les slides en bas ou avec ces touches :

flèche droite et gauche : ajuste le centre de l’image

flèche haut et bas : ajuste les côtés de l’image

touche + et – : ajuste le rayon du fisheye

 

Le but, c’est de trouver les valeurs en x, en y du centre et le rayon du fisheye afin de les utiliser pour la deuxième commande ffmpeg.

On va déplacer le centre à l’aide des repères rouges (le cercle en haut à gauche et la ligne horizontale) pour ne plus avoir cette vague. Une fois que vous êtes sûre que l’image est correcte, récupérer les valeurs cx, cy et r afficher en bas. 

 

4:3 > équirectangulaire 

ffmpeg -i videoout.mp4 -i equilut.png -filter_complex remap2=cx=1953:cy=1346:r=1310 -crf 18 videoequi.mp4

Dernière étape :

On va appliquer un petit cache noir afin de cacher le bas de l’image (overlay) et faire un flip en horizontal (hflip) pour restituer l’image dans le bon sens. Pour cela, vous aurez besoin d’un fichier en png (coverblack.png) déjà fourni qui va couvrir seulement le bas de l’image. On va aussi en profiter pour préparer le fichier au format 4.2.0 (-pix_fmt yuv420p) afin qu’il soit lu correctement par les téléphones intelligents ou uploader vers YouTube.

ffmpeg -i videoequi.mp4 -i coverblack.png -filter_complex ‘[0:v][1:v]overlay,hflip[out]’ -map ‘[out]’ -c:v libx264 -preset slow -crf 18 -pix_fmt yuv420p videofinal.mp4

Le résultat doit ressembler à ça :

Une seule commande ffmpeg :

Si vous n’avez pas déplacé le fisheye par rapport à la GoPro (pas de mise au point entre les prises…etc.) logiquement les coordonnées du centre du fisheye restent les mêmes. Dans ce cas, vous pouvez combiner toutes les commandes ffmpeg en une seule, à vous de changer les valeurs cx, cy et r.

ffmpeg –i gopro.mp4 –i superviewlut.png –i equilut.png –i coverblack.png -filter_complex ‘[0:v][1]remap2[out1]; [out1][2]remap2=cx=1953:cy=1346:r=1310[out2];[out2][3]overlay,hflip[outfinal]’ -map ‘[outfinal]’ -c:v libx264 -crf 18 -pix_fmt yuv420p output.mp4

Téléchargements :

Fisheye Center – Version 2 (avec GUI)

 

Fichiers LUTs Superview et Equirectangulaire

 

Cover noir (pour cacher les bords du fisheye)

 

ffmpeg 3.4 avec remap2 (à compiler sur votre machine)

 

ffmpeg Pour MacOS 10.13 (High Sierra)

 

ffmpeg pour MacOS 10.11 (El Capitan)

(note pour étudiant UdeM : version actuelle du LaM – Hiver 2018)

 

n’hésitez pas à me contacter si jamais vous avez des questions ou des remarques.

Emir C. Écrit par :

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *