Cadences, timecode, et le drop-frame qui ne supprime rien
Publié le 26/08/2025 · 20 min de lecture · Outils pour développeurs
Daniel Okonkwo — Développeur front-end et rédacteur Tech chez OneKitly
Performance web · Formats de fichiers
Vérifié à partir de 6 sources
Compter des images est une multiplication jusqu'à ce que la cadence cesse d'être un entier. À 24, 25 ou 30 images par seconde, une minute contient 1440, 1500 ou 1800 images, et il n'y a rien de plus à dire. À 29,97 — soit exactement 30 × 1000/1001, ou 30000/1001 — une heure contient 107 892,108 images, et un compteur de timecode qui étiquette 30 images à la seconde ment d'une quantité croissante. Calcule-le de deux façons : les deux donnent la même réponse. Une heure d'étiquettes vaut 108 000 images, qui à 1001/30000 seconde chacune prennent 3603,600000 secondes de temps réel. De façon équivalente, une heure d'horloge murale n'avance le compteur que de 107 892 images : il affiche donc 00:59:56:12. Dans les deux cas l'erreur vaut 108 images, soit exactement 3,6 secondes par heure à 30 étiquettes la seconde. Le timecode drop-frame corrige cela en sautant des numéros d'image, jamais des images : deux étiquettes sont omises au début de chaque minute sauf toutes les dixièmes minutes, soit 54 × 2 = 108 étiquettes sautées par heure — précisément le déficit. Aucune image n'est jetée et aucun rush n'est perdu. La correction est très bonne mais pas exacte : parcourir chaque image d'une heure montre que le drop-frame retarde encore de 3,6 millisecondes.
Images = durée × cadence est trivial jusqu'à ce que la cadence vaille 29,97. Le timecode non-drop dérive alors d'exactement 3,6 secondes par heure. Le drop-frame corrige en sautant 108 numéros d'image — les mêmes 108 — mais la correction n'est pas parfaite : compter chaque image révèle un résidu de 3,6 millisecondes par heure.
Images = durée × cadence, jusqu'à ce que la cadence vaille 29,97
Pour une cadence entière, l'arithmétique est close et exacte. À 24 images par seconde, une minute vaut 1440 images et une heure 86 400. À 25, une minute vaut 1500 et une heure 90 000. À 30, une minute vaut 1800 et une heure 108 000. Toute durée correspond à un nombre entier d'images, tout compte d'images correspond à une durée, et une étiquette de timecode comptant heures, minutes, secondes et images n'est qu'un changement de base du numéro d'image.
À 29,97, la clôture se brise. Une seconde contient 29,97002997 images, une minute 1798,202 et une heure 107 892,108. Il n'y a pas de nombre entier d'images dans une heure : aucun schéma d'étiquetage comptant trente images à la seconde ne peut donc rester aligné sur une horloge. Chaque outil de la chaîne doit alors décider quoi faire de l'écart, et les diverses réponses à cette question constituent tout le sujet du timecode.
Une convention de notation mérite d'être apprise tout de suite, car elle porte toute la distinction. Le timecode non-drop s'écrit avec des deux-points partout : 01:00:00:00. Le timecode drop-frame remplace le dernier séparateur par un point-virgule : 01:00:00;00. Si tu vois un point-virgule, tu regardes un compte drop-frame, et si un outil annonce une durée et tes notes une autre, le séparateur est la première chose à vérifier.
D'où vient 29,97
Le nombre est le résidu d'un problème de compatibilité résolu en 1953. La télévision monochrome du système 525 lignes tournait à exactement 30 images par seconde, avec une fréquence ligne de 15 750 Hz et une porteuse son 4,5 MHz au-dessus de la porteuse image. Lors de l'ajout de la couleur, l'information de chrominance devait être portée par une sous-porteuse à l'intérieur du canal existant, et devait s'entrelacer avec le spectre de luminance plutôt que de battre visiblement contre lui. Cette contrainte a fixé la sous-porteuse à un multiple impair de la moitié de la fréquence ligne — précisément 455/2 fois celle-ci.
Restait le problème de la porteuse son. À la fréquence ligne d'origine, le rapport entre la porteuse son de 4,5 MHz et la fréquence ligne valait 2855/7, soit 407,857 — pas un entier, donc la nouvelle sous-porteuse couleur aurait battu de façon audible contre le son. Multiplier ce rapport par 1001/1000 le porte à 408,265, assez près pour que l'organisme de normalisation redéfinisse plutôt la fréquence ligne de sorte que la porteuse son tombe exactement sur le 286e harmonique. Toute la manœuvre est là : maintenir la porteuse son à 4,5 MHz, la déclarer 286e harmonique, et laisser la fréquence ligne descendre à 4 500 000 ÷ 286 = 15 734,2657 Hz.
De là, la cadence découle mécaniquement. Divise la fréquence ligne par les 525 lignes d'une image : 15 734,2657 ÷ 525 = 29,970029970 images par seconde. L'identité avec 30000/1001 est exacte et non approchée, et la factorisation montre pourquoi — 286 × 525 = 150 150, soit 150 × 1001, donc 4 500 000 ÷ 150 150 se réduit à 30 000 ÷ 1 001. La sous-porteuse couleur tombe à 455/2 × 15 734,2657 = 3,579545 MHz, chiffre gravé sur tous les quartz NTSC jamais fabriqués. Le même facteur 1000/1001 se propage à 23,976 = 24000/1001 et 59,94 = 60000/1001, d'où le voyage groupé de ces nombres.
Le timecode non-drop dérive de 3,6 secondes par heure
Le timecode non-drop fait la chose naïve : il étiquette chaque image dans l'ordre et fait tourner le champ des secondes toutes les trente images, sans se soucier du temps que prennent réellement trente images. Comme une image dure 1001/30000 de seconde et non 1/30, l'étiquette retarde sur l'horloge, et l'ampleur de cette erreur se calcule facilement dans les deux sens.
Pars des étiquettes. Une heure de timecode non-drop vaut 108 000 étiquettes d'image, car 60 × 60 × 30 = 108 000. Ces 108 000 images durent chacune 1001/30000 de seconde : ensemble elles occupent donc 108 000 × 1001 ÷ 30 000 = 3603,600000 secondes. Une bande affichant exactement une heure de timecode non-drop tourne depuis une heure et 3,6 secondes.
Pars maintenant de l'horloge. En une heure de temps réel, la caméra a produit 3600 × 30000 ÷ 1001 = 107 892,108 images : le compteur a donc avancé de 107 892 images entières. Divise par 30 étiquettes la seconde et cela fait 3596,400000 secondes d'étiquette — l'afficheur indique 00:59:56:12 quand l'horloge murale dit une heure. Les deux démonstrations concordent : l'écart vaut 108 000 − 107 892 = 108 images, et 108 ÷ 30 = 3,6 secondes. Retiens ce 108. C'est le nombre autour duquel tout le dispositif drop-frame est bâti.
La dérive s'accumule linéairement et devient vite alarmante. À la marque des trente minutes, le non-drop est déjà décalé de 1,8 seconde. À dix heures, de 36 secondes. Pour un diffuseur assemblant un programme à une durée de créneau fixe, ce n'est pas un détail d'arrondi ; c'est la différence entre respecter le raccord réseau et se faire couper au milieu d'une phrase.
Le drop-frame supprime des étiquettes, pas des images — démonstration par comptage
Le nom est la pire terminologie de toute la postproduction. Le timecode drop-frame ne jette absolument aucune image. Chaque image enregistrée par la caméra est présente dans le fichier, est lue, et reste disponible au montage. Ce qui est supprimé, ce sont deux entrées du schéma de numérotation au début de la plupart des minutes — des étiquettes tout simplement jamais émises, comme un immeuble sans treizième étage n'a pas perdu de niveau.
La règle, telle qu'écrite dans la norme SMPTE de timecode, est brève. Au début de chaque minute, saute les numéros d'image 00 et 01, de sorte que la minute commence à l'image 02 — sauf lorsque le numéro de minute est un multiple de dix, auquel cas aucun numéro n'est sauté et la minute commence à 00 comme d'habitude. Ainsi 00:00:59;29 est suivi de 00:01:00;02, et les étiquettes 00:01:00;00 et 00:01:00;01 n'existent jamais. Mais 00:09:59;29 est suivi de 00:10:00;00, car la minute 10 est exemptée.
Maintenant compte, plutôt que d'affirmer. Fais avancer un compteur image par image depuis 00:00:00;00, en appliquant cette règle à chaque frontière de minute, et arrête-toi quand l'afficheur indique de nouveau 01:00:00;00. Le parcours émet 107 892 images et saute 108 numéros d'image. Ce compte de sauts n'est pas une coïncidence et n'a pas besoin d'être cherché : une heure compte 60 minutes, dont six sont exemptées car 0, 10, 20, 30, 40 et 50 sont multiples de dix, laissant 54 minutes qui suppriment deux numéros chacune, et 54 × 2 = 108. La conversion en forme close utilisée dans les logiciels de montage — images = 108000h + 1800m + 30s + f − 2 × (minutesTotales − partieEntière(minutesTotales ÷ 10)) — renvoie 107 892 pour la même étiquette, ce qui correspond exactement au parcours.
Rapproche cela de la section précédente et le dessein devient évident. Le non-drop perd exactement 108 images par heure face à l'horloge. Le drop-frame saute exactement 108 étiquettes par heure. Ces deux 108 sont le même 108, choisi pour cette raison, et voilà pourquoi une heure drop-frame tombe sur l'horloge murale tandis qu'une heure non-drop tombe 3,6 secondes trop tard. Le dispositif est une correction de type calendaire, structurellement identique à la règle des années bissextiles : un petit ajustement périodique assorti d'une exception périodique, dimensionné pour annuler une erreur cumulative connue.
La correction est très bonne, et pas exacte
On dit souvent que le drop-frame fait coïncider exactement le timecode et l'horloge murale. Le comptage montre le contraire, et l'écart mérite d'être énoncé car c'est le genre de chose qui refait surface une fois par an dans une installation qui tourne longtemps. Une heure de temps réel contient 107 892,108 images, pas 107 892. Le drop-frame fournit 107 892 étiquettes par heure : il lui manque donc 0,1078921 image — une fraction qu'il ne peut pas sauter, les étiquettes venant en nombres entiers.
Convertis cette fraction en temps : 0,003600 seconde. Une heure drop-frame occupe donc 3599,996400 secondes de temps réel plutôt que 3600. Le drop-frame avance de 3,6 millisecondes par heure — dans le sens inverse de l'erreur qu'il corrige, et mille fois plus petit. Sur une journée, cela fait 0,0864 seconde ; sur un mois, environ 2,6 secondes ; sur une année, 31,5 secondes. Pour le montage, pour les créneaux de diffusion, pour tout ce qui se mesure en images, c'est sans importance. Pour une régie faisant tourner en continu un générateur de timecode comme référence maison face à une horloge atomique, c'est exactement le genre de divergence lente qu'on finit par remarquer et par mal diagnostiquer.
C'est la comparaison qui compte. Le drop-frame réduit l'erreur d'un facteur mille : de 3,6 secondes par heure à 3,6 millisecondes par heure. Suivre l'erreur cumulée à intervalles en éclaire la forme — à dix minutes, le drop-frame est décalé de 0,6 milliseconde ; à trente minutes de 1,8 ; à une heure de 3,6 ; à dix heures de 36 millisecondes. Le non-drop, sur les mêmes intervalles, est décalé de 1,8 seconde à trente minutes, 3,6 secondes à une heure et 36 secondes à dix heures. Le dispositif n'a jamais prétendu être parfait ; il a été conçu pour être assez bon pour qu'aucun programme ne manque son créneau.
23,976, le pulldown et l'accélération PAL
Le film tourne à 24 images par seconde et le système vidéo 525 lignes à 30 : transférer du film en vidéo réclame donc cinq images vidéo pour quatre images film — 24 × 5/4 = 30 exactement. Le mécanisme est le pulldown 2:3, parfois écrit 3:2. Prends quatre images film A, B, C, D et répartis-les sur dix trames vidéo : A reçoit deux trames, B trois, C deux, D trois, soit 2 + 3 + 2 + 3 = 10 trames, c'est-à-dire cinq images vidéo entrelacées. Deux de ces cinq images sont des composites d'images film différentes, d'où l'aspect légèrement saccadé du matériel converti et la pratique standard de retirer le pulldown avant le montage.
Cela fonctionne quand le système vidéo tourne à 30. Il tourne à 29,97 : le film doit donc d'abord être ralenti du même facteur 1000/1001, de 24 à 24 000 ÷ 1 001 = 23,976023976 images par seconde. Voilà toute l'origine du 23,976 : c'est du 24 ralenti juste assez pour tenir dans un monde à 29,97. Le ralentissement est faible mais réel — une bobine de cent minutes passée à 23,976 dure 100,1 minutes, six secondes de plus qu'à 24 — et l'audio enregistré à 24 doit être ralenti du même facteur, sinon il désynchronisera de ces six secondes sur la bobine.
Le monde 625 lignes a pris une route plus brutale. Avec la vidéo à 25 et le film à 24, le transfert le plus simple consiste à faire tourner le film une image par seconde plus vite et à utiliser une image vidéo par image film. Le changement de vitesse vaut 25/24 = 1,041667, soit une hausse de 4,1667 pour cent — arrondie d'ordinaire aux fameux quatre pour cent, même si le sixième supplémentaire compte sur un long métrage. Un film de 120 minutes dure 115,2 minutes, 288 secondes de moins. L'audio monte en hauteur du même rapport : 12 × log2(25/24) = 0,7067 demi-ton, soit 70,67 cents, assez proche d'un quart de ton pour être audible par quiconque connaît la partition. Les transferts modernes corrigent d'ordinaire la hauteur en numérique et laissent la durée raccourcie.
Monter le son sur l'image
Le son est échantillonné et l'image est cadencée : les deux ne s'alignent proprement que si le nombre d'échantillons dans une image est entier. À 48 kHz, l'arithmétique est aimable pour la plupart des cadences : 24 images par seconde donnent exactement 2000 échantillons par image, 25 en donnent 1920, 30 en donnent 1600. L'agréable surprise est 23,976, qui donne 48 000 × 1001 ÷ 24 000 = 2002 échantillons par image, également entier — l'une des raisons pour lesquelles 23,976 et 48 kHz font un couple si confortable.
29,97 est le cas gênant. À 48 kHz, une image contient 48 000 × 1001 ÷ 30 000 = 1601,6 échantillons, ce qui n'est pas entier : aucune frontière d'image ne tombe donc sur une frontière d'échantillon. Le motif se referme après cinq images : 5 × 1601,6 = 8008 échantillons exactement. Ce cycle de cinq images est l'unité pratique pour tout ce qui doit être exact à l'échantillon près face à l'image à 29,97, et 59,94 en hérite — 800,8 échantillons par image, entier après les mêmes cinq images à 4004 échantillons. À 44,1 kHz, la situation est bien pire : 1471,47 échantillons par image, et le motif ne se referme qu'au bout de 100 images. Voilà une raison concrète pour laquelle la postproduction tourne à 48 kHz et non à 44,1.
La règle pratique qui en découle est brève. Fixe la cadence du projet avant tout import, fais tourner l'audio à 48 kHz, et fais de chaque point de coupe une frontière d'image plutôt qu'un décalage d'échantillon, pour n'avoir jamais à raisonner sur le cycle de cinq images à 29,97. Quand du matériel arrive à une autre cadence, conforme-le délibérément par un pull-up ou pull-down explicite de 1000/1001 plutôt que de laisser une timeline le réinterpréter en silence — un écart de ce facteur dérive d'une image environ toutes les 33 secondes, ce qui se lit comme une erreur de synchro qui empire lentement et compte parmi les pannes les plus fréquemment mal diagnostiquées en postproduction.
| Cadence | Valeur exacte | Images en 1 minute | Images en 1 heure | Échantillons par image à 48 kHz |
|---|---|---|---|---|
| 23,976 | 24000/1001 = 23,976023976 | 1438,561 | 86 313,686 | 2002 (entier) |
| 24 | 24 exactement | 1440 | 86 400 | 2000 (entier) |
| 25 | 25 exactement | 1500 | 90 000 | 1920 (entier) |
| 29,97 | 30000/1001 = 29,970029970 | 1798,202 | 107 892,108 | 1601,6 — entier après 5 images (8008) |
| 30 | 30 exactement | 1800 | 108 000 | 1600 (entier) |
| 59,94 | 60000/1001 = 59,940059940 | 3596,404 | 215 784,216 | 800,8 — entier après 5 images (4004) |
Exemple calculé avec notre outil
Calculateur de nombre d'images (frames)
Données
- Durée (secondes)
- 60
- Fréquence (ips)
- 30
Résultat
- Nombre d'images
- 1 800
Ces chiffres sont produits par le calculateur ci-dessous, pas saisis à la main — ils sont recalculés à chaque évolution de l'outil.
Refaire ce calcul avec tes chiffres →Questions fréquentes
- Le timecode drop-frame perd-il de l'image ?
- Non. Pas une seule image. Le drop-frame ne change que les étiquettes attachées aux images, jamais les images elles-mêmes, et c'est le malentendu le plus tenace de toute la postproduction. Un programme d'une heure en drop-frame contient 107 892 images, et un programme d'une heure en non-drop en contient 108 000 — mais ce sont des durées différentes, pas les mêmes rushes amputés. L'heure drop-frame dure véritablement une heure d'horloge ; l'heure non-drop dure une heure et 3,6 secondes. Les deux contiennent chaque image tournée. L'analogie utile est l'immeuble sans treizième étage : la numérotation saute une valeur, l'immeuble a le même nombre de niveaux, et personne n'a été expulsé. Si tu convertis un projet du non-drop au drop-frame dans un logiciel de montage, l'image est intacte — seuls changent les nombres affichés sur la timeline, et toute note écrite sous forme de valeur de timecode pointera désormais un endroit légèrement différent. C'est là le vrai danger, et c'est pourquoi les comptes d'images plutôt que les chaînes de timecode sont la monnaie sûre pour échanger des points de montage entre systèmes.
- Faut-il utiliser le drop-frame ou le non-drop ?
- Utilise le drop-frame chaque fois que la durée doit coller à une horloge, et le non-drop sinon. La diffusion est le cas le plus net pour le drop-frame : un programme monté sur un créneau de 60 minutes en timecode non-drop durera en réalité 3603,6 secondes et débordera le raccord de 3,6 secondes, assez pour se faire couper. La publicité, de même, un spot se vendant à la durée. Le drop-frame t'amène à 3,6 millisecondes près par heure, ce dont aucun système de programmation ne se soucie. Le non-drop est préférable partout où l'étiquette est un index et non une durée : livraisons d'effets visuels, masters d'archive, rushes, tout ce où un plan est identifié par une valeur de timecode et où la cohérence de la numérotation prime sur l'accord avec une horloge. Le non-drop a l'avantage que toute opération arithmétique dessus est simple et qu'aucune étiquette ne manque jamais, ce qui supprime toute une classe d'erreurs de décalage d'une unité quand des scripts analysent du timecode. Deux notes pratiques. Le drop-frame n'existe qu'à 29,97 et 59,94 ; il n'a aucun sens à 24, 25 ou 23,976, et un outil qui le propose là est confus. Et quel que soit ton choix, fixe-le une fois à la création du projet et ne le change jamais en cours de route, car toutes les notes prises par chacun deviennent fausses.
- Pourquoi mon logiciel de montage refuse-t-il 00:01:00;00 comme timecode invalide ?
- Parce qu'en drop-frame cette étiquette n'existe véritablement pas. La règle saute les numéros d'image 00 et 01 au début de chaque minute dont le numéro n'est pas multiple de dix : la minute un commence donc à 00:01:00;02. Les étiquettes 00:01:00;00 et 00:01:00;01 ne sont jamais attribuées à aucune image, et un logiciel qui les accepterait devrait inventer une image à qui les rattacher. Il en va de même aux minutes 2 à 9, 11 à 19, et ainsi de suite — 54 minutes par heure, deux étiquettes chacune, 108 étiquettes par heure qui ne font tout simplement pas partie du système de comptage. Les minutes 0, 10, 20, 30, 40 et 50 sont exemptées : 00:10:00;00 est donc parfaitement valide, tout comme 00:00:00;00. Si un script ou un tableur génère des valeurs de timecode par arithmétique et les envoie à un logiciel de montage, c'est l'échec qu'il rencontrera, et le remède est de convertir en passant par les numéros d'image plutôt que de manipuler la chaîne : calcule l'indice d'image, applique la conversion en forme close, et formate le résultat. Générer des étiquettes en incrémentant des champs de texte produira des valeurs qu'aucune image drop-frame ne porte.
- Combien d'images fait un spot de 30 secondes à 29,97 ?
- Cela dépend si les trente secondes sont des secondes d'horloge ou des secondes de timecode, et confondre les deux fait rejeter des spots. Trente secondes de temps réel à 29,97 valent 30 × 30000 ÷ 1001 = 899,101 images : la plus longue coupe en images entières tenant dans trente secondes fait donc 899 images, d'une durée de 29,9966 secondes. Trente secondes d'étiquettes de timecode — une durée écrite 00:00:30;00 — valent 900 images, car la minute zéro ne supprime rien, et 900 images durent en réalité 900 × 1001 ÷ 30 000 = 30,03 secondes. Soit 30 millisecondes de trop, ce que bien des cahiers des charges de diffusion refusent. La bonne habitude est de livrer sur un compte d'images convenu par écrit plutôt que sur une durée en secondes, et 899 images est la réponse conventionnelle pour un spot de trente secondes à 29,97. La même prudence vaut aux autres longueurs : un spot de 60 secondes fait 1798 images et non 1800, un spot de 15 secondes 449 et non 450. Si un cahier des charges indique des secondes, demande s'il s'agit de temps d'horloge ou de durée de timecode avant le rendu, car les deux diffèrent d'exactement une image toutes les trente secondes et aucun ré-export ne les réconciliera.
- Pourquoi mon son se désynchronise-t-il sur un long plan ?
- Presque toujours un décalage 1000/1001 quelque part dans la chaîne. Si l'image est lue à 23,976 alors que le son a été enregistré en supposant 24, ou l'image à 29,97 alors qu'une timeline croit à 30, les deux tournent à des rapports différant de ce facteur et se séparent à une vitesse prévisible : une image environ toutes les 33 secondes, six secondes sur une bobine de cent minutes. La signature est reconnaissable — la synchro est parfaite en tête, visiblement fausse en queue, et l'erreur croît linéairement, ce qui la distingue d'un décalage fixe causé par un point de départ mal étiqueté. Le remède est de conformer le son explicitement par un pull-up ou pull-down de 1000/1001 plutôt que de décaler les clips à la main, car un décalage manuel corrige un point et laisse la pente intacte. Deux causes voisines méritent d'être vérifiées avant de songer au pulldown. Un matériel transféré depuis une origine à 25 images par seconde tournera 4,1667 pour cent trop vite ou trop lentement, divergence bien plus grande et rapide, environ une image toutes les 24 images. Et les enregistreurs dont les horloges ne sont pas verrouillées sur une référence commune dérivent d'eux-mêmes, typiquement de quelques images par heure, ce qu'aucun correctif arithmétique ne réparera — celui-là se règle en envoyant la même référence d'horloge mot ou de timecode à chaque appareil avant la prise.
Articles qui pourraient t'intéresser
Tous les guides →Outils similaires
Sources
- SMPTE — SMPTE ST 12-1: Time and Control Code — the drop-frame rule and the timecode data structure
- SMPTE — SMPTE ST 12-2: Transmission of Time Code in the Ancillary Data Space
- ITU-R — Recommendation BT.470 — Conventional analogue television systems, including the 525/60 line and field rates
- ITU-R — Recommendation BT.601 — Studio encoding parameters for standard 4:3 and widescreen 16:9 digital television
- Charles Poynton — Digital Video and HD: Algorithms and Interfaces — the 1000/1001 factor, pulldown and timecode
- European Broadcasting Union — EBU Tech 3097 — EBU time-and-control code for television tape recording (the 25 fps counterpart)
Tu as repéré une erreur dans cet article ?