Définissez la grandeur avant l’équation.

Une étiquette de timecode identifie une position ou exprime une durée selon une convention de comptage. Un nombre d’images est entier. Les secondes physiques écoulées dépendent de la cadence réelle. Distinguez ces trois grandeurs, surtout aux cadences fractionnaires.

Cadences et comptes d’étiquettes utilisés dans les outils du site
Cadence affichéeImages/seconde exactes rCompte nominal d’étiquettes NÉtiquettes DF sautées d
23.97624000/100124Non proposé
24, 25, 30, 48, 50, 60Même entier que l’étiquetteMême entierNon proposé
29.9730000/1001302, si DF sélectionné
59.9460000/1001604, si DF sélectionné

La représentation 59.94 de cette référence utilise un champ d’image 00–59 à pleine cadence. Elle ne constitue pas une spécification au niveau des octets de tous les transports à haute cadence. Établissez la représentation avant d’échanger des valeurs. Voir la référence des normes de synchronisation de diffusion.

Convertissez une étiquette valide en indice d’image.

Soient H, M, S et F les champs non négatifs d’heure, minute, seconde et image. La première étiquette à l’origine a l’indice zéro. Pour le non-drop-frame :

m = 60H + M
L = ((3600H + 60M + S) × N) + F
K = L

En DF, soustrayez les étiquettes sautées avant cette position :

K = L − d × (m − floor(m / 10))

Validez d’abord : M et S doivent être compris entre 00–59 ; F entre 0 et N−1. Le DF n’est proposé ici qu’à 29.97 et 59.94. Lorsque M n’est pas divisible par dix et que S vaut zéro, F doit être au moins égal à d. Ainsi 00:01:00;00 est invalide à 29.97 DF, tandis que 00:01:00;02 correspond à l’indice d’image 1,800.

À 01:00:00;00, N=30, d=2 et m=60. L’indice est 108000 − 2 × (60 − 6) = 107892. En divisant par 30000/1001, on obtient 3,599.9964 secondes physiques. Le DF suit de près une horloge ; il ne redéfinit pas exactement la seconde.

Retrouvez une étiquette sans inventer les valeurs sautées.

En NDF, décomposez K en heures, minutes, secondes et reste de la division par N. En DF, répartissez l’indice d’image non négatif en cycles de dix minutes, puis retrouvez la minute correspondante. Ces grandeurs sont entières :

fullMinute  = 60 × N
shortMinute = fullMinute − d
tenMinutes  = 10 × fullMinute − 9 × d
q = floor(K / tenMinutes)
u = K mod tenMinutes

if u < fullMinute:
    labelCount = q × 10 × fullMinute + u
else:
    v = u − fullMinute
    labelCount = q × 10 × fullMinute
               + fullMinute × (1 + floor(v / shortMinute))
               + d + (v mod shortMinute)

Split labelCount using nominal count N.

À 29.97 DF, K=1,800 donne la première étiquette de la deuxième minute, 00:01:00;02. K=17,982 donne 00:10:00;00. À 59.94 DF, K=3,600 donne 00:01:00;04. Aucune image du média n’est supprimée.

Le calculateur du site traite une durée négative comme l’opposé de son nombre entier d’images, en formatant sa valeur absolue puis en ajoutant un signe moins. Il ne boucle pas les durées à 24 heures. C’est une convention explicite du calculateur, et non une règle universelle de format de fichier pour le timecode négatif.

Précisez les points de début et de fin et la règle de conversion.

durée exclusive en images = Kout − Kin
durée inclusive en images = Kout − Kin + 1
secondes écoulées = K × dénominateur de cadence / numérateur de cadence

À 24 fps, 01:00:10:12 à 01:00:14:06 donne 90 images en convention exclusive ou 91 en convention inclusive. Les positions ne sont pas elles-mêmes des durées : l’origine à une heure s’annule.

Un point de sortie confirmé le lendemain ajoute un cycle d’étiquettes de timecode. En NDF, ce cycle comporte 86400 × N images. En DF, il comporte 86400 × N − d × (1440 − 144) images : 2,589,408 à 29.97 DF. Ce cycle dure 86,399.9136 secondes physiques. Ne déduisez jamais une date ou la continuité d’une source de deux seules étiquettes. Guide des points de début et de fin et du bouclage.

Pour une conformation conservant les images, gardez K constant :

secondes source = K / cadence source
nouvelles secondes = K / cadence de lecture
rapport de vitesse = cadence de lecture / cadence source
variation de durée = cadence source / cadence de lecture − 1

1,440 images à 24 fps durent 60 secondes. À 25 fps, elles durent 57.6 secondes : la vitesse est de 104.1667% et la durée diminue de 4%. Une conversion de normes conservant la durée choisit une autre règle de nombre d’images/cadence ; ces équations ne synthétisent pas de médias et ne modifient pas leur temporalité. Essayer le calculateur de conformation.

Arrondissez à la limite réellement nécessaire.

  • Images entières : effectuez l’arithmétique des étiquettes en images entières ; rejetez les étiquettes impossibles plutôt que de les corriger silencieusement.
  • Affichage du temps écoulé : conservez les cadences rationnelles exactes jusqu’à l’affichage décimal final. Le site arrondit les secondes physiques à trois décimales ; cela ne change pas le nombre d’images.
  • Secondes vers images : le résultat mathématique peut être fractionnaire. Précisez l’arrondi au plus proche, à l’entier inférieur ou supérieur, ainsi que le traitement des égalités. Le convertisseur de base du site accepte des images entières et ne choisit pas silencieusement une règle d’arrondi pour les secondes.
  • Capacité de pellicule : l’estimateur de bobine utilise une soustraction décimale exacte des longueurs et une conversion exacte des mètres, puis arrondit une seule fois la capacité nominale finale à l’entier inférieur. Le trois-perforations utilise 64/3 images par pied, et non l’arrondi 21.33.
  • Identifiants des sources : l’image zéro, l’image un, la dernière image inclusive et la fin exclusive sont des conventions distinctes. Conservez-les explicitement lors de la transmission.

Pour les comptes son-image, utilisez le calculateur d’échantillons audio et d’images. Ses fractions décrivent des relations temporelles ; elles ne rééchantillonnent pas un fichier.

Téléchargez les exemples de validation.

Le fichier JSON original consigne les entrées, les résultats attendus et les erreurs intentionnelles pour les conversions NDF/DF, les durées signées, les conventions de points de début et de fin, le bouclage et la temporalité de conformation. Les secondes écoulées attendues incluent une tolérance de comparaison numérique ; les nombres d’images et les étiquettes attendus sont exacts.

Les exemples couvrent les conventions déclarées de ce site. Les réussir constitue un contrôle de non-régression utile ; cela ne certifie pas la conformité du transport SMPTE et ne remplace pas le test du comportement d’une application média donnée.

Références techniques

Les équations, le pseudocode et les exemples numériques de cette page sont des explications originales dans le cadre des hypothèses indiquées.