Pitivi 1.0 (en fait : 2020.09) est sorti, après 16 ans de développement !

Posté par  (site web personnel) . Édité par Davy Defaud, Jean-François A., M5oul, Benoît Sibaud, Ysabeau 🧶 et BAud. Modéré par Davy Defaud. Licence CC By‑SA.
76
14
oct.
2020
Audiovisuel

Pitivi, logiciel de montage vidéo pour GNOME, basé sur GStreamer, et qui se veut simple et puissant, est enfin sorti, le 30 septembre 2020, dans sa flambante version 1.0…

… Bon, sauf qu’elle a été annoncée seulement le 11 octobre 2020 et qu’elle est finalement numérotée 2020.09 !

L’occasion d’un coup d’œil dans le rétroviseur.

Logo de Pitivi

Sommaire

Aperçu de l’interface de Pitivi (en réalité l’interface n’est déjà plus celle‑ci…)

Sous le capot : les défis techniques relevés par les développeurs

Né en 2004, Pitivi a connu de nombreuses réécritures, dont la première a eu lieu en mars 2005 lors de l’abandon du langage C au profit de Python. Le temps de sa maturation, il a eu l’occasion de côtoyer GStreamer dans ses versions 0.8 (2004-2005), 0.10 (2005-2012) et 1 (depuis 2012)… Les derniers chantiers ont, quant à eux, complètement chamboulé les fondations du logiciel : ce sont ceux‑ci que nous allons détailler.

Ainsi, au début de la décennie, la petite équipe de développeurs (lire ci‑après) a scindé le logiciel en deux pour rendre son moteur indépendant sous la forme d’un composant réutilisable par tous (GES, pour GStreamer Editing Services), avant de gérer le Big Bang du passage simultané (les trois technologies étant intriquées) à PyGObject, GTK 3 et GStreamer 1 ! La version 0.91, sortie en septembre 2013, concrétise ce travail qui aura duré rien de moins que trois années.
C’est la raison de ce « trou » visible dans cette frise chronologique (inachevée) du développement de Pitivi :

Frise chronologique du développement de Pitivi

Il faudra attendre encore un an et la version 0.94 pour que soit réalisé le portage du logiciel — qui n’est désormais plus, grosso modo, qu’une interface graphique à GES — vers Python 3.

Dans le même temps, la piste de montage, initialement implémentée à l’aide de GooCanvas, a été portée vers Clutter (version 0.91), avant d’être à nouveau réécrite, cette fois en pur GTK (version 0.95).
Sans oublier le lecteur, qui était basé sur ClutterSink, et qui a été rebasé sur glimagesink, le nouveau module de sortie GL de GStreamer (version 0.94).
Et que dire de l’outil de transformation graphique qui a été implémenté une première fois en 2012 (« a hacky solution where the sink and cairo drew in the same GTK drawing area, acquired for GStreamer with the Gst Overlay API »), avant d’être réécrit en 2014 (« still using Gst Overlay API, but this time with the glimagesink » et finalement en 2016 (« now we have the almighty GtkSink in Pitivi ») ?

Ensuite, la version 0.95, sortie fin 2015, incorpore le travail de réécriture du mélangeur vidéo de GStreamer pour le rendre thread‑safe (NLE, pour Non Linear Engine, vient donc remplacer GNonLin). Une dépêche LinuxFr.org vous narre cette histoire dans le détail et avec panache.

L’occasion de souligner, à travers ces deux exemples (GES et NLE), que les développeurs ont toujours travaillé à enrichir (et corriger) GStreamer pour en faire un outil adapté au montage vidéo, au bénéfice de tous.

Depuis, l’architecture de Pitivi est restée essentiellement la même :

Architecture de Pitivi

Les versions suivantes ont surtout apporté des corrections et optimisations, mais aussi quelques nouvelles fonctionnalités particulièrement intéressantes, comme l’édition vidéo en mode proxy (qui consiste à faire le montage avec des versions intermédiaires des vidéos en basse résolution et/ou simplement dans des formats de fichier adaptés au montage ; et, devinez quoi : Pitivi 2020.09 implémente les deux cas de figure !).

Dans l’habitacle : l’enrichissement des fonctionnalités

Petite sélection :

Cette version apporte également, parmi d’autres choses :

  • un écran d’accueil repensé ;
  • un gestionnaire de greffons ;
  • la possibilité d’apposer des marqueurs sur la piste de montage ;
  • une gestion plus complète des pistes ;
  • la refonte de la bibliothèque des effets et de celle des médias.

Derrière les manettes : une poignée d’individus

L’histoire de Pitivi, c’est aussi celle de ses mainteneurs successifs

Edward Hervey a lancé le projet en 2004 dans le cadre de son projet de fin d’études à l’EPITECH. L’année suivante Edward rejoint Fluendo où il travaille sur GStreamer et Pitivi (il raconte lui‑même cette période dans ce billet). En 2007, il poursuit son travail au sein de Collabora. À partir de décembre 2008, le développement du projet s’accélère à l’initiative de Collabora qui recrute deux autres développeurs : Alessandro Decina qui travaillera deux ans sur le projet, et Brandon Lewis qui travaillera trois ans dessus. Un quatrième développeur, Thibault Saunier, est ensuite recruté en novembre 2010 (et fait toujours partie des mainteneurs).

Parallèlement au développement de Pitivi, les développeurs contribuent activement à GStreamer : nombreux correctifs voire carrément création de modules comme GES (développé initialement par Edward Hervey avec le soutien financier de Nokia dans le cadre du projet MeeGo) mis à disposition fin 2009, ou NLE publié fin 2015.

À partir de la deuxième moitié de 2010, tandis qu’Edward Hervey commence à prendre du champ pour se consacrer exclusivement à GStreamer, il est à noter que, nonobstant un financement participatif entre 2014 et 2015 et les travaux d’étudiants sponsorisés (principalement dans le cadre du GSoC : Brandon Lewis, Thibault Saunier ou Mathieu Duponchelle ont d’ailleurs commencé à travailler sur le projet dans le cadre du Google Summer of Code ! – mais aussi via le GWOP), le développement régulier de Pitivi n’est assuré que par des bénévoles, principalement (par ordre d’ancienneté dans le projet) : Jean‑François Fortin Tam qui est arrivé sur le projet fin 2004, Thibault Saunier, en 2010, Mathieu Duponchelle, en 2011, et Alexandru Băluț, arrivé lui aussi en 2011.

Suite au retrait de Jean‑François et Mathieu autour de 2016 pour raisons professionnelles, les mainteneurs actuels sont Thibault Saunier et Alexandru Băluț.

Les rôles techniques de chacune des personnes évoquées sont détaillés à cette page du wiki officiel.

Aujourd’hui, Edward Hervey et Mathieu Duponchelle travaillent pour Centricular (et vivent tous deux en France). Jean‑François Fortin Tam propose ses conseils en tant que consultant indépendant en gestion d’entreprise et via l’agence créative idéemarque (il vit au Canada).
Quant aux deux mainteneurs actuels : Thibault Saunier travaille pour Igalia (et vit au Chili), tandis qu’Alex Băluț travaille pour Daedalean AG (et vit en Suisse).

N. D. L. A. : N’ont été cités ici que les mainteneurs successifs du projet, mais que l’ensemble des contributeurs soit vigoureusement remercié et félicité.

Galerie de portraits pris à différentes occasions

Les ressources ci‑après proviennent du blogue de Jean‑François Fortin Tam.

Pitivi+GES Hackfest 2011 à Berlin

Voir aussi la vidéo incluant la présentation de quelques protagonistes.

PiTiVi+GES Hackfest 2011De g. à dr. : Lubosz Sarnecki (étudiant GSoC), Luis de Bethencourt Guimera (de dos), Thibault Saunier et Mathieu Duponchelle (alors étudiant GSoC, de trois quarts).

PiTiVi+GES Hackfest 2011Edward Hervey.

PiTiVi+GES Hackfest 2011Thibault Saunier.

PiTiVi+GES Hackfest 2011Les deux mêmes.

PiTiVi+GES Hackfest 2011De g. à r. : Thibault Saunier et Mathieu Duponchelle.

PiTiVi+GES Hackfest 2011De g. à dr. : Thibault Saunier, Alex Băluț (tous deux au fond) et Lubosz Sarnecki (au premier plan) cachant Mathieu Duponchelle.

PiTiVi+GES Hackfest 2011Alex Băluț et Thibault Saunier (de dos).

PiTiVi+GES Hackfest 2011En haut, et de g. à dr. : Thibault, Alex, Thibault, Mathieu, Luis et Alex ; en bas : les mêmes.

GStreamer Hackfest 2012 à Málaga

GStreamer Hackfest 2012De g. à dr. : Thibault Saunier, Antigoni Papantoni (étudiante GWOP) et Edward Hervey.

GStreamer Hackfest 2013 à Milan

Voir aussi la vidéo.

GStreamer Hackfest 2013Des gens (!), dont Edward Hervey (au fond), Thibault Saunier (sur la droite, de profil et casqué) et Alex Băluț (à droite au premier plan).

GStreamer Hackfest 2013Jean‑François en haut, Edward et Alex (dans cet ordre) en bas.

GStreamer Hackfest 2013Répartis un peu partout : Jean‑François, Mathieu, Thibault et Alex (dans cet ordre dans la photo en haut à gauche).

Campagne de financement 2014

Campagne de financement 2014Jean‑François en pleine campagne !

GUADEC 2016 à Karlsruhe

GUADEC 2016De g. à dr. : Alex Băluț, Jakub Steiner et Mathieu Duponchelle.

Conclusion… en attendant la suite

La version 1.0 2020.09 représente une sorte d’achèvement, et les personnes qui ont participé au développement du logiciel ou l’ont suivi peuvent légitimement en être émues.

Pour le futur, différentes fonctionnalités sont d’ores et déjà prévues comme l’ajustement de la vitesse des séquences (les fondations sont prêtes depuis trois ans dans GStreamer)… tout cela à suivre sur Planet Pitivi. ;)

Aller plus loin

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.