Skip to content

3 janvier 2017

Emmanuel Gaillot edited this page Jan 3, 2017 · 1 revision

Participants

Les nouvelles depuis la dernière fois

  • Idris nous rend visite
    • Est passé récemment de PHP à Ruby (et continue de faire du Backbone.js)
    • Fait des tests unitaires pour la première fois professionnellement

Les envies du jour

  • convertir des timecodes d'un fichier de sous-titre avec un fps différent de celui de la vidéo

Ce qui s'est passé

  • On a mis en évidence le problème.

  • Puis on a patouillé à essayer de comprendre d'où venait le facteur qu'on constatait (0.9955)

    • … qui ne semble pas avoir de sens, vu que les sous-titres sont pour un fps de 23.976, alors que la vidéo a un fps de 29.97
    • … et qu'on arrive pas à appliquer manuellement dans les paramètres de synchronisation vidéo / sous-titres de VLC
    • … mais qu'on a pu vérifier empiriquement en sondant à différents momens de la vidéo (au début, au milieu, à la fin)
  • On décide d'écrire du code qui, à défaut d'être générique, pourra convertir le fichier de sous-titres qu'on a.

  • Le plan de Manu :

    • étant donné une ligne au format 00:30:01,114 --> 00:30:04,000, arriver à extraire les timestampts de début et de fin, en secondes (ici : 1801.114 et 1804)
    • appliquer le facteur de conversion (trivial)
    • recoder la ligne au format SRT
    • pour chaque ligne du fichier, recopier celles qui ne sont pas au format timestamp --> timestamp, et transformer celles qui le sont
  • On le fait !

    • Des difficultés à mettre l'environnement d'équerre pour coder en TDD et en Ruby
      • on finit par laisser tomber Rspec et on passe par test/unit
    • Quand on passe au main.rb, des erreurs de syntaxe
    • On se rend compte qu'on a oublié le \n à ajouter à la fin de chaque ligne
    • Le plan se déroule bien malgré tout

Ce qu'on retient de la session

  • Surprise : on s'attendait à devoir faire varier plus de paramètres (alors qu'en fait, il y a juste un facteur multiplicatif à porter sur les timestamps)
  • On peut faire des tests unitaires sans rspec
  • Quitte à résoudre un problème de manière empirique, on aurait pu être plus efficaces : et chercher le facteur magique en comparant deux fichiers de sous-titres (d'une autre vidéo), l'un pour du 29.9 fps, et l'autre pour du 23.976 fps
  • On a suivi un processus (même si ça secouait un peu) : caractériser le problème, essayer de le résoudre manuellement, automatiser
  • Manu a appris comment fonctionne le surtitrage de vidéos !
  • Une certaine déception sur le fonctionnement de VLC pour la synchronisation des sous-titrages…

D'ici la prochaine fois, on voudrait…

  • Trouver un mécanisme de conversion plus général, moins empirique
  • Mieux comprendre le lien entre le facteur de conversion et les nombres de fps
Clone this wiki locally