Vérificateur de timecode drop-frame et non-drop
Ce vérificateur reconnaît la convention indiquée par le séparateur du timecode, confirme sa validité pour la fréquence fournie et convertit l’étiquette en nombre absolu d’images à partir de zéro.
Lancer gratuitement
Il tient compte des numéros omis par les formats drop-frame dérivés du NTSC au lieu de traiter toutes les minutes de façon identique. Le résultat indique aussi la cadence nominale, la cadence réelle de lecture, le nombre d’étiquettes omises et les secondes écoulées, données utiles au montage, au contrôle des métadonnées et aux chaînes audiovisuelles automatisées.
Comprendre ce que le drop-frame supprime réellement
Le timecode drop-frame ne supprime aucune image vidéo, ne raccourcit pas le programme et ne modifie pas la vitesse de lecture. Il omet uniquement certains numéros afin que l’horloge affichée reste proche du temps réel aux fréquences fractionnaires dérivées du NTSC. À 29.97 fps, un comptage fondé sur exactement 30 fps dérive d’environ 3.6 secondes par heure. La convention corrige cet écart en sautant les étiquettes 00 et 01 au début de chaque minute, sauf toutes les dix minutes. À 59.94 fps, quatre étiquettes sont omises et à 119.88 fps, huit. Le vérificateur reconnaît un point-virgule ou un point avant le champ d’image comme drop-frame, tandis que deux-points signifie non-drop. Le nombre corrigé soustrait donc des étiquettes inexistantes, jamais des images du média, et transforme une référence lisible en position exacte à partir de zéro.
Méthode de calcul du nombre d’images
L’outil associe d’abord la fréquence de lecture à sa base nominale entière. Ainsi, 29.97 emploie 30 étiquettes par seconde nominale, tandis que 23.976 en emploie 24. Il contrôle ensuite les minutes, secondes et images par rapport à cette base. En non-drop, les heures, minutes et secondes sont converties directement à la cadence nominale, puis le dernier champ est ajouté. En drop-frame, le calcul compte toutes les minutes achevées, exclut chaque dixième minute de la correction et soustrait deux, quatre ou huit étiquettes selon la fréquence. Il refuse aussi 00:01:00;00 à 29.97, car la première étiquette valide est 00:01:00;02. Les secondes écoulées proviennent du nombre corrigé divisé par la fréquence fractionnaire exacte, telle que 30000/1001, et non par sa valeur arrondie. La relation pratique entre position et durée reste ainsi préservée.
Choisir la convention indiquée par la source
Une fréquence fractionnaire ne prouve pas qu’un timecode est drop-frame. Un projet à 29.97 ou 59.94 peut employer l’une ou l’autre convention selon les besoins de production et le réglage du matériel. L’outil lit donc le dernier séparateur au lieu d’imposer un choix : utilisez un point-virgule ou un point si la source indique drop-frame, et deux-points pour non-drop. Les fréquences 23.976, 24 et 25 n’emploient pas la correction standard prise en charge ici ; une ponctuation drop-frame produit alors une erreur plutôt qu’un résultat trompeur. Dans une chaîne audiovisuelle, conservez toujours ensemble la fréquence et le timecode complet, car retirer la ponctuation efface la convention. Utilisez le nombre retourné comme position depuis zéro, puis ajoutez séparément tout décalage initial de source. Ce contrôle évite qu’une faible dérive horaire devienne une erreur visible de synchronisation ou de montage.
Cas d’usage
Valider une liste de décisions de montage
Refusez les étiquettes drop-frame impossibles et convertissez les timecodes valides en positions absolues comparables.
Contrôler une durée de diffusion
Confirmez la convention d’un programme dérivé du NTSC et calculez les secondes depuis le comptage corrigé.
Normaliser les métadonnées audiovisuelles
Enregistrez convention, cadence nominale, lecture exacte et images avant catalogage ou transcodage.
Questions fréquentes
Le drop-frame supprime-t-il des images vidéo ?
Non. Il omet seulement certaines étiquettes numériques ; toutes les images enregistrées restent présentes.
Comment la convention est-elle sélectionnée ?
Un point-virgule ou un point sélectionne drop-frame. Deux-points sélectionne non-drop.
Le 23.976 peut-il employer le drop-frame ?
Pas avec la convention standard appliquée ici. Ce séparateur à 23.976 renvoie une erreur de saisie.
Pourquoi 00:01:00;00 est-il invalide à 29.97 ?
Les étiquettes 00 et 01 sont omises au début de cette minute ; la première valide est 00:01:00;02.
Quel est le prix d’une requête API ?
Chaque requête API coûte $0.002. La calculatrice du navigateur fonctionne sans requête API.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/video2/drop-frame-timecode-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"framerate":29.97,"timecode":"01:00:00;00"}'const res = await fetch("https://api.kit.forhosting.com/video2/drop-frame-timecode-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"framerate": 29.97,
"timecode": "01:00:00;00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video2/drop-frame-timecode-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"framerate": 29.97,
"timecode": "01:00:00;00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video2/drop-frame-timecode-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"framerate":29.97,"timecode":"01:00:00;00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"framerate":29.97,"timecode":"01:00:00;00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video2/drop-frame-timecode-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"framerate": 29.97,
"timecode": "01:00:00;00"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.drop_frame_timecode_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Limites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |