2018-01-02 Montage vidéo avec Python

Je me suis mis en tête d’initier des adolescents à la programmation en faisant du montage vidéo. Il est facile aujourd’hui de se filmer avec un téléphone portable ou une tablette mais il faut pouvoir retravailler les prises et les assembler si on souhaite réaliser un petit film. La programmation n’est sans doute le premier réflexe et je me doute que beaucoup iront chercher sur internet un logiciel permettant de faire cela. Cela veut dire aussi un certain coût d’apprentissage. Je n’ai pas essayé même si j’ai trouvé un logiciel tel que ShotCut (voir FramaLibre / montage). Au lieu de ça, j’ai regardé s’il existait un module Python qui me permettait de faire cela. J’ai trouvé moviepy et surtout la gallerie d’exemples qui donne une assez bonne idée de ce qu’on peut faire avec.

Cette approche est plus coûteuse lorsqu’il s’agit de faire des opérations simples tels que mettre bout à bout ou extraire un extrait d’une vidéo puisque que l’outil qui permet de visualiser le résultat (comme VLC) est différent de celui qu’on utilise pour construire ce qu’on peut (Python dans mon cas). Néanmoins, cette approche est moins coûteuse lorsqu’il s’agit de faire un traitement complexe comme parcourir un film image par image, extraire les personnages et les insérer dans une autre vidéo. J’ai par exemple isolé Mary Poppins du décor dans lequel elle danse.

../../_images/image_mary_poppins_12_0.jpeg

Ce procédé s’appuie sur du deep learning et je ne pense pas que cette fonctionnalité soit accessible depuis un logiciel de montage vidéo. Et si jamais ça l’était, cela serait sans doute via une interface utilisateur plutôt complexe. Et voici Mary Poppins sur une plage.

../../_images/image_mary_poppins_29_1.png

Ce qu’on souhaite faire est souvent un assemblage plus ou moins long de tâche simple et c’est assez facile à écrire qu’on on dispose d’un moyen d’enchaîner ces tâches simples. Le résultat est parfois complexe et si l’interface utilisateur existait, elle ferait apparaître de nombreuses options qui feraient probablement un peu peur au premier regard. C’est mon expérience, je ne dis pas que ce soit la seule, mais je pense qu’on passe moins de temps à explorer toutes les options ou contourner les limites de l’outil qu’on utilise en passant directement par la programmation plutôt que par un logiciel tout fait. Cela se traduit néanmoins par une approche un peu plus abstraite. A l’usage, on se sert des deux outils.

Pour préparer ce travail, j’ai cherché à écrire un peu de lignes une façon de récupérer une vidéo, d’en extrait un bout, d’y ajouter une bande son, quelques incrustations textuelles. Cela m’a permis de constituer une petite liste de fonctions dont on peut s’inspirer : Vidéos et Sons et quelques jeux Arts, Médias et Programmation. Quelques notebooks qui pourraient vous intéresser : Quelques images de Mary Poppins, Segmenter une image pixel à pixel.