Zeitstempel für Video-Vorschaubilder berechnen
Planen Sie aussagekräftige Vorschaubilder, bevor auch nur ein Videobild decodiert wird.
Im Browser ausführen – kostenlos
Geben Sie die Videodauer und die gewünschte Anzahl an; der Rechner liefert deterministische, gleichmäßig verteilte Zeitstempel in Sekunden. Die erste und die letzte Sekunde werden bewusst ausgelassen, da Überblendungen, schwarze Bilder, Titeltafeln und Abspanne dort häufig ungeeignete Vorschauen ergeben. Das Ergebnis lässt sich unmittelbar in einem Extraktionsbefehl, einer Medien-Pipeline, einem Storyboard-Generator oder auf der Zeitleiste eines Videoplayers verwenden.
Wählen Sie repräsentative Punkte abseits der Ränder
Eine nützliche Reihe von Vorschaubildern soll das Video zusammenfassen und nicht lediglich seine gesamte Laufzeit aufteilen. Ganz am Anfang befinden sich oft ein schwarzes Bild, eine Einblendung, eine Ladetafel oder ein unvollständiges Schlüsselbild. Am Ende erscheinen ebenso häufig eine Ausblendung, ein Abspann, eine Endtafel oder genau an der Laufzeitgrenze gar kein decodierbares Bild. Der Rechner entfernt diese unzuverlässigen Bereiche, indem er ein nutzbares Fenster von einer Sekunde nach dem Start bis eine Sekunde vor dem Ende festlegt. Fordern Sie mindestens zwei Zeitstempel an, liegt der erste am Anfang dieses sicheren Fensters und der letzte an dessen Ende; alle weiteren Punkte werden in gleichen Abständen dazwischen verteilt. Bei einem einzelnen Zeitstempel erhalten Sie die Mitte des Videos. Dieses Verhalten ist eindeutig und wiederholbar: Dieselbe Dauer und Anzahl ergeben stets denselben Plan. Sie können die Sekunden daher direkt an einen separaten Extraktionsprozess übergeben, ohne die Abstandslogik erneut zu implementieren oder versehentlich die unerreichbare Endposition einer Mediendatei anzufordern.
Verstehen Sie Berechnung und Grenzen
Die Eingabe erfolgt in Sekunden und akzeptiert Bruchteile, da Medienmetadaten nur selten auf einer vollen Sekunde enden. Bei mehreren Vorschaubildern entspricht der Abstand der nutzbaren Dauer —Gesamtdauer abzüglich zwei Sekunden— geteilt durch die gewünschte Anzahl minus eins. Jeder Zeitstempel besteht aus der ersten sicheren Sekunde plus diesem Abstand, multipliziert mit seiner bei null beginnenden Position. Die Ergebnisse werden auf höchstens sechs Nachkommastellen gerundet. Dadurch bleibt die JSON-Ausgabe stabil, ohne die übliche Genauigkeit unterhalb einer Sekunde zu verlieren. Die Dauer muss größer als zwei Sekunden sein, weil ein kürzerer Clip nach Ausschluss beider Randsekunden kein gültiges Intervall besitzt. Die Anzahl muss eine ganze Zahl von mindestens eins sein; null oder negative Werte ergeben keinen sinnvollen Plan und führen zu einem Eingabefehler. Obergrenzen verhindern unnötig große Arrays. Das Werkzeug berechnet ausschließlich Positionen: Es untersucht keine Bilder, erkennt keine Szenen oder Schlüsselbilder und garantiert nicht, dass ein Decoder den gewünschten Sekundenbruchteil exakt ansteuert.
Nutzen Sie die Zeitstempel in Ihrem Arbeitsablauf
Verwenden Sie zunächst die verlässliche Dauer aus Ihrer Medienanalyse, den Player-Metadaten oder dem Upload-Dienst. Wählen Sie eine Anzahl, die zum Ziel passt: Eine kompakte Vorschau beim Bewegen über die Zeitleiste benötigt möglicherweise nur wenige Bilder, ein langes Storyboard dagegen mehrere Dutzend. Senden Sie diese Werte an den Rechner und behalten Sie bei der Extraktion die zurückgegebene Reihenfolge bei. Die meisten Videowerkzeuge akzeptieren Sekunden oder können sie in ihre eigene Zeitnotation umwandeln. Der gleichmäßige Plan eignet sich außerdem für deterministische Cache-Schlüssel und wiederholbare Hintergrundaufträge: Ein erneuter Versuch fragt dieselben Positionen ab. Die tatsächliche Bildgenauigkeit hängt vom Extraktor ab. Schnelle Suchmodi springen oft zu einem benachbarten Schlüsselbild, während genaue Modi bis zum gewünschten Zeitpunkt decodieren. Für eine inhaltsabhängige Auswahl verwenden Sie eine Szenenerkennung. Für planbare Zeitleistenabdeckung, Stapelverarbeitung, Testdaten und Vorschaustreifen bieten diese Zeitstempel einen transparenten, leicht reproduzierbaren Vertrag.
Anwendungsfälle
Vorschaustreifen erstellen
Erzeugen Sie planbare Positionen für Bilder, die beim Bewegen über die Videozeitleiste angezeigt werden.
Storyboard vorbereiten
Erstellen Sie einen gleichmäßig abgetasteten Kontaktbogen ohne schwarze Startbilder oder Endtafeln.
Stapelextraktion planen
Übergeben Sie eine stabile Zeitstempelliste an einen FFmpeg-Auftrag, Medien-Worker oder eine Upload-Pipeline.
Häufige Fragen
Wie hoch sind die Kosten?
Jede API-Anfrage kostet $0.002. Sie können den Rechner auch direkt im Browser ausführen.
Warum fehlen die erste und die letzte Sekunde?
Diese Bereiche enthalten oft Überblendungen, schwarze Bilder, Titel, Abspänne oder eine nicht decodierbare Grenze und liefern daher schlechte Vorschauen.
Was geschieht bei nur einem Vorschaubild?
Der Rechner gibt die Mitte des Videos zurück; sie liegt bei jeder zulässigen Dauer im sicheren Fenster.
Extrahiert dieses Werkzeug die Bilder?
Nein. Es liefert nur Zeitstempel. Verwenden Sie das Ergebnis mit einem Videodecoder oder einem Werkzeug zur Einzelbildextraktion.
Werden Sekundenbruchteile unterstützt?
Ja. Dauer und Zeitstempel dürfen Bruchteile enthalten; die Ausgabe wird auf höchstens sechs Nachkommastellen gerundet.
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/video/thumbnail-timestamps \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"duration_seconds":120,"count":5}'const res = await fetch("https://api.kit.forhosting.com/video/thumbnail-timestamps", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"duration_seconds": 120,
"count": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/thumbnail-timestamps",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"duration_seconds": 120,
"count": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/thumbnail-timestamps", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"duration_seconds":120,"count":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"duration_seconds":120,"count":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/thumbnail-timestamps", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"duration_seconds": 120,
"count": 5
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.thumbnail_timestamps",
"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_items | 10000 |
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. |