Multicam-Clip-Versatz aus Audiospitzen berechnen
Multicam-Aufnahmen lassen sich leicht synchronisieren, wenn beide denselben markanten Ton enthalten, etwa eine Klappe, ein Händeklatschen oder einen Schlagzeugschlag.
Im Browser ausführen – kostenlos
Geben Sie den erkannten Zeitpunkt dieser gemeinsamen Audiospitze im ersten und zweiten Clip ein. Der Rechner zieht den zweiten Zeitpunkt vom Referenzzeitpunkt ab, liefert den genauen Platzierungsversatz und sagt Ihnen, ob Sie den zweiten Clip verzögern oder vorziehen müssen. Beide Werte werden geprüft; negative Zeitangaben werden abgelehnt.
Wählen Sie eine eindeutige gemeinsame Audiospitze
Suchen Sie zunächst in beiden Kameraaufnahmen genau dasselbe akustische Ereignis. Eine Filmklappe, ein Händeklatschen, ein platzender Ballon oder ein anderer kurzer Impuls eignet sich gut, weil die Wellenform eine steile, erkennbare Spitze zeigt. Vergrößern Sie die Wellenform jedes Clips und notieren Sie den Zeitpunkt an derselben Stelle dieser Spitze. Nutzen Sie Dezimalsekunden, wenn Ihr Schnittprogramm eine feinere Auflösung bietet. Behandeln Sie die erste Kamera als Referenz-Timeline: Ihr Spitzenzeitpunkt ist das Ziel für die zweite Aufnahme. Tragen Sie beide Werte in die jeweiligen Felder ein. Vergleichen Sie keine unterschiedlichen Klappen oder benachbarten Schläge, denn auch ein mathematisch genauer Versatz kann ungleiche Quellereignisse nicht korrigieren. Die Zeitangaben müssen ab Beginn der jeweiligen Quelldatei gemessen werden, nicht ab einer nach Schnitten entstandenen Timeline-Position. Wurde ein Clip destruktiv gekürzt, messen Sie relativ zum neuen Ursprung oder stellen Sie das Original wieder her. Beide Werte müssen mindestens null sein; negative Angaben werden abgelehnt.
Deuten Sie das Vorzeichen des Versatzes richtig
Berechnet wird der Zeitpunkt der Referenzspitze minus dem Zeitpunkt im zweiten Clip. Dieses Vorzeichen beschreibt, wo der Anfang des zweiten Clips auf der Timeline des ersten liegen muss. Ein positiver Wert bedeutet, dass der gemeinsame Ton im zweiten Clip früher vorkommt; verzögern Sie ihn deshalb um die ausgegebene Sekundenzahl. Ein negativer Wert bedeutet, dass der Ton dort später erscheint; ziehen Sie den Clip um den Betrag vor, sodass sein Ursprung vor dem Referenzursprung liegen würde. Null zeigt bereits gleiche quellenbezogene Zeitpunkte an. Das Anpassungsfeld wiederholt die Aussage als delay_second_clip, advance_second_clip oder already_aligned und schützt Automationen vor einem vertauschten Vorzeichen. Gerundet wird erst jenseits von zwölf Dezimalstellen, um Fließkommareste zu entfernen und praktische Frame- sowie Sample-Genauigkeit zu bewahren. Rechnet Ihr Editor in Bildern, wandeln Sie die Sekunden mit der tatsächlichen Projektbildrate um und kontrollieren anschließend die Wellenform. Bei Subframe-Audiopositionierung behalten Sie den Sekundenwert bei.
Wenden Sie die Synchronisierung an und prüfen Sie sie
Setzen Sie den ersten Clip an die gewünschte Referenzposition und wenden Sie den Versatz auf den Beginn des zweiten an. Bei einem positiven Wert verschieben Sie den zweiten Clip exakt um diese Dauer nach hinten. Bei einem negativen Wert ziehen Sie ihn um den Betrag vor. Falls die Timeline keine Position vor null zulässt, verschieben Sie beide Clips nach hinten und erhalten ihren relativen Abstand. Spielen Sie das gemeinsame Ereignis ab und betrachten Sie beide Wellenformen stark vergrößert. Die Impulsspitzen sollten zusammenfallen; das Stummschalten einer Spur darf kein doppeltes Klatschen oder kurzes Echo offenbaren. Die Berechnung behebt einen konstanten Startversatz, wie er bei durchgehend aufnehmenden Kameras üblich ist. Sie misst keine Uhrendrift, variable Wiedergabegeschwindigkeit, ausgelassene Bilder, abweichende Abtastraten oder interne Schnitte. Prüfen Sie bei langen Aufnahmen einen weiteren gemeinsamen Ton am Ende. Stimmen Anfang und Ende nicht zugleich, korrigieren Sie die Drift mit Zeitdehnung oder einem passenden Synchronisationsablauf. Bewahren Sie die ursprünglichen Spitzenzeiten in den Schnittnotizen auf, damit sich die Platzierung für Proxys und hochauflösende Medien wiederholen lässt.
Anwendungsfälle
Eine Interviewaufnahme synchronisieren
Richten Sie einen zweiten Kamerawinkel über die von beiden Mikrofonen aufgezeichnete Filmklappe an der Hauptkamera aus.
Eine Multicam-Konzert-Timeline aufbauen
Berechnen Sie mit einem gemeinsamen Schlagzeugimpuls den Start einer beweglichen Kamera relativ zur Referenzaufnahme.
Die Proxy-Vorbereitung automatisieren
Speichern Sie einen deterministischen Sekundenversatz, den ein Schnittskript beim Anordnen passender Quellen wiederverwendet.
Häufige Fragen
Was bedeutet der Versatz?
Er ist der Spitzenzeitpunkt des ersten Clips minus dem des zweiten. Positiv heißt verzögern, negativ heißt vorziehen.
Was geschieht bei einer negativen Zeitangabe?
Die Anfrage endet mit einem Eingabefehler, da ein erkanntes Ereignis nicht vor dem Beginn seiner Quelldatei liegen kann.
Kann ich Sekundenbruchteile eingeben?
Ja. Dezimalsekunden erhalten die Subframe- oder Audio-Sample-Genauigkeit Ihres Erkennungsverfahrens.
Korrigiert dies auch Synchronisationsdrift?
Nein. Berechnet wird ein konstanter Versatz. Prüfen Sie mit einem späteren Ereignis auf Takt- oder Geschwindigkeitsabweichungen.
Was kostet eine Berechnung per API?
Jede API-Anfrage kostet $0.002. Die Berechnung ist deterministisch und nutzt keine Netzwerkdienste.
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/multi-cam-sync-offset \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"first_clip_spike_seconds":12.48,"second_clip_spike_seconds":9.73}'const res = await fetch("https://api.kit.forhosting.com/video/multi-cam-sync-offset", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"first_clip_spike_seconds": 12.48,
"second_clip_spike_seconds": 9.73
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/multi-cam-sync-offset",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"first_clip_spike_seconds": 12.48,
"second_clip_spike_seconds": 9.73
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/multi-cam-sync-offset", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"first_clip_spike_seconds":12.48,"second_clip_spike_seconds":9.73}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"first_clip_spike_seconds":12.48,"second_clip_spike_seconds":9.73}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/multi-cam-sync-offset", 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_clip_spike_seconds": 12.48,
"second_clip_spike_seconds": 9.73
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.multi_cam_sync_offset",
"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. |