13 mars 2015

filmer une conférence

Ce billet fait suite à mon article sur la prise de son au BreizhJUG

J'ai donc bien insisté sur le fait que la qualité du son est l'élément clé pour diffuser une conférence, ceci dit ce n'est pas une raison pour faire n'importe quoi avec l'image.

Encoder

La majorité des sessions historiques du BreizhJUG sur Parleys sont d'une qualité "passable". La raison : le publisher Parleys limite la vidéo à 300Mo, ce qui pour 90minutes de présentation nécessite de régler le codec avec amour, et de lui imposer un débit max raz des pâquerettes. Le résultat n'est pas sans conséquences. Je n'ai pas creusé très loin les options d'encodage ni les divers codecs disponibles, mais ça semble délicat de faire rentrer une qualité vidéo correcte dans 300Mo, même les films qu'on trouve sur bittorent font 700Mo pour la même durée - enfin il parait, moi j'ai jamais téléchargé de film illégalement et je ne regarde que Arté.


La version actuelle permet d'utiliser une vidéo YouTube, donc on a plus cette limitation;

à nous les HD, 1080p et autres 4K ! 

Le débit est donc un élément important sur la qualité de la vidéo que verrons nos auditeurs, ceci dit sur une conférence, filmer en 50p full HD n'a pas un grand intérêt, à moins de vouloir capturer image par image le moindre détail du sensuel geste d'Amira se recoiffant ... ce que peu de gens font (non, moi non plus, quelle idée enfin). 




Pour ne pas pénaliser ceux qui ont un débit réduit (toi qui partage une livebox à 50 dans l'openspace tu me comprend) mais aussi pour que l'upload ne prenne pas 72h, il faut encoder avec un débit adapté, et plus on a une haute résolution à encoder, plus le fichier va être lourd, donc plus on est obligé de dégrader au niveau de la compression ... Bref, j'ai retenu le 720p qui permet de faire du plein écran sans exploser la taille des fichiers - et ça permet au Ch'tiJUG de passer nos vidéos quand ils sont en manque de speaker :P

Je capture en full HD 50p puis j'exporte en 720p avec un débit "raisonnable" de 2.5Mb/s. Je fait la capture dans ce mode "haute qualité" car je préfère dégrader à la post-production une image de qualité que de travailler sur une image déjà dégradée. Un filtre d'élimination du bruit de fond par exemple applique une moyenne / flou sur le fond considéré uniforme mais qui subit un bruit numérique. Sur une image HD il dispose de nombreux points donc cette moyenne est pertinente. La réduction d'échelle en 720 est alors appliquée sur une image "propre".

Filmer

Vous noterez sans doute entre ces deux captures une grande différence de contraste / luminosité. C'est ici que l'autre bout de la chaine intervient : la qualité de la capture vidéo. La première date de 2010 avec notre "vieux" caméscope et la seconde date de février avec notre caméra HD achetée l'an dernier. Mais ce n'est pas la seule explication.

Le lieu de prise de vue n'est pas le même. En général un problème dans les salles de conférence c'est qu'on éclaire peu pour avoir un bon contraste sur l'écran de vidéo-projection, alors que la caméra elle exige un max de lumière sur le speaker. On a la chance à l'ISTIC d'avoir un compromis très correct de ce point de vue. Les grandes conférences n'hésitent pas à installer du matériel de scène pour éclairer le speaker. C'est aussi ce que j'envisage pour le BreizhCamp 2015. 

Au passage attention si ça vous tente, les lampes n'ont pas toutes la même couleur de blanc ('température'). Le risque avec un éclairage type néon, une lumière très "bleue", c'est de rendre l'image blafarde, alors qu'un halogène donnera une image très (trop?) "chaude". Sur le caméscope on peut régler la "balance des blancs" en conséquence, et on peut aussi corriger cela au montage - cette correction est surtout nécessaire sous éclairage néon, assez blafards. Sous Final Cut Pro, il suffit de laisser tourner le soft en analyse de la balance des couleurs et de cocher une case... 

Si la lumière n'est pas géniale, et même si elle est suffisante, une bonne qualité de capture vidéo reste nécessaire. J'ai déjà évoqué le cas de la GoPro. Cette micro-caméra de sport corrige les défauts de ses capacités physiques par de l'extrapolation et du renforcement des contrastes qui lui donnent une image qui pète un max. Que les choses soient claires: l'objectif d'une GoPro, comme celui de votre téléphone, ne pourra jamais rivaliser avec un objectif de type photographie en termes de lumière captée, ne serait-ce qu'en considérant sa section de collecte de la lumière - ce qui n'est qu'un des nombreux facteurs à envisager.

Un autre point à considérer avec la GoPro c'est son effet fish-eye : le grand angle déforme la géométrie de prise de vue. C'est l'effet "immersion" voulu quand on filme du base-jump, par contre pour une conférence, c'est plutôt dérangeant. 

Evidemment, on est pas obligé d'investir dans un Canon 5D avec un objectif à 2000€ pour filmer un talk sur Cassandra. Un caméscope correct fait très bien le travail, le tout est de bien évaluer ce qu'on entent par "correct".

Un caméscope est par définition un "tout terrain automatique". Pour filmer en conférence, on filme sur pied, sans mouvement important, sans changement de lumière, sans changement de focus, et souvent avec une lumière assez faible. Si vous devez choisir un modèle, je vous conseille vivement de lire les tests du site les numériques qui sont très complets, et testent souvent le comportement en faible luminosité (test encore plus complet si vous choisissez un DSLR). Les défauts qu'ils révèlent sont ceux qui vous feront ch.. lors de vos prise de vue en conférence. Sur cet exemple, on a d'un côté beaucoup de bruit numérique et de l'autre une image certes moins lumineuse, mais plus propre.


Nous avons un Sony HDR CX740 qui a une image que je trouve très correcte, et réagit plutôt bien au manque de lumière. 

Monter

Entre la prise de vue et la diffusion il y a le "montage", ce qui veut dire en gros "passer des heures sous Final Cut à chercher le bon filtre et le réglage qui va bien".

Pour un film de conférence, c'est une étape qui se fait rapidement puisqu'il n'y a pas à proprement parler de montage : on détermine le début et la fin de la présentation, basta. Je débute encore sous FCP mais je sais qu'on peut aussi ajuster le rendu de l'image pour corriger la luminosité et le rendu des couleurs et rendre l'image plus sympa. Tout dépend du temps libre dont on dispose :P

Bon, ça c'était la partie facile - ok, on a donc le film de notre speaker qui porte la bonne parole. Mais manquent les slides, ou pire les démos / live coding. Parce que sans ça, nos vidéos ne servent pas à grand chose.


Filmer l'écran

On voit souvent des sessions où le speaker est filmé de loin avec l'écran de projection. C'est malheureusement la fausse bonne idée. Les stats Youtube qui indique le moment où notre lecteur d'Internet nous quitte (durée moyenne de visionnage) est assez révélateur pour cela.

Autant la qualité d'image pour regarder Julien nous expliquer JHipster n'est pas un point clé, autant celle de la capture de son écran quand il tape du code l'est, car toute notre concentration est portée sur l'image à ce moment là. 

Or, filmer une image projetée sur écran, ça donne souvent un grand carré blanc flou, à peine lisible, très fatigant. Sauf à avoir un sujet qui déchire, personne ne restera devant cette vidéo jusqu'à la fin.



Screen-recording
En tant que speaker on m'a parfois demandé d'installer un truc qui va enregistrer tout ce qui se passe sur mon écran. Ca parait pas mal comme solution, et c'est clairement à considérer si vous n'avez pas le budget pour la solution suivante, mais ...

  1. le speaker (moi le premier) est souvent réticent à installer un truc sur sa machine, il a peur que ça fasse planter ça démo qu'il a préparé depuis 2 mois
  2. ça bouffe souvent pas mal de CPU et en effet, ça fait planter la démo
  3. ça peut bouffer pas mal de disque, se gaufrer en plein milieu (ça m'est arrivé), et en plus planter la démo
  4. si on oublie de récupérer le fichier à la fin de la session, alors que le speaker se dépêche de remballer, harcelé de questions ... on ne verra jamais la vidéo.
  5. y'a toujours un mec qui n'a rien trouvé de mieux que d'installer ArchLinux ou Windows 10
  6. si on utilise pas le mode "recopie vidéo", qu'il y a des changements de résolution à un moment donné, ou toute autre manip' de ce genre, il y a une incertitude sur ce qui est enregistré.

Variante intéressante, on m'a proposé à BDX.io la capture à distance. Je lance un soft depuis une clé USB (pas d'installation donc) et il est sensé permettre à l'opérateur de capturer mon écran. Evidemment, un truc quelque part bloquait le port, et comme on mettait ça en place 5 minutes avant mon intervention, c'était mort

Bref, c'est globalement fragile, stressant pour tout le monde, et pas sans risques même en dehors de foirer la capture. C'est donc à considérer comme un plan B, pour une salle annexe, ou pour sa propre utilisation.


Que faire alors ? 

Capturer le signal vidéo.

Au BreizhJUG nous avons dès 2009 utilisé un boitier "VGA2USB" qui marche pas trop mal mais est vite limité. Sur la session live-coding de David Gageot par exemple, on obtient une résolution 1024x768 avec quelque chose comme 20 images/seconde, et une image correcte. C'est suffisant pour suivre les refactoring qui s'enchaînent sans avoir mal au crâne (ou du moins, ce n'est pas la faute de la capture vidéo). Ce boitier coute quelques centaines d'euro et nécessite un PC connecté pour récolter la capture, ce qui est plutôt contraignant. Raison pour laquelle on ne l'a utilisé que quelques fois, et jamais pendant le BreizhCamp.

Il faut croire qu'on était en avance sur notre temps vu qu'on est référencé sur leur site maintenant !



En 2015 le HDMI devient de plus en plus présent, et simplifie beaucoup les choses. En effet, le problème du VGA c'est que c'est un signal analogique, donc le système de capture doit recomposer le signal écran pour l'échantillonner. Le HDMI par contre véhicule directement un signal numérique. Cerise sur le gateau, avec l'explosion du social gaming sur Youtube, on dispose aujourd'hui de boitiers de capture HDMI autonomes conçu pour permettre au gamers de capturer leurs moments d'anthologie.

Je viens de faire l'acquisition d'un AVerMedia Game Capture HD II. Equipé d'un disque 2.5", c'est un boitier autonome qu'on intercale entre le speaker et le vidéo projecteur. On appuie sur le bouton rouge et c'est parti pour 1h30 de capture vidéo. Je vous dirais ce que ça donne sur le terrain dans un prochain billet :) 

Ce type d'appareil est très orienté Gamer et du coup on pourra lui préférer du matos plus "vidéo" - Epiphan propose par exemple un boitier dédié à ce cas d'usage, mais pas pour le même tarif !


Au montage
Si vous publiez sur Parleys, la question ne devrait pas se poser vu que c'est le publisher parleys qui va vous permettre de mixer la vidéo du speaker avec la capture écran. Sauf qu'il faut tout de même que la bande son soit la même sur les deux vidéos, donc vous vous coltinerez tout de même l'étape "montage" pour avoir la même bande son sur les deux.

Au montage, on peut choisir d'intercaler cette vidéo avec l'image du speaker comme le fait Parleys, ou faire de l'incrustation comme par exemple sur les vidéos de la DockerCon ou l'inverse pour la Jenkins User Conférence - selon qu'on préfère voir le code ou le speaker :P.

 




Voilà, donc amis organisateur de conférence, y'a plus qu'à !

n'hésitez pas si vous avez des questions/remarques => @ndeloof




3 commentaires:

Unknown a dit…

Je confirme que pour BDX I/O, l'année prochaine, on tentera un autre système que la capture vidéo à la volée.

Un point important par contre : si tu souhaites faire du livestream, tu seras forcé d'avoir ce type d'acquisition (ou alors de "filmer" les slides, avec la qualité qui va avec...)

Pour l'occurence 2015, je pense qu'on conservera le soft de capture à distance pour les keynotes uniquement :
- On ne livestream que ces dernières à priori (si on fait pareil que 2014)
- Généralement, le speaker n'a pas besoin de faire des trucs exotiques (comme montrer une page internet .. fichtre !)

Pour tout le reste, je vais pousser pour qu'on s'équipe en boitier d'acquisition à la volée.
Ca me fait me demander, d'ailleurs, si ça ne serait pas intéressant de mettre en commun ce matos entre les différentes conf fr (en mettant en place une sorte de location pour les conf qui prêtent le matos à une autre).
Ca demande un peu d'orga, mais ça permettrait à tout le monde d'économiser et rentabiliser un peu plus ces investissement qui ne servent, bien souvent que pour 1 ou 2j dans l'année...

Unknown a dit…

En solution soft et free, il y a
Open Broadcast System qui est multi plate-forme.
C'est prévu à la base pour streamer des sessions de jeux vidéo mais on peut également enregistrer. C'est assez performant même en Full HD car cela utilise le GPU pour coder les vidéos. Je n'ai testé qu'avec un GPU nvidia mais ça devrait être performant également sur un GPU intel.
Pour éviter d'avoir à récupérer la vidéo sur le PC du speacker, il doit être possible d'utiliser la fonction streaming et en plus la vidéo serait synchro avec la prise de vue caméra.

Unknown a dit…

Je vais compléter mon post précédent après expérimentation.

En fait :
1- OBS c'est Open Broadcaster Software (My Bad)
2- OBS demande une carte compatible Direct X 10 sous Windows

Donc OBS ne me semble pas utilisable pour un JUG à cause de l'incompatibilité avec les vieux ordis au moins pour 1 ou 2 ans. Sinon ça marche du tonnerre (et c'est full soft donc the way to go selon moi).

Sinon la carte AverMedia je recommande: bon matos, bon rapport qualité/prix.