Drop-Frame- und Non-Drop-Timecode prüfen
Dieser Prüfer erkennt die durch das Trennzeichen angegebene Timecode-Konvention, bestätigt ihre Gültigkeit für die eingegebene Framerate und wandelt die Kennung in eine absolute, nullbasierte Framezahl um.
Im Browser ausführen – kostenlos
Dabei berücksichtigt er die bei NTSC-basierten Drop-Frame-Formaten ausgelassenen Nummern, statt jede Minute gleich zu behandeln. Das Ergebnis nennt außerdem nominale Zählrate, tatsächliche Wiedergaberate, Anzahl der zuvor ausgelassenen Kennungen und verstrichene Sekunden. Damit eignet es sich für Schnittentscheidungen, Metadatenprüfungen und automatisierte Medienabläufe.
Was Drop-Frame-Timecode tatsächlich auslässt
Drop-Frame-Timecode entfernt keine Videobilder, verkürzt keine Sendung und ändert nicht die Wiedergabegeschwindigkeit. Er lässt nur bestimmte Framenummern aus, damit die angezeigte Uhr bei NTSC-basierten gebrochenen Raten nahe an der realen Zeit bleibt. Bei 29.97 fps entsteht durch eine Zählung wie bei exakt 30 fps eine Abweichung von ungefähr 3.6 Sekunden pro Stunde. Die Konvention gleicht sie aus, indem zu Beginn jeder Minute außer jeder zehnten die Kennungen 00 und 01 übersprungen werden. Bei 59.94 fps sind es vier Kennungen, bei 119.88 fps acht. Ein Semikolon oder Punkt vor dem Framefeld bedeutet hier Drop-Frame, ein Doppelpunkt Non-Drop. Die korrigierte Zahl zieht somit nie Bilder aus dem Material ab, sondern nur Kennungen, die nicht existieren dürfen. So wird aus einem lesbaren Timecode eine präzise, nullbasierte Position.
So wird die Framezahl berechnet
Zunächst ordnet das Werkzeug der Wiedergaberate ihre ganzzahlige nominale Zählbasis zu. 29.97 verwendet beispielsweise 30 Kennungen pro nomineller Sekunde, 23.976 dagegen 24. Anschließend werden Minuten, Sekunden und Framefeld gegen diese Basis geprüft. Bei Non-Drop werden Stunden, Minuten und Sekunden direkt mit der nominalen Rate umgerechnet und das letzte Feld addiert. Bei Drop-Frame zählt die Berechnung alle vorher abgeschlossenen Minuten, nimmt jede zehnte Minute von der Korrektur aus und zieht je nach Rate zwei, vier oder acht Kennungen ab. Unmögliche Angaben wie 00:01:00;00 bei 29.97 werden ebenfalls abgelehnt, weil 00:01:00;02 dort die erste gültige Kennung ist. Die verstrichenen Sekunden entstehen durch Division der korrigierten Framezahl durch die genaue gebrochene Rate wie 30000/1001, nicht durch den gerundeten Anzeigewert.
Wählen Sie die Konvention der Quelle
Eine gebrochene Framerate beweist nicht automatisch, dass ein Timecode Drop-Frame verwendet. Ein Projekt mit 29.97 oder 59.94 kann abhängig von Produktionsanforderungen und Geräteeinstellungen Drop-Frame- oder Non-Drop-Kennungen führen. Deshalb liest das Werkzeug das letzte Trennzeichen, statt eine Konvention zu erzwingen: Verwenden Sie Semikolon oder Punkt, wenn die Quelle Drop-Frame vorgibt, und einen Doppelpunkt für Non-Drop. Raten wie 23.976, 24 und 25 verwenden die hier unterstützte Standardkorrektur nicht; Drop-Frame-Zeichensetzung führt dort zu einem Fehler. Bewahren Sie in Medienabläufen Framerate und vollständigen Timecode gemeinsam auf, denn entfernte Zeichensetzung kann die Konvention löschen. Nutzen Sie die ausgegebene Framezahl als Position ab null und addieren Sie einen separaten Startversatz nur bei Bedarf. So wird eine kleine stündliche Drift nicht zum sichtbaren Synchronisations- oder Schnittfehler.
Anwendungsfälle
Schnittentscheidungsliste prüfen
Lehnen Sie unmögliche Drop-Frame-Kennungen ab und wandeln Sie gültige Timecodes in vergleichbare absolute Positionen um.
Sendelaufzeit kontrollieren
Bestätigen Sie die Konvention eines NTSC-basierten Programms und berechnen Sie Sekunden aus der korrigierten Zählung.
Medienmetadaten vereinheitlichen
Speichern Sie Konvention, nominale Rate, genaue Wiedergaberate und Framezahl vor Katalogisierung oder Transcodierung.
Häufige Fragen
Löscht Drop-Frame-Timecode Videobilder?
Nein. Er überspringt nur bestimmte Nummern; sämtliche aufgenommenen Videobilder bleiben erhalten.
Wie wählt der Prüfer die Konvention?
Semikolon oder Punkt wählt Drop-Frame. Ein Doppelpunkt wählt Non-Drop.
Kann 23.976 Drop-Frame verwenden?
Nicht mit der hier umgesetzten Standardkonvention. Das Drop-Frame-Zeichen ergibt bei 23.976 einen Eingabefehler.
Warum ist 00:01:00;00 bei 29.97 ungültig?
Am Anfang dieser Minute werden 00 und 01 ausgelassen; die erste gültige Kennung lautet 00:01:00;02.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Der Rechner im Browser benötigt keine API-Anfrage.
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"framerate": 29.97,
"timecode": "01:00:00;00"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.drop_frame_timecode_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |