-
Notifications
You must be signed in to change notification settings - Fork 2
3 janvier 2017
Emmanuel Gaillot edited this page Jan 3, 2017
·
1 revision
- 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
- convertir des timecodes d'un fichier de sous-titre avec un fps différent de celui de la vidéo
-
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
- étant donné une ligne au format
-
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
- on finit par laisser tomber Rspec et on passe par
- 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
- Des difficultés à mettre l'environnement d'équerre pour coder en TDD et en
Ruby
- 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…
- 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