Prüfen Sie den Übergang einer Videoschleife
Eine überzeugende Videoschleife muss von ihrem Ende natürlich zum Anfang zurückkehren.
Im Browser ausführen – kostenlos
Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.
Dieses Werkzeug vergleicht die durchschnittlichen Rot-, Grün-, Blau- und Helligkeitswerte des ersten und letzten Frames, wandelt die Abweichungen in einen verständlichen Wert um und prüft, ob dieser Ihren Grenzwert erreicht. So erkennen Schnitt, Motion Design und automatisierte Medienabläufe wahrscheinliche Übergänge, bevor jemand jeden Export Einzelbild für Einzelbild ansehen oder eine Schleife mit einem sichtbaren Aufblitzen veröffentlichen muss.
Bereiten Sie aussagekräftige Frame-Mittelwerte vor
Berechnen Sie zunächst je einen mittleren Rot-, Grün-, Blau- und Helligkeitswert für den ersten Frame und dieselben vier Werte für den letzten. Sämtliche Kanäle einschließlich der Helligkeit müssen die übliche Skala von 0 bis 255 verwenden, damit der Vergleich konsistent bleibt. Verwenden Sie die decodierten Frames, die das Publikum tatsächlich sieht, nachdem Farbkonvertierung, Filter, Überlagerungen und Exportkompression angewendet wurden. Ein Vergleich des Ausgangsmaterials vor der Farbkorrektur kann einen später entstandenen Übergang übersehen. Nutzen Sie auch keine Vorschaubilder verschiedener Dienste, da Größenänderung und Farbmanagement ihre Mittelwerte unabhängig verschieben können. Das Werkzeug verlangt alle Kanäle in beiden Datensätzen: Eine unvollständige Farbe würde einen beruhigenden, aber irreführenden Wert erzeugen. Mittelwerte verdichten ein Bild zu einem kompakten Signal und ermöglichen eine schnelle, deterministische Prüfung, beschreiben jedoch nicht die Position von Objekten oder Kanten. Betrachten Sie das Ergebnis daher als Vorprüfung. Ein positives Resultat bestätigt eine ähnliche Gesamtfarbe und Helligkeit, nicht die perfekte Übereinstimmung von Bewegung, Bildaufbau oder Textur am Schnitt.
Verstehen Sie Kennwert und Grenzwert
Die Berechnung misst den euklidischen Abstand zwischen den RGB-Mittelwerten und normalisiert ihn anhand des größtmöglichen RGB-Abstands. Unabhängig davon wird der absolute Helligkeitsunterschied gemessen und auf derselben Skala von 0 bis 255 normalisiert. Die Farbe bestimmt 80 Prozent der endgültigen Ähnlichkeit, die Helligkeit 20 Prozent. Ein großflächiger Farbtonwechsel fällt meist stärker auf, während ein Blitz oder Helligkeitsabfall weiterhin erhebliches Gewicht besitzt. Der Kennwert reicht von 0 bis 100; 100 bedeutet, dass alle vier Eingaben exakt übereinstimmen. Der voreingestellte Grenzwert beträgt 90. Ein gleicher oder höherer Wert gilt als kompatibel, ein niedrigerer verlangt eine Prüfung. Wählen Sie für dezente Hintergrundschleifen, Produktmotive oder große Anzeigen einen strengeren Grenzwert. Für schnelle Schnitte, Glitch-Stile oder kleine dekorative Vorschauen kann ein niedrigerer genügen. Verwenden Sie innerhalb eines Stapels denselben Grenzwert, damit Resultate vergleichbar bleiben. Die Antwort enthält außerdem Farbabstand und Helligkeitsdifferenz. Daran erkennen Sie, ob vor allem Farbkorrektur oder Belichtung die Abweichung verursacht.
Nutzen Sie das Ergebnis im Schnittablauf
Führen Sie die Prüfung nach jedem möglichen Export aus und leiten Sie fehlgeschlagene Clips an den Schnitt oder einen automatisierten Korrekturschritt zurück. Dominiert der Helligkeitsunterschied, können eine angeglichene Belichtung, eine kurze Überblendung oder ein angepasstes Ausblenden den Anschluss verbessern. Bei großem Farbabstand sollten Sie Weißabgleich, Lichtwechsel, animierte Verläufe und die Kompression nahe der Grenze untersuchen. Berechnen Sie nach jeder Änderung die Frame-Mittelwerte neu, statt alte Messungen wiederzuverwenden. Speichern Sie in einer Pipeline Kennwert, Grenzwert und Teilabweichungen zusammen mit dem Export, damit Prüfer jede Entscheidung nachvollziehen können. Die API kostet $0.002 pro Element; für einzelne Prüfungen eignet sich die Browserversion. Sehen Sie wichtige Schleifen auch nach einem positiven Ergebnis stets selbst an. Zwei Frames können dieselbe Durchschnittsfarbe haben, obwohl helle und dunkle Bereiche in gegenüberliegenden Ecken liegen. Mittelwerte prüfen außerdem weder Motivposition und Kamerabewegung noch optischen Fluss oder Tonkontinuität. Das Werkzeug eignet sich am besten als kostengünstige Qualitätsstufe, die allgemeine Blitze und Farbsprünge früh erkennt. Ergänzen Sie es bei kritischen Schleifen durch visuelle oder räumliche Vergleiche.
Anwendungsfälle
Schleifen für soziale Medien prüfen
Erkennen Sie Animationen mit Farb- oder Helligkeitswechsel im letzten Frame vor der geplanten Veröffentlichung.
Motion-Design-Stapel validieren
Wenden Sie einen Grenzwert auf viele Hintergrundschleifen an und geben Sie nur mögliche Fehler zur Sichtprüfung weiter.
Inhalte für Umgebungsanzeigen abstimmen
Vergleichen Sie Fassungen für Foyers, Terminals oder Bühnen, bei denen ein wiederkehrender Blitz auffallen würde.
Häufige Fragen
Welche Werte müssen Sie bereitstellen?
Geben Sie für den ersten und letzten Frame mittlere Rot-, Grün-, Blau- und Helligkeitswerte von 0 bis 255 an.
Was geschieht, wenn ein Kanal fehlt?
Die Anfrage endet mit einem Eingabefehler, statt einen unvollständigen oder irreführenden Wert zu berechnen.
Welcher Wert gilt als kompatibel?
Der Standardgrenzwert ist 90; Sie können passend zu Ihrer Prüfrichtlinie jeden Wert von 0 bis 100 wählen.
Garantiert ein positives Ergebnis eine perfekte Schleife?
Nein. Gemessen werden globale Farb- und Helligkeitsmittelwerte, nicht Position, Bewegung, Texturen oder Ton.
Was kostet die Prüfung über die API?
Jedes Element kostet über die API $0.002. Für einzelne interaktive Prüfungen steht die Browserversion bereit.
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/loop-seamless-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"first_frame":{"red":124,"green":118,"blue":110,"brightness":117.6},"last_frame":{"red":126,"green":117,"blue":112,"brightness":118.1}}'const res = await fetch("https://api.kit.forhosting.com/video/loop-seamless-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"first_frame": {
"red": 124,
"green": 118,
"blue": 110,
"brightness": 117.6
},
"last_frame": {
"red": 126,
"green": 117,
"blue": 112,
"brightness": 118.1
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/loop-seamless-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"first_frame": {
"red": 124,
"green": 118,
"blue": 110,
"brightness": 117.6
},
"last_frame": {
"red": 126,
"green": 117,
"blue": 112,
"brightness": 118.1
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/loop-seamless-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"first_frame":{"red":124,"green":118,"blue":110,"brightness":117.6},"last_frame":{"red":126,"green":117,"blue":112,"brightness":118.1}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"first_frame":{"red":124,"green":118,"blue":110,"brightness":117.6},"last_frame":{"red":126,"green":117,"blue":112,"brightness":118.1}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/loop-seamless-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
{
"first_frame": {
"red": 124,
"green": 118,
"blue": 110,
"brightness": 117.6
},
"last_frame": {
"red": 126,
"green": 117,
"blue": 112,
"brightness": 118.1
}
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.loop_seamless_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. |