Convertir le non-drop en drop-frame
Ou collez le texte d'un sous-titre
Options
Le non-drop à 30 fps et le drop-frame à 29,97 écrivent la même horloge différemment, et ce cadre choisit dans quel sens le fichier est lu et réécrit. Un bloc à une heure se lit 01:00:00,000 dans l'un et 01:00:03,600 dans l'autre — les deux sont à 3,6 secondes d'écart par heure, ce n'est pas une erreur d'arrondi. Le titre de la page nomme un sens, et ce cadre ne propose que celui-là : le fichier obtenu est bien celui dont la page parle. Rien ne change dans le texte : aucun bloc n'est remis à l'heure de la vidéo, aucune fréquence d'images n'est convertie, et un bloc dans la première minute d'une heure ressort exactement comme il est entré, car aucune étiquette d'image n'y est abandonnée.
La fréquence d'images dans laquelle les temps sont comptés. Sur les pages de format, c'est ce dont MicroDVD a besoin, car il stocke les temps sous forme de numéros d'image. Sur les pages de fréquence d'images, c'est la cadence à laquelle le fichier a été minuté — la version pour laquelle les sous-titres ont été faits — et le second cadre de la page prend la cadence de la vidéo avec laquelle vous allez les utiliser. 23,976, 24, 25, 29,97, 30, 50, 59,94 et 60 sont les valeurs courantes. Se tromper décale toute la chronologie et, sur les pages de fréquence d'images, ce décalage est un rapport, pas un montant fixe.
Cette page relabellise chaque code temporel d'un fichier de sous-titres, de 30 images/s non-drop vers 29,97 images/s drop-frame. Déposez le fichier, lancez l'opération, et le début et la fin de chaque bloc reviennent écrits dans l'autre convention. Les mots, les numéros de bloc, l'ordre des blocs et les retours à la ligne appartiennent au fichier et ne sont pas touchés.
Les deux conventions écrivent la même horloge de deux façons, et un fichier doit adopter celle du reste de la chaîne. Le drop-frame compte 30 étiquettes par seconde mais en saute deux à chaque minute, sauf toutes les dix minutes : c'est ainsi qu'il reste calé sur l'horloge murale pendant que le non-drop prend lentement du retard. Au bout d'une heure, les deux sont séparés de 3,6 secondes : 01:00:00,000 en non-drop devient 01:00:03,600 en drop-frame. Cet écart n'est pas une erreur d'arrondi et il n'est pas arrondi : il grandit avec le programme et atteint 36 secondes au bout de dix heures.
Rien ne bouge dans la première minute d'une heure, car aucune étiquette n'y est sautée et les deux conventions écrivent cette portion de façon identique. C'est vrai des horloges déjà posées sur un tic de 30 images/s — 00:00:02,000 en est une — et une horloge située entre deux tics est ramenée au plus proche, dans la limite de 17 millisecondes. Lire une horloge comme un code temporel l'aligne toujours sur la grille des images, partout dans le fichier ; dans la première minute, cet alignement est la seule chose qui puisse la déplacer. Les temps d'un fichier de sous-titres viennent généralement d'un outil précis à l'image et sont déjà sur la grille, ce qui explique que cette portion ressorte souvent octet pour octet.
Aucun format de sous-titres lu ici n'a de champ qui enregistre la convention d'une horloge : SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON et CSV écrivent tous un temps, sans dire comment il a été compté. La page change donc les nombres ; la convention qu'ils représentent reste une propriété de votre chaîne de traitement, exactement comme avant l'arrivée du fichier. Ce qui n'est pas dans le fichier ne peut pas y être écrit, et prétendre le contraire serait pire que de le dire.
Il ne s'agit pas d'une conversion de fréquence d'images. Un fichier calé pour une vidéo à 25 images/s n'est pas recadencé ici, et rien n'est étiré ni comprimé par rapport à une vidéo : les espacements sont conservés et seule l'écriture change. Si vous cherchez l'autre opération — un fichier dont l'espacement suit une autre cadence — elle a sa propre page. Rien n'est envoyé non plus : le fichier est lu et écrit dans l'onglet du navigateur, donc un matériel qui ne peut pas quitter la machine y reste.
Exemples
Un fichier à cinq minutes
Entrée
1
00:05:00,000 --> 00:05:02,000
The room is dark.
2
00:10:00,000 --> 00:10:03,000
A cold night.
Sortie
1
00:05:00,333 --> 00:05:02,333
The room is dark.
2
00:10:00,600 --> 00:10:03,600
A cold night.
Les deux blocs ne se déplacent pas du même montant, et c'est toute l'opération : à cinq minutes, le drop-frame a sauté dix étiquettes, l'horloge lit donc 333 ms plus tard ; à dix minutes, il en a sauté dix-huit, soit 600 ms plus tard. Le texte et les numéros de bloc appartiennent au fichier : seules les deux valeurs d'horloge de chaque bloc sont réécrites.
Le même fichier au bout d'une heure
Entrée
1
01:00:00,000 --> 01:00:03,000
An hour into the programme.
Sortie
1
01:00:03,600 --> 01:00:06,600
An hour into the programme.
À une heure, les deux conventions sont séparées de 3,6 secondes, soit 108 étiquettes sautées. C'est le nombre à comparer si vous vérifiez la page : lisez la première ligne de la sortie, elle doit être exactement 3600 ms plus tard que la première ligne de l'entrée. Les deux bords du bloc se déplacent, donc le bloc conserve sa durée.
Un bloc dans la première minute
Entrée
1
00:00:02,000 --> 00:00:04,000
Nothing to re-label yet.
2
00:05:00,000 --> 00:05:02,000
This one does move.
Sortie
1
00:00:02,000 --> 00:00:04,000
Nothing to re-label yet.
2
00:05:00,333 --> 00:05:02,333
This one does move.
Le premier bloc revient octet pour octet et le second se déplace, dans la même exécution. Pendant la première minute d'une heure, aucune étiquette n'est sautée : les deux conventions écrivent ces soixante secondes de la même manière, et 00:00:02,000 est déjà sur un tic de 30 images/s, donc rien ne change pour lui. Une horloge située entre deux tics serait plutôt ramenée au plus proche, dans la limite de 17 ms, ce qui est le même alignement que la page applique partout. Un bloc inchangé à côté d'un bloc déplacé est ici le résultat attendu, pas une exécution à moitié faite.
Questions fréquentes
Quelle différence y a-t-il entre un code temporel drop-frame et non-drop ?
Les deux comptent 30 étiquettes par seconde, mais 29,97 images/s ne fournit pas 30 images par seconde : il en fournit environ 29,97, si bien qu'une horloge qui compte 30 étiquettes par seconde perd lentement du terrain sur le temps réel. Le drop-frame corrige cela en sautant deux étiquettes au début de chaque minute, sauf toutes les dix minutes : les étiquettes sont écartées alors que les images ne le sont pas. Le non-drop garde toutes les étiquettes et dérive. Écrits, les deux nombres se ressemblent ; lus sur la même image, ils sont séparés de 3,6 secondes après une heure et le restent de plus en plus loin à mesure que le programme dure.
Pourquoi un bloc situé une heure plus loin ressort-il 3,6 secondes plus tard ?
Parce que 3,6 secondes correspondent à une heure d'étiquettes sautées : 2 étiquettes par minute pendant 54 minutes sur 60, à 33,37 ms l'étiquette, soit 108 étiquettes ou 3600 ms par heure. La page n'ajoute pas un retard : elle écrit les mêmes images dans l'autre convention, et cette convention lit plus tard à cet endroit du programme. Un bloc à 01:00:00,000 entre et ressort à 01:00:03,600 ; ses deux bords se déplacent, donc il conserve sa durée à la milliseconde.
Pourquoi la première minute de mon fichier est-elle revenue inchangée ?
Parce qu'aucune étiquette n'est sautée pendant la première minute d'une heure : le drop-frame et le non-drop écrivent cette portion de façon identique — 00:00:02,000 désigne 60 images dans les deux conventions, et 60 images s'écrivent pareil. La dérive commence à la première frontière de minute, puis grandit. Une autre chose peut déplacer un temps dans cette portion : lire une horloge comme un code temporel l'aligne sur le tic de 30 images/s le plus proche, donc une valeur située entre deux tics, comme 00:00:02,010, revient en 00:00:02,000. Les temps copiés depuis un outil précis à l'image sont déjà sur la grille et ne bougent pas.
Dans quel sens dois-je convertir : non-drop vers drop-frame ou l'inverse ?
Cela dépend de la source des codes temporels de votre fichier. Si vous avez relevé les temps dans un lecteur ou un montage réglé en non-drop et que la chaîne de livraison travaille en drop-frame, c'est cette page. Si votre fichier a été horodaté sur un affichage drop-frame et que l'outil en aval attend du non-drop, prenez l'autre page, qui déplace les horloges de l'autre côté avec les mêmes 3,6 secondes par heure. Un moyen rapide de trancher : lancez le fichier ici et comparez un bloc — si l'horloge de sortie lit plus tard que celle d'entrée, c'est ce sens qu'il fallait. Un aller-retour entre les deux pages ne laisse aucune erreur mesurable, 0 ms, sur tout fichier dont les codes sont écrivables dans les deux conventions.
Cette page change-t-elle la fréquence d'images des sous-titres ?
Non. Rien n'est mis à l'échelle ni étiré : un bloc de deux secondes reste long de deux secondes, et l'espacement entre les blocs ne change pas, parce que chaque bloc se déplace d'un montant qui dépend de sa position et non d'un rapport. Un fichier calé pour une vidéo à 25 images/s n'est pas converti en 29,97 ici non plus : le champ de fréquence existe parce que MicroDVD stocke ses temps en numéros d'image et ne peut pas être lu sans elle. Convertir l'espacement d'un fichier d'une cadence vers une autre est une autre opération, avec sa propre page.
Le fichier indique-t-il quelque part que ses codes sont désormais drop-frame ?
Non, et aucun format lu ici ne pourrait l'indiquer : SRT, WebVTT, ASS, SSA, SBV, SAMI, MicroDVD, TTML, JSON et CSV stockent un temps sans rien dire de sa manière de compter. C'était déjà vrai du fichier que vous avez déposé. La page modifie donc les nombres, et la convention qu'ils représentent reste ce que votre chaîne déclare — le même arrangement qu'avant, avec des nombres qui correspondent désormais. Si un outil en aval possède son propre réglage drop-frame, c'est ce réglage qui lira ces valeurs.