Aller au contenu principal
SubtitleMatrix

Convertir JSON en MicroDVD

Ou collez le texte d'un sous-titre

Options

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.

Ce que cette conversion change

4 éléments perdus ou à décider

  • Style

    tout le style (gras, italique, couleur, contour, ombre)

  • Positionnement

    le positionnement à l'écran (chaque bloc revient à la position par défaut)

  • Karaoké

    le minutage karaoké (surlignage par syllabe)

  • Fréquence d'images

    ce format stocke les temps en numéros d'image — les minutages dépendent de la fréquence d'images que vous fournissez

Ce rapport de pertes vient de la matrice de capacités de ces deux formats, pas du fichier particulier que vous avez chargé. Un fichier précis peut perdre davantage s'il utilise des fonctionnalités que le format autorise mais que la matrice ne modélise pas.

Cette page convertit un document JSON en MicroDVD. Les `start` et `end` en millisecondes sont traduits en numéros d’image selon la fréquence d’images choisie : à 25 fps, quatre secondes donnent l’image 100. Le fichier produit contient `{début}{fin}` puis le texte.

MicroDVD n’a ni styles, ni positions, ni karaoké : la table `styles`, l’objet `position` et les plages karaoké du JSON n’ont pas de champ. Comme la conversion passe par des images, la précision de la milliseconde est elle aussi remplacée par celle de la fréquence choisie. La liste ci-dessus vient des capacités.

Un fichier ou une saison : la file traite les fichiers dans l’ordre et les rassemble dans un ZIP. Aucun octet ne part vers un serveur.

Exemples

Un fichier JSON typique, converti en MicroDVD

Entrée

{
  "version": 1,
  "title": "Fixture: typical",
  "fps": 25,
  "styles": {
    "Default": {
      "name": "Default",
      "fontFamily": "Arial",
      "fontSize": 20,
      "primaryColor": "#FFFFFF",
      "bold": false,
      "italic": false
    }
  },
  "generator": "subtitlematrix fixtures",
  "cues": [
    {
      "id": "1",
      "start": 0,
      "end": 2000,
      "lines": [
        "Hello world.",
        "Second line."
      ],
      "style": "Default",
      "position": {
        "x": 100,
        "y": 200,
        "align": "center"
      }
    },
    {
      "id": "2",
      "start": 2500,
      "end": 4000,
      "lines": [
        "Plain line.",
        {
          "text": "Styled line.",
          "tags": [
            {
              "kind": "italic",
              "start": 0,
              "end": 6
            }
          ]
        }
      ]
    },
    {
      "id": "3",
      "start": 4500,
      "end": 6000,
      "lines": [
        "Roger: I am here."
      ],
      "speaker": "Roger"
    }
  ]
}

Sortie

{1}{1}25
{0}{50}Hello world.|Second line.
{63}{100}Plain line.|Styled line.
{113}{150}Roger: I am here.

Dans cette sortie, les styles, la position, le karaoké et la précision en millisecondes sont perdus : les temps deviennent des images. Le texte reste identique.

La même conversion sur une entrée abîmée

Entrée

[
    { "start": 0, "end": 1000, "lines": ["First."] },
    { "start": 1000, "end": 2000, "text": "Second." },
    "not an object",
    { "start": 2000, "end": 3000, "lines": ["Third."], "class": "top" }
]

Sortie

{1}{1}25
{0}{25}First.
{25}{50}Second.
{50}{75}Third.

C’est le genre de dégâts des vrais fichiers : fins de ligne mélangées, espaces parasites, champs vides. Comparez avec l’exemple propre ci-dessus pour voir ce que le lecteur pardonne.

Questions fréquentes

Comment les millisecondes du JSON deviennent-elles des images MicroDVD ?

Par la fréquence d’images : image = millisecondes × fps / 1000. À 25 fps, `start: 4000` devient l’image 100. `end` est calculé de la même façon, et la paire s’écrit `{100}{175}`.

Quelle fréquence d’images choisir pour convertir un JSON en MicroDVD ?

Celle de la vidéo à laquelle les sous-titres sont destinés. Un mauvais choix se voit à peine au début, puis dérive de plus en plus : à 24 au lieu de 25 fps, l’écart atteint 4 % de la durée du film.

Que perdent les styles et le karaoké du JSON dans un fichier MicroDVD ?

Tout : chaque bloc JSON est réduit à son texte. La table `styles` et les balises de ligne ne sont pas écrites, l’objet `position` non plus, et les plages karaoké n’ont aucune syntaxe dans MicroDVD.

Comment MicroDVD écrit-il un bloc JSON de deux lignes ?

Sur une seule ligne, les deux moitiés séparées par une barre verticale `|`, qui est le saut de ligne de MicroDVD. Le bloc reste unique.

Puis-je revenir d’un fichier MicroDVD vers le JSON d’origine ?

Oui, et cette direction perd la fréquence d’images : MicroDVD n’enregistre que des numéros d’image. Sans fps fourni à la lecture, les images ne peuvent pas redevenir des millisecondes exactes.

Outils associés