Audio-Video-Synchronversatz berechnen
Der Rechner für den Audio-Video-Synchronversatz wandelt einen gemessenen Tonvorlauf oder -nachlauf in eine eindeutige Korrektur um.
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.
Geben Sie den erkannten Audioversatz in Millisekunden ein: einen positiven Wert, wenn der Ton vor dem zugehörigen Bild eintrifft, oder einen negativen Wert, wenn er danach eintrifft. Das Ergebnis nennt den zu verzögernden Stream, liefert eine nicht negative Verzögerung und bewahrt den vorzeichenbehafteten Messwert als Referenz. So vermeiden Sie Unklarheiten über das Vorzeichen, bevor Sie ein Schnittprogramm, einen Transcoder, einen Player oder einen Muxing-Ablauf konfigurieren.
Beschreiben Sie den Messwert mit einer einheitlichen Vorzeichenregel
Beginnen Sie mit einer Messung, die ein akustisches Ereignis mit dem zugehörigen sichtbaren Ereignis vergleicht. Ein Händeklatschen, eine Filmklappe, eine zufallende Tür oder ein gesprochener Konsonant mit deutlicher Lippenbewegung eignet sich als Bezugspunkt. Geben Sie eine positive Zahl ein, wenn der Ton vorauseilt: Verwenden Sie beispielsweise 180, wenn der Ton 180 Millisekunden vor dem passenden Bild zu hören ist. Geben Sie eine negative Zahl ein, wenn der Ton nacheilt: Verwenden Sie -240, wenn das Bild den Bezugspunkt 240 Millisekunden vor dem Ton erreicht. Diese Regel beschreibt die Position des Tons relativ zum Bild und nicht die Einstellung eines bestimmten Programms. Das ist wichtig, weil Anwendungen Versatzwerte unterschiedlich bezeichnen. Manche fragen nach dem Startzeitpunkt einer Quelle, andere nach der hinzuzufügenden Verzögerung; ein positives Vorzeichen kann deshalb Gegensätzliches bedeuten. Wenn Sie zuerst das erkannte Verhältnis erfassen, bleibt die Beobachtung von der Bedienoberfläche unabhängig. Der Rechner bewahrt diesen vorzeichenbehafteten Messwert und gibt Korrekturrichtung und Betrag separat aus, sodass Messung und Maßnahme nicht verwechselt werden.
Verzögern Sie den Stream, der zu früh eintrifft
Die Synchronität wird wiederhergestellt, indem der zuerst eintreffende Stream verzögert wird. Ist der eingegebene Wert positiv, eilt der Ton dem Bild voraus. Das Ergebnis lautet deshalb delay_audio und gibt denselben Betrag als audio_delay_ms aus. Ist der Wert negativ, folgt der Ton dem Bild; folglich ist das Video zu früh. Das Ergebnis lautet dann delay_video und verwendet den absoluten Betrag als video_delay_ms. Das Feld offset_ms ist immer nicht negativ und bezeichnet die anzuwendende Verzögerung. Der andere Stream erhält den Wert null, wodurch die vorgesehene Operation für eine Automatisierung eindeutig ist. Bei einer Messung von null lautet die Richtung none, da kein Stream verschoben werden muss. Diese Berechnung streckt, resampelt, kürzt oder verändert keine Medien; sie ermittelt ausschließlich eine Korrektur des Startzeitpunkts. Beginnt die Wiedergabe synchron und läuft danach zunehmend auseinander, genügt ein fester Versatz nicht. Prüfen Sie dann Abtastraten, Bildrateninterpretation, Taktdrift oder beschädigte Zeitstempel. Bei einem stabilen Vor- oder Nachlauf richtet eine einzelne Verzögerung die Ereignisse ohne Änderung der Wiedergabegeschwindigkeit aus.
Übertragen Sie das Ergebnis sicher in Schnitt- oder Muxing-Abläufe
Bestimmen Sie anhand von direction, welche Spur oder welcher Stream verzögert wird, und verwenden Sie offset_ms als Betrag. Prüfen Sie vor der Eingabe in ein anderes Werkzeug, ob dieses Millisekunden, Sekunden, Einzelbilder oder Timecode erwartet. Rechnen Sie die Einheit um, ohne die Korrektur zu verändern: 250 Millisekunden entsprechen 0.25 Sekunden; eine Umrechnung in Einzelbilder hängt zusätzlich von der Bildrate des Projekts ab. Verwendet eine Oberfläche eine vorzeichenbehaftete Verschiebung statt einer benannten Verzögerung, lesen Sie deren Dokumentation und ordnen Sie die Richtung bewusst zu, da ihre Konvention von detected_audio_offset_ms abweichen kann. Kontrollieren Sie die korrigierte Ausgabe an mehreren deutlichen Ereignissen am Anfang und Ende des Programms. So unterscheiden Sie einen konstanten Versatz von einer allmählichen Drift und erkennen Messungen anhand eines mehrdeutigen Tons. Bewahren Sie den ursprünglichen Messwert zusammen mit der Korrektur in den Auftragsmetadaten oder Prüfnotizen auf. Die Berechnung ist deterministisch, erfordert keinen Medien-Upload und lässt sich in Qualitätssicherungsabläufe integrieren, die einen Versatz bereits durch Wellenformanalyse oder manuelle Prüfung ermitteln.
Anwendungsfälle
Eine separat aufgenommene Mikrofonspur korrigieren
Wandeln Sie den gemessenen Vor- oder Nachlauf des Mikrofons vor dem Muxing mit der Kameraaufnahme in die genaue Verzögerung um.
Eine Korrektur für die Schnittzeitleiste vorbereiten
Machen Sie aus einem gemeldeten Synchronfehler eine eindeutige Verzögerungsrichtung und einen Betrag in Millisekunden.
Korrekturen der Medienprüfung automatisieren
Leiten Sie den vorzeichenbehafteten Messwert an den Ablauf weiter und wenden Sie die Verzögerung auf die richtige Audio- oder Videostufe an.
Häufige Fragen
Was bedeutet ein positiver Audioversatz?
Der Ton liegt vor dem zugehörigen Bildereignis. Verzögern Sie den Ton um den in offset_ms ausgegebenen Wert.
Was bedeutet ein negativer Audioversatz?
Der Ton folgt dem zugehörigen Bildereignis; das Video ist daher zu früh. Verzögern Sie das Video um offset_ms.
Was geschieht bei einem Versatz von null?
Die Richtung lautet none und beide Verzögerungen sind null, weil keine Korrektur des Startzeitpunkts erforderlich ist.
Kann die Berechnung eine zunehmende Synchrondrift beheben?
Nein. Sie berechnet eine feste Verzögerung. Eine zunehmende Drift erfordert meist Korrekturen an Timing, Abtastrate, Bildrate oder Zeitstempeln.
Was kostet die Berechnung?
Jede API-Anfrage kostet $0.002. Die Berechnung ist deterministisch und lädt oder verarbeitet keine Mediendatei.
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/mux-audio-offset \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"audio_offset_ms":180}'const res = await fetch("https://api.kit.forhosting.com/video/mux-audio-offset", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"audio_offset_ms": 180
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/mux-audio-offset",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"audio_offset_ms": 180
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/mux-audio-offset", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"audio_offset_ms":180}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"audio_offset_ms":180}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/mux-audio-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
{
"audio_offset_ms": 180
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.mux_audio_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. |