Stabilisation
Les clips tremblés se lisent stables. Rien à calculer d’abord.
Filmé avec la stabilisation de la caméra coupée ? Double-cliquez sur le clip : il se lit stable, à partir des mouvements enregistrés par la caméra, pendant que vous regardez. La stabilisation ne modifie jamais le fichier original.
Fonctionnement
Ce qu’il faut pour stabiliser un clip.
Un clip tremblé, c’est la caméra qui tourne un peu, de nombreuses fois par seconde. Pour le stabiliser, chaque image est tournée en sens inverse, d’autant que la caméra a tourné. Il faut pour cela trois choses : comment la caméra a bougé, comment son objectif dessine l’image, et un programme qui assemble les deux.
Comment la caméra a bougé
La plupart des caméras d’action ont un gyroscope : un capteur qui enregistre, des centaines de fois par seconde, comment la caméra a tourné. Ce sont les données gyro du clip, ou données de mouvement, écrites dans le fichier vidéo. Elles sont exactes, et les lire ne prend pas de temps. Vous les obtenez quand la stabilisation de la caméra est coupée : ce qu’il faut régler est juste en dessous.
Pas de données gyro ? À partir de l’image
Un clip sans données gyro peut quand même être stabilisé : le mouvement est alors trouvé dans l’image elle-même, en suivant des détails d’une image à l’autre (flux optique). C’est plus lent, donc c’est fait une fois, à l’avance, et enregistré.
Comment l’objectif dessine l’image
L’objectif grand angle d’une caméra d’action courbe l’image, davantage vers les bords. Pour tourner une image en sens inverse comme il faut, le programme a besoin de la forme de cet objectif : son profil. Les lignes droites restent alors droites au lieu d’onduler sur les bords.
Le programme : Gyroflow
Le programme qui s’en charge ici est Gyroflow, gratuit et open source. Son moteur tourne dans le lecteur pendant la lecture du clip : il n’y a donc rien à calculer d’abord. Il connaît les objectifs de la plupart des caméras d’action. Gyroflow est aussi une app à part entière, pour les clips qui demandent plus : le lecteur y ouvre un clip avec Ctrl+e, et lit ce que vous y enregistrez.
Avant de filmer
Ce qu’il faut régler sur la caméra.
La caméra n’enregistre les données gyro que dans certains modes, et le lecteur ne les utilise que si la caméra indique que sa propre stabilisation était coupée.
-
Coupez la stabilisation de la caméra
L’EIS (stabilisation électronique de l’image) chez DJI, HyperSmooth chez GoPro, FlowState dans la caméra chez Insta360. Chez DJI, il faut l’EIS coupé lui-même : un mode horizon, ou l’EIS coupé avec un recadrage, compte comme activé.
-
Chez DJI, filmez en FOV Wide
Les caméras DJI enregistrent les données gyro avec l’EIS coupé et le champ de vision (FOV) Wide. Dans les autres FOV, elles peuvent n’en enregistrer aucune, et ces clips demandent le flux optique de Gyroflow.
-
Sous l’eau, gardez-la coupée. Hors de l’eau, à vous de voir
Dans l’air, l’EIS de DJI fonctionne bien : il y a donc peu de raisons de le couper. Sous l’eau, non, avec le firmware actuel, sans doute parce que l’eau dévie la lumière et que l’objectif se comporte alors comme un objectif plus long que celui pour lequel l’EIS est réglé. Le préréglage fourni avec le lecteur est fait pour l’eau. Pour en savoir plus sur la plongée, voir Sous l’eau.
-
Puis double-cliquez sur un clip
Rien d’autre à régler. Log ou pas, peu importe ici : la couleur est une étape à part, expliquée dans Vidéos en log.
Vérifié sur de vrais clips : DJI Osmo Action 6 avec l’EIS coupé et GoPro HERO12 Black avec HyperSmooth coupé, sur un Mac avec Apple Silicon. Les autres caméras DJI, les autres GoPro et les caméras Insta360 à un seul objectif sont prises en charge et devraient fonctionner.
Projets Gyroflow
Ouvrez-le dans Gyroflow. Enregistrez. Il revient, stabilisé.
Ctrl+e met le clip en pause et l’ouvre dans Gyroflow, l’app, pour tout ce que les réglages du lecteur ne font pas. Gyroflow doit être installé.
Un clip stabilisé à partir de ses données gyro
Le lecteur écrit d’abord un projet à côté du clip, tel qu’il se lit : le même préréglage, le même niveau, la même vue, le même verrouillage d’horizon et le même objectif, plus les données de mouvement, pour que Gyroflow n’ait pas à les relire. Un .gyroflow déjà présent est ouvert tel quel, jamais écrasé.
Un clip avec un projet
Son projet s’ouvre tel quel dans Gyroflow.
Pas de données gyro ? Pas de souci
La vidéo elle-même s’ouvre dans Gyroflow, qui la stabilise optiquement : il trouve le mouvement dans l’image elle-même (flux optique). Le panneau affiche « Waiting for the project from Gyroflow… » (en attente du projet de Gyroflow). Enregistrez le projet à côté du clip, et le clip se recharge là où il était, stabilisé.
Sous Windows, ouvrir une vidéo qui n’a pas de projet demande le chemin de Gyroflow dans gyroflow_app=, dans gyroflow.conf.
Chaque enregistrement revient
À chaque enregistrement dans Gyroflow (Cmd+SCtrl+S), le lecteur recharge la stabilisation au même endroit du clip. Dès lors, le clip se lit avec son projet.
Le fichier vidéo lui-même n’est jamais modifié : le projet est toujours le fichier .gyroflow à côté.
La partie Stabilization
Les réglages, dans le panneau à côté de la vidéo.
Le panneau latéral s’ouvre sur sa partie Stabilization. Tab masque le panneau et l’affiche de nouveau. De haut en bas :
- Avec quoi il est stabilisé
- Une carte en haut indique dans quel cas se trouve le clip : « The camera's gyro data » (les données gyro de la caméra), « Gyroflow project » (projet Gyroflow) ou « No motion data in this clip » (pas de données de mouvement dans ce clip). En dessous, Edit in Gyroflow…, ou Stabilize in Gyroflow… quand il n’y a pas de données gyro (Ctrl+e, plus haut). Sans données gyro, le reste de la partie est masqué.
- View par défaut On Ctrl+g
- On : zoomé pour qu’aucun bord n’apparaisse. Wider (plus large) : sans zoom, vous voyez donc davantage de l’image, et les bords apparaissent par moments, remplis comme l’indique Bords. Off : tel qu’enregistré, pour ce clip seulement.
- Level par défaut Medium Ctrl+k
- La force, pour un clip sans projet. Weak (faible) : 10 % de recadrage, lissage à 50 %. Medium (moyen) : 20 % de recadrage, lissage à 75 %. Strong (fort) : 30 % de recadrage, lissage à 100 %. Quand la caméra tourne plus loin que le recadrage ne le permet, l’image la suit plus tôt : les bords n’apparaissent donc qu’à ce moment-là. Changer de niveau prend effet aussitôt, pendant la lecture. Grisé pour un clip avec un projet : il a le lissage du projet.
- Horizon par défaut As preset
- As preset (As project pour un clip qui en a un) : comme son nom l’indique. Le préréglage fourni avec le lecteur laisse l’horizon libre. Level : l’horizon maintenu à niveau. Cela demande plus de zoom, donc les bords apparaissent davantage. Free : non maintenu à niveau.
- Lens par défaut Auto Ctrl+u
- La correction de la façon dont l’eau dévie la lumière. Auto : selon ce que dit la caméra, dans l’eau ou non, avec un changement en l’espace d’une image quand un clip entre dans l’eau ou en sort. Seule l’Osmo Action 6 l’enregistre ; pour les autres caméras, Auto est grisé et le clip se lit comme le disent le préréglage ou le projet (le préréglage fourni : sous l’eau). In water (dans l’eau) et Above (hors de l’eau) le règlent à la main. Un clip avec un projet a d’abord As project. Ctrl+u passe à Above et revient.
- Reduce color aberration par défaut activé Ctrl+a
- Sous l’eau, la vitre plate devant l’objectif sépare les couleurs vers les bords de l’image. Ce réglage les remet en place, partout où l’objectif est sous l’eau. Sur des clips de plongée de l’Osmo Action 6, la frange rouge sur les bords passe de 3 à 7 px à environ 1 px. Lecture seulement : les exports gardent les franges. Grisé quand Lens est sur Above.
- Make these the defaults
- En bas de la partie : enregistre les réglages tels qu’ils sont pour le prochain démarrage du lecteur.
Combien de temps dure un réglage
Un réglage que vous changez reste en place pour le reste de la session, pour les clips suivants aussi, sauf si vous appuyez sur Make these the defaults, qui le garde pour le prochain démarrage. Un clip avec un projet démarre avec les réglages propres au projet ; ce que vous y changez vaut pour ce clip seulement.
| Réglage | Clip sans projet | Clip avec un projet |
|---|---|---|
| View | On et Wider restent pour les clips suivants. Off vaut pour ce clip seulement. | Démarre sur On, comme dans Gyroflow. Wider ou Off : ce clip seulement. |
| Level | Reste. | Ne s’applique pas : le lissage du projet. |
| Horizon, Lens | Restent pour les clips suivants sans projet. | Démarrent sur As project. Un changement : ce clip seulement. |
| Bords, aberration chromatique, Temporal denoise | Propres au lecteur, pas à Gyroflow : ils restent pour tous les clips. | |
| Choix de Performance & Quality | Gardés pour cet ordinateur dès que vous les faites. | |
Le préréglage, et le vôtre
Un clip sans projet part du préréglage par défaut de Gyroflow, avec celui du lecteur par-dessus. Celui-ci est fait pour sous l’eau : l’objectif corrigé pour l’eau (réfraction 1,33) et l’horizon laissé libre. Le Level remplace son lissage et son zoom. Sur un clip de test, la correction pour l’eau a fait passer le tremblement restant entre les images de 0,16 px à 0,02 px.
Pour partir du vôtre, enregistrez un préréglage depuis Gyroflow (Export → Create settings preset) sous le nom default.gyroflow dans ~/Library/Application Support/ActionFootagePlayer/gyroflow/%LOCALAPPDATA%\ActionFootagePlayer\gyroflow\. Les réglages du panneau s’appliquent toujours par-dessus.
Ce qui va dans un export
Shift+E exporte le clip tel qu’il se lit : le même projet ou préréglage, Level, View, Horizon, Lens et remplissage des bords. La suppression de l’aberration chromatique et le débruitage ne valent que pour la lecture. L’export, et l’endroit où va le fichier, sont expliqués dans Vidéos en log.
Bords
Quand l’image stabilisée ne couvre pas la fenêtre.
Dans la vue Wider, ou quand la caméra tourne plus loin que le recadrage ne le permet, des parties de la fenêtre sont vides. Le lecteur les remplit, floutées et fondues dans l’image.
- Trail by direction par défaut
- (Traînée par direction.) Ce qui a été vu en dernier dans cette direction, connu grâce aux données gyro, pris dans toute l’image enregistrée par la caméra, y compris ce que le zoom recadre. Cela reste en place quand la caméra fait un panoramique. Là où rien n’a encore été vu, les couleurs voisines s’étendent, un peu plus sombres et plus grises.
- Frame's edge spread out
- (Bord de l’image étiré.) Seulement les couleurs de l’image en cours, étirées depuis son bord. Rien des images précédentes, donc rien qui puisse être décalé, et le plus léger pour l’ordinateur.
- Background color
- (Couleur de fond.) La couleur de fond du projet, telle que Gyroflow la rend.
Ctrl+b passe de l’un à l’autre pendant la lecture. Ils sont dans la partie Performance & Quality du panneau, plus bas. La vue Wider choisit un champ de vision où l’image stabilisée couvre à peu près autant de surface que l’image d’origine : elle montre donc davantage de la scène, avec des bords tout du long.
La traînée ne connaît que la façon dont la caméra a tourné, pas la façon dont elle s’est déplacée. Les objets proches que la caméra a dépassés, et ce qui a bougé de lui-même, peuvent y être décalés. Là où rien n’a été vu, le remplissage est une couleur inventée, pas de l’image.
Performance & Quality
Pour un ordinateur qui ne suit pas.
La partie Performance & Quality du panneau apparaît pour un clip stabilisé. Ses choix sont gardés pour cet ordinateur dès que vous les faites.
- Frame rate par défaut Every frame
- Every frame (chaque image), 30 fps ou 15 fps : la fréquence à laquelle l’image stabilisée est rendue. Un clip plus rapide se lit à cette fréquence.
- Size par défaut Display
- Video : la taille propre de la vidéo. Display : pas plus grande que ce que l’écran en affiche. 1080p ou 720p : au plus cela.
- Paused frame par défaut As it played Ctrl+f
- Full size (pleine taille) : l’image rendue de nouveau à la taille propre de la vidéo, un instant après la pause. Ctrl+f le fait une fois. Plus de détails dans Photos.
- Temporal denoise par défaut activé Ctrl+p
- (Débruitage temporel.) L’image en pause reconstruite à partir des 5 images de chaque côté, si bien que le bruit du capteur en faible lumière disparaît en grande partie. Demande que la stabilisation soit activée. Plus de détails dans Photos.
- Edges par défaut Trail by direction Ctrl+b
- Trail by direction, Frame's edge spread out, Background color : voir Bords.
- Edge fill rate par défaut Auto
- À partir de combien d’images la traînée est écrite : Auto, chaque fois que la puce graphique (GPU) a de la marge, ou 50 % ou 25 % des images. Pour les portables où le processeur et le GPU se partagent leur puissance. Seulement pour Trail by direction.
- More
- Reduce color aberration : le même interrupteur que dans la partie Stabilization. Pause and ask when slow (activé) : voir plus bas.
Quand il ne suit pas, il demande
Si plus d’un dixième des images sont perdues pendant plus de 2 secondes, la lecture se met en pause et demande : « Stabilization can't keep up, frames are dropped. Play lighter: » (la stabilisation ne suit pas, des images sont perdues ; lire plus léger). Il propose ce qui aide sur ce clip : 30 ou 15 fps, un remplissage des bords plus léger, aucun remplissage des bords, un rendu en 1080p, laisser les franges de couleur, ou continuer tel quel, et « Don't ask again » (ne plus demander). Ce que vous choisissez est gardé.
Sur un MacBook Pro M1 Pro, la stabilisation suit la 4K à 60 fps avec de la marge. Sur un portable Windows fin de 15 W, la 4K à 60 fps, avec la traînée tenue à 15 fps, pas à 30.
Moments
Un moment garde la stabilisation avec laquelle il a été enregistré.
Un moment est un passage d’un clip que vous gardez (k). Il enregistre l’une de deux choses, jamais les deux. Si le clip avait un projet Gyroflow, le moment reçoit sa propre copie raccourcie, _Moments/<name>.gyroflow, qui décide ensuite de son horizon, de son recadrage et de son lissage. Sinon, il garde les View, Level et Horizon avec lesquels il a été créé, par-dessus le préréglage. Un changement ultérieur du clip ou de son projet n’atteint pas le moment.
Pendant la lecture d’un moment, la ligne Stabilized du panneau propose As saved (tel qu’enregistré), On its own (lissé à partir du seul mouvement du moment) et With its clip (lissé avec le mouvement du clip autour). Chaque réglage démarre sur As saved. Ce que vous choisissez ne vaut que pour regarder, pour tous les moments de cette session, jusqu’à ce que Keep in <name> l’écrive dans le moment.
Comment il décide
Trois questions, dans cet ordre, à chaque ouverture d’un clip.
Le lecteur ne devine jamais. Il ne stabilise un clip que s’il sait comment, et sinon le lit tel qu’il a été enregistré.
-
Un projet Gyroflow à côté du clip l’emporte
Un projet Gyroflow est un petit fichier
.gyroflowqui contient tout ce dont Gyroflow a besoin pour stabiliser un clip. Le lecteur en cherche un à côté de la vidéo, avec le même nom :DJI_0007_D.gyroflowouDJI_0007_D.MP4.gyroflow. S’il en trouve un, le clip se lit tel que Gyroflow le rend : le lissage, le zoom, l’objectif, la taille de sortie, le verrouillage d’horizon et la correction pour l’eau du projet. Le Level du lecteur ne s’applique pas. -
Sinon, les données gyro de la caméra, si sa stabilisation était coupée
Avant la lecture du clip, le lecteur lit ce que la caméra a écrit dans le fichier. Il ne stabilise le clip que si le fichier contient des données gyro et que la caméra a enregistré que sa propre stabilisation était coupée : EIS coupé chez DJI (et le FOV Wide, le champ de vision), HyperSmooth coupé chez GoPro, FlowState coupé chez Insta360. Les clips GoPro et Insta360 demandent aussi que leur objectif figure dans la base d’objectifs de Gyroflow. Le clip se lit alors avec le préréglage fourni avec le lecteur et vos réglages du panneau : Level, View, Horizon et Lens.
-
Sinon, pas de données gyro ? Pas de souci : Ctrl+e l’ouvre dans Gyroflow
D’ici là, le clip se lit tel qu’il a été enregistré. Appuyez sur Ctrl+e, et la vidéo s’ouvre dans Gyroflow, qui la stabilise optiquement, à partir du mouvement dans l’image elle-même (flux optique). Enregistrez-y le projet, à côté du clip, et le clip se recharge là où il était, stabilisé : c’est désormais un clip avec un projet, le cas 1.
Pourquoi si strict : une vidéo que la caméra a déjà stabilisée se dégrade quand on la stabilise une seconde fois. Un clip dont la caméra dit que sa stabilisation était activée, ou ne dit rien, se lit donc tel qu’enregistré. Une erreur sur une caméra signifie que ses clips se lisent tels quels, pas moins bien.
Touches
Les touches.
Ctrl est Ctrl sur Mac aussi, pas Cmd.
Limites
Ce qu’il ne fait pas.
- Pas de données gyro ? Gyroflow stabilise le clip optiquement. Un clip DJI filmé avec l’EIS activé, ou dans un autre FOV que Wide, peut n’en avoir aucune. Ctrl+e l’ouvre dans Gyroflow ; enregistrez-y le projet, et il se lit stable ici.
- Stabilisation de la caméra activée veut dire tel qu’enregistré, HyperSmooth de GoPro et FlowState d’Insta360 compris, même si ces caméras enregistrent quand même des données gyro.
- Le panneau indique « No motion data in this clip » pour tout clip qu’il ne stabilise pas, y compris un clip GoPro avec HyperSmooth activé qui a des données gyro. Gyroflow peut alors utiliser ces données gyro plutôt que le flux optique.
- Vérifié sur deux caméras : l’Osmo Action 6 et la GoPro HERO12 Black. Les clips GoPro et Insta360 demandent que leur objectif figure dans la base d’objectifs de Gyroflow.
- Un projet fait avec Ctrl+e lisse un peu différemment dans Gyroflow que le Level dans le lecteur.
- Après un saut au-delà de ce qui a été lu, un clip sans projet se lit sans correction pendant un instant (environ 2 s depuis un disque réseau), puis la correction apparaît en fondu.
- La suppression de l’aberration chromatique et le débruitage ne valent que pour la lecture, pas pour les exports.
- Pendant la lecture d’un clip, un export s’arrête presque. Mettez en pause pour le laisser avancer.
- Seuls les fichiers sur un disque sont stabilisés, pas les flux depuis une adresse web.
- L’app Windows est une alpha, encore peu testée.
Questions
Sur la stabilisation.
Pourquoi mon clip tremble-t-il encore ?
Le plus souvent, la stabilisation de la caméra était activée, ou, chez DJI, le clip n’a pas été filmé en FOV Wide : il n’y a donc pas de données gyro à utiliser. La carte du panneau indique « No motion data in this clip ». Appuyez sur Ctrl+e pour le stabiliser dans Gyroflow ; une fois le projet enregistré à côté du clip, il se lit stable ici.
Faut-il aussi couper la stabilisation de la caméra hors de l’eau ?
Pas forcément. Dans l’air, l’EIS de DJI fonctionne bien. Sous l’eau, non, et c’est là que le couper vaut la peine. Pour un clip filmé dans l’air avec l’EIS coupé, sur une autre caméra que l’Osmo Action 6, réglez Lens sur Above (Ctrl+u) : le préréglage fourni suppose de l’eau.
Ai-je besoin de Gyroflow ?
Pas pour les clips avec des données gyro et la stabilisation de la caméra coupée : le lecteur les stabilise tout seul. Il vous faut l’app Gyroflow pour faire ou modifier un projet, et pour les clips sans données gyro.
Est-ce qu’il modifie mes fichiers vidéo ?
Non. Le lecteur ne fait que les lire. Un projet est un fichier .gyroflow séparé, à côté du clip, et le lecteur n’écrase jamais celui qui s’y trouve.
Essayez
Coupez la stabilisation de la caméra. Double-cliquez sur le clip.
Gratuit, sans compte, et vos vidéos restent telles quelles.
Vous plongez ?
Les réglages par défaut sont faits pour l’eau : la correction pour l’eau, les franges de couleur, la profondeur à l’écran.
Sous l’eauEnvoyez un clip de votre caméra
Quelques secondes tout droit sorties de la carte aident à faire passer une caméra de « devrait fonctionner » à vérifiée.
Ouvrir une issue sur GitHubTout ce qu’il fait
Chaque touche et chaque option, les looks, et les caméras une par une.
Toutes les fonctions