Calcolo dell'offset di sincronizzazione audio-video
Il calcolatore di sincronizzazione audio-video trasforma un anticipo o ritardo sonoro misurato in una correzione esatta.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Inserisca l'offset audio rilevato in millisecondi: usi un valore positivo quando il suono arriva prima dell'immagine corrispondente e negativo quando arriva dopo. Il risultato indica se ritardare l'audio o il video, fornisce un ritardo non negativo e conserva la misura con segno come riferimento. In questo modo Lei può evitare la comune ambiguità dei segni prima di configurare un editor, un transcodificatore, un lettore o un flusso di multiplexing.
Descriva l'offset rilevato con una convenzione di segno coerente
Inizi con una misura che confronti un evento sonoro con il corrispondente evento visivo. Un battito di mani, un ciak, una porta che si chiude o una consonante pronunciata con un movimento delle labbra ben visibile possono offrire un buon riferimento. Inserisca un numero positivo quando l'audio è in anticipo: per esempio, indichi 180 se il suono viene udito 180 millisecondi prima del fotogramma associato. Inserisca un numero negativo quando l'audio è in ritardo: indichi -240 se l'immagine raggiunge l'evento di riferimento 240 millisecondi prima del suono. Questa convenzione descrive la posizione dell'audio rispetto al video, non un'opzione copiata da una particolare applicazione. La distinzione è importante perché i programmi etichettano gli offset in modi diversi. Alcuni chiedono quando deve iniziare un ingresso, altri quanto ritardo aggiungere, e il segno positivo può avere significati opposti. Registrando prima la relazione rilevata, Lei mantiene l'osservazione indipendente dall'interfaccia. Il calcolatore conserva la misura con segno e restituisce separatamente direzione e ampiezza della correzione, evitando di confondere il dato originale con l'azione.
Applichi la correzione al flusso che arriva prima
La sincronizzazione viene ripristinata ritardando il flusso che arriva per primo. Quando il valore inserito è positivo, l'audio precede l'immagine; il risultato indica quindi delay_audio e riporta la stessa ampiezza in audio_delay_ms. Quando il valore è negativo, l'audio segue l'immagine, quindi il video è in anticipo; il risultato indica delay_video e usa il valore assoluto in video_delay_ms. Il campo offset_ms è sempre non negativo ed esprime il ritardo da applicare. L'altro flusso riceve un ritardo pari a zero, rendendo l'operazione esplicita per l'automazione. Una misura pari a zero restituisce none, perché non occorre spostare alcun flusso. Questo calcolo non allunga, ricampiona, taglia o modifica il contenuto multimediale: determina soltanto una correzione dell'allineamento iniziale. Se la sincronizzazione parte correttamente ma deriva durante la riproduzione, un offset fisso non è sufficiente. Verifichi frequenze di campionamento non corrispondenti, interpretazione del frame rate, deriva dell'orologio o timestamp danneggiati. Per un anticipo o ritardo stabile, invece, un singolo ritardo riallinea gli eventi senza cambiare la velocità.
Trasferisca il risultato in sicurezza nell'editor o nel flusso di multiplexing
Usi direction per stabilire quale traccia o flusso debba ricevere il ritardo e offset_ms come ampiezza. Prima di inserire il valore in un altro strumento, verifichi se accetta millisecondi, secondi, fotogrammi o timecode. Converta le unità senza cambiare la correzione: 250 millisecondi equivalgono a 0.25 secondi, mentre la conversione in fotogrammi dipende anche dal frame rate del progetto. Se un'interfaccia utilizza uno spostamento con segno invece di un ritardo denominato, consulti la relativa documentazione e associ la direzione con attenzione, perché la convenzione può differire da detected_audio_offset_ms. Verifichi l'uscita corretta su più eventi netti vicino all'inizio e alla fine del programma. Questi controlli distinguono un offset costante da una deriva graduale e rivelano misure basate su un suono ambiguo. Conservi la misura originale con segno insieme alla correzione nei metadati o nelle note di revisione. Il calcolo è deterministico, non richiede il caricamento del file multimediale e può inserirsi negli script di controllo qualità che ricevono già un offset dall'analisi della forma d'onda o dalla revisione manuale.
Casi d'uso
Correggere una traccia microfonica registrata separatamente
Converta l'anticipo o il ritardo misurato del microfono nel ritardo esatto prima del multiplexing con il filmato della videocamera.
Preparare una correzione per la timeline
Trasformi un errore di sincronizzazione segnalato in una direzione inequivocabile e in un'ampiezza espressa in millisecondi.
Automatizzare le correzioni del controllo qualità
Invii l'offset con segno rilevato al flusso e applichi il ritardo risultante alla fase audio o video appropriata.
Domande frequenti
Che cosa indica un offset audio positivo?
Indica che l'audio precede l'evento visivo corrispondente. Ritardi l'audio del valore restituito in offset_ms.
Che cosa indica un offset audio negativo?
Indica che l'audio segue l'evento visivo, quindi il video arriva prima. Ritardi il video del valore offset_ms.
Che cosa accade quando l'offset è zero?
La direzione è none ed entrambi i ritardi sono zero, perché non serve correggere l'allineamento iniziale.
Il calcolo può correggere una deriva progressiva?
No. Calcola un ritardo fisso. Una deriva progressiva richiede in genere correzioni di timing, campionamento, frame rate o timestamp.
Quanto costa il calcolo?
Ogni richiesta API costa $0.002. Il calcolo è deterministico e non carica né elabora un file multimediale.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo 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)Esempio di richiesta
{
"audio_offset_ms": 180
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.mux_audio_offset",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |