46 matching collectives

Atlantis Collective

About

Nous sommes Atlantis, un collectif axé sur le développement durable ainsi que sur la rapidité de réalisation de par l’utilisation de nouvelles technologies dans le domaine du développement web. 🌳

Blockness

About

Des projets décentralisés légendaires par des buidlers* humains.

Growth on Track

About

Notre collectif multidisciplinaire vous aide à trouver les ingrédients d‘une croissance saine, multi-canal, et centrée sur la data.

L'Atelier

About

Une équipe de développement à disposition pour tous vos besoins tech 🚀

TekFlare

About

Nous vous accompagnons pour prendre les bonnes décisions et structurer l'expertise technique au sein de votre entreprise.

Optimeast

About

Jetez l'ancre en position 1 de Google Search

MAKE IT BOLD

About

✨ MAKE IT BOLD - MAKE IT BRIGHT - MAKE IT HAPPEN ✨

Squadrone

About

Nous sommes un collectif d’experts en communication

Addscale

About

Addscale aide les entreprises BtoB à accélérer leur business avec un accompagnement alliant audit, stratégie, structuration et implémentation d'outils commerciaux innovants avec la mise à disposition de BDR.

SBK - ACDSIS

About

Notre collectif de développement web regroupe des passionnés de la technologie et de l'innovation, prêts à relever tous les défis pour vous offrir une expérience en ligne exceptionnelle.

FA#

About

Automatisation & Optimisation: Votre duo d'experts pour des process métier performants et une croissance accélérée.

Octocode

About

Octocode : Des solutions technologiques créatives et sur mesure.

Rocket dev

About

Des apps rapides et solides

Movelytics

About

De l'idée à l'application : Design, Développement technique, Développement marketing. Votre application web ou mobile sur mesure.

Atelier Digital

About

La première coopérative No-Code

RiseAgency

About

Ensemble, faisons grandir votre business

Dsides

About

Ingénierie numérique

Squaad

About

Le collectif expert en développement de solutions digitales sur mesure. Avec vos équipes, nous déployons des méthodes secrètes pour relever vos défis 👨‍🚀

Teester logo

Teester

MediaRetail & DistributionTelecommunicationsSmall


Comment Teester a standardisé les vidéos de ses utilisateurs

Afin de réduire le temps de montage vidéo découvrez comment Teester a standardisé les vidéos de ses utilisateurs


Teester est une solution permettant aux marques de récupérer des vidéos de leurs utilisateurs à propos de produits ou de services vendus.

En 2018, le projet en était à ses balbutiements, le business model venait d'être trouvé et les premières bases techniques avaient été posées. Face à la croissance du nombre de clients il était nécessaire de retravailler le système de gestion vidéo pour gérer un flux bien plus important. L'enregistrement de vidéos était moins répandu qu'aujourd'hui, les connexions Internet n'étaient pas aussi performantes et aucune vidéo n'avait le même format. Il était donc très difficile pour les équipes de traiter les vidéos de manière uniforme au vu des différents formats envoyés par les utilisateurs. Nous avons donc développé une suite de logiciels en NodeJS reposant sur FFmpeg pour convertir les fichiers vidéos dans un format standard et universel que nous nommerons par la suite le format "normalisé".

Au fil du temps nous avons amélioré ce processus de standardisation des vidéos en fonction des médias envoyés par les utilisateurs, voici les différentes actions que nous avons menées. Pour chaque cas nous proposerons un exemple en utilisant FFmpeg, ce sont des exemples simplifiés, la réalitée peut être plus complexe.

Son étouffé ou mal réparti

Nous avons remarqué que la bande son n'était pas uniforme et que certaines vidéos enregistrées en stéréo à partir d’un smartphone avaient régulièrement une piste audio vide ou étouffée, comme cela peut arriver lorsque l'utilisateur pose son doigt sur un des deux micros de son téléphone. Pour résoudre ce problème, nous avons décidé de fusionner toutes les bandes son et de ressortir un son mono. Si l’audio était spatialisé nous le convertissions en mono uniforme pour en faciliter le traitement par la suite. Une piste audio vide est créée si le média ne dispose pas de piste audio, dans le cas d'un timelapse par exemple. 

Le downmix peut être réalisé en utilisant le paramètre -ac pour définir le nombre de canaux audio au fichier de sortie. FFmpeg se charge automatiquement d’équilibrer les différents canaux par défaut.

ffmpeg -i input.mp4 -ac 1 -c:v copy out.mp4

Volume inégal entre différent médias

Nous recevions parfois plusieurs rushs pour une même vidéo cible, les médias n’étaient pas toujours enregistrés dans les mêmes conditions, le volume du son n’était donc pas homogène. La normalisation du son en utilisant le filtre FFmpeg loudnorm nous a permis d'obtenir un son uniforme sur l'ensemble des vidéos que nous recevions. À noter que ce filtre doit être exécuté en deux passes pour obtenir les meilleurs résultats possibles. 

Première passe : 

ffmpeg -i input.mp4 -af loudnorm=I=-16:LRA=11:TP=-1.5:print_format=summary -f null -

En se basant sur les valeurs retournées vous allez pouvoir exécuter la seconde passe pour égaliser cette bande son.

Seconde passe :

ffmpeg -i input.mp4 -af loudnorm=linear=true:I=-16:LRA=11:TP=-1.5:measured_I=-13.2:measured_LRA=20.5:measured_tp=1:measured_thresh=-26.3:offset=-0.6 out.mp4

Stabilisation des vidéos

Certaines vidéos étaient filmées sans trépied et les vidéos bougeaient énormément, nous avons utilisé le filtre vidstabtransform de FFmpeg pour stabiliser ces dernières. Ce filtre va zoomer légèrement dans votre vidéo et essayer d’en retirer les secousses. Cette opération nécessite deux étapes pour un rendu optimal et prend un certain temps, elle ne peut pas être réalisée en temps réel. 


Première passe : 

ffmpeg -i input.mp4 -vf vidstabdetect=result=mytransforms.trf -f null -

Seconde passe :

ffmpeg -i input.mp4 -vf vidstabtransform=zoom=5:input="mytransforms.trf" out.mp4

Détection des bandes noires

Pour nous faire gagner du temps, certains utilisateurs montaient eux-même leur vidéo, ce qui nous posait en réalité pas mal de soucis car ces vidéos ne respectaient pas nos règles de montage. Notamment celles exportées avec des bandes noires. Il nous fallait donc un outil pour détecter ces bandes de manière automatisée et les retirer. Nous avons utilisé le filtre FFmpeg cropdetect mais il est nécessaire d’y ajouter quelques garde-fous pour éviter qu'une image noire ne soit détectée comme de grandes bandes sur l'ensemble de la vidéo. L’astuce consiste à utiliser le filtre sur plusieurs frames de la vidéo pour s’assurer que les bandes noires apparaissent tout le long de la vidéo et pas uniquement à un moment précis.

Cette étape doit être réalisée en deux passes, une pour analyser le fichier et détecter les bandes noires et une seconde pour cropper la vidéo en se basant sur les informations de l'analyse.

Première passe : 

ffmpeg -i input.mp4 -vf cropdetect -f null -

Seconde passe :

ffmpeg -i input.mp4 -vf crop=720:1280:0:0 out.mp4

Arrière plan flouté

Pour uniformiser les vidéos nous avons choisis de toutes les exporter au format 16:9. Pour les vidéos verticales, nous ajoutons une copie floutée de la vidéo en arrière plan. Cette opération étant assez coûteuse en ressources, nous nous sommes laissés la possibilité de choisir pour chaque vidéo si nous souhaitions la convertir avec un fond statique (une image floue extraite de la vidéo qui est appliquée de manière constante) ou un fond dynamique (la vidéo entière est floutée).

Pour celà nous allons devoir calculer la largeur de la vidéo idéale pour éviter le downscale avec la formule suivante : [hauteur] 16 / 9. Pour une vidéo en 720 x 1280 pixels, nous avons donc 1280 16 / 9  = 2276. Nous pouvons désormais utiliser la commande suivante :

ffmpeg -i input.mp4 -filter_complex "[0:v:0]scale=2276:-2,boxblur=luma_radius=20:luma_power=20,crop=2276:1280[bgd];[bgd][0:v:0]overlay=(W-w)/2:(H-h)/2[output]" -map [output] -map 0:a:0 out.mp4

Vidéo anamorphiques

Certaines vidéos, dites “anamorphiques”, ont une résolution qui ne correspond pas au ratio de celle-ci. Par exemple une vidéo d’une résolution de 1440 x 1080 pixels mais affichée en 16:9 est anamorphique car 1440/1080 != 16/9. Ces vidéos utilisent une métadonnée pour définir l’aspect ratio de la vidéo. Même si cette métadonnée est de mieux en mieux supportée par les logiciels de montage, il existe de trop nombreux cas où la vidéo ne va pas s’afficher correctement, il est donc recommandé de la convertir pour éviter les ennuis par la suite.

ffmpeg -i input.mp4 -vf scale=iw*sar:ih,setsar=1 output.mp4

Vidéos entrelacées

Une vidéo peut être progressive ou entrelacée, c’est la lettre que vous voyez derrière une résolution (1080p = 1080 progressif, 1080i = 1080 interlaced). Le format entrelacé découpe les images par lignes, ce format est essentiellement utilisé pour la diffusion télévisuelle. Aujourd’hui la majorité des contenus diffusés sur Internet sont en progressif, c’est devenu la référence pour la diffusion de vidéo.

Malgré tout, certaines caméras bon marché enregistrent encore en entrelacé, nous avons dû nettoyer ces vidéos pour les utiliser proprement par la suite.

Au début nous pensions nous baser sur les informations remontées par FFprobe pour détecter si la vidéo était entrelacée ou non, malheureusement, en pratique nous avions des vidéos qui n’étaient pas détecter, nous avons donc utilisé le filtre idet pour détecter si la vidéo était entrelacée ou non.

ffmpeg -i input.mp4 -frames:v 25 -vf idet -f null -

En se basant sur les valeurs de “TFF” et de “BFF”, il est possible de savoir si une vidéo est entrelacée. Il est ensuite possible de corriger l’entrelacement avec le filtre yadif.

ffmpeg -i input.mp4 -vf yadif out.mp4

4K et au delà

Nous avons limité la résolution des vidéos à un flux en 4K (2160 x 3840) étant donné que nos clients ne sont pas en mesure de gérer les résolutions supérieures. 


De plus, dans notre cas d’utilisation, vu qu’il s'agit de vidéos enregistrées par des utilisateurs avec un matériel amateur, les résolutions supérieures n’apportent rien de plus sur les sites de nos clients.

Une limitation de la résolution peut être faite avec le filtre scale de ffmpeg :

ffmpeg -i input.mp4 -vf "scale=-2:min'(720,ih)':force_original_aspect_ratio=decrease" output.mp4

HDR

Nous avons aussi subi de nombreux problèmes avec l’arrivée de la HDR, en effet, en fonction des appareils, les vidéos ne sont pas enregistrées de la même manière et ces vidéos peuvent causer des problèmes d’affichages dans certains navigateurs webs.

C’est un sujet qu’il faudrait approfondir pour passer l'ensemble des vidéos sur la même norme HDR. Nos clients n’étant pas intéressés par cette technologie, nous avons fait le choix de ne pas y consacrer plus de temps.

Nous avons converti les vidéos en SDR et nous avons abandonné la HDR. Si cette option vous intéresse il existe un filtre FFmpeg qui permet de faire du “tone mapping”, c'est-à-dire transformer les couleurs pour qu’elles ne paraissent pas délavées une fois repassées en SDR.

ffmpeg -i input.mp4 -vf scale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=t=bt709:m=bt709:r=tv,format=yuv420p out.mp4


C’est ici que s’arrête notre tour des différents points de standardisation des médias que nous utilisions chez Teester. Nous avons également fait des tests avec des outils comme la technologie Google AutoFlip mais les résultats n’ont pas été à la hauteur de ce que nous souhaitions. La gestion des médias envoyés par les utilisateurs reste quelque chose de complexe si vous souhaitez le gérer par vous même correctement, n’hésitez pas à vous faire accompagner.

Members

Expertises

Google Cloud PlatformDockerJavascript & Typescript

From

Jan 2022 to Feb 2023