Calcolare l'offset multicamera dai picchi audio
Sincronizzare riprese multicamera è semplice quando entrambe contengono lo stesso suono netto, come un battito di mani, un ciak o un colpo di batteria.
Esegui gratis nel browser
Inserisca il timestamp del picco condiviso nella prima clip e nella seconda. Il calcolatore sottrae il secondo tempo da quello di riferimento, restituisce l'offset esatto di posizionamento e indica se Lei deve ritardare o anticipare la seconda clip. Entrambi i valori vengono convalidati e i timestamp negativi sono rifiutati.
Scelga un picco audio condiviso inequivocabile
Individui lo stesso evento acustico in entrambe le registrazioni. Un ciak, un battito di mani, lo scoppio di un palloncino o un altro transiente breve è ideale perché produce un picco ripido e riconoscibile. Ingrandisca la forma d'onda di ogni clip e annoti il timestamp nello stesso punto del picco, usando secondi decimali quando l'editor offre precisione inferiore al secondo. Consideri la prima camera come timeline di riferimento: il suo timestamp definisce il punto che la seconda registrazione deve raggiungere. Inserisca quindi i due valori nei rispettivi campi. Non confronti battiti diversi o note vicine, perché un offset matematicamente esatto non può correggere eventi sorgente non corrispondenti. I tempi devono essere misurati dall'inizio di ciascun file sorgente, non dalla posizione dopo tagli o modifiche. Se una clip è stata accorciata in modo distruttivo, misuri dalla nuova origine oppure ripristini il file originale. Entrambi i timestamp devono essere zero o positivi; un valore negativo viene rifiutato come misura non valida.
Legga l'offset con il segno corretto
Il calcolo è il tempo del picco di riferimento meno quello della seconda clip. Questa convenzione descrive dove deve iniziare il secondo file sulla timeline del primo. Un risultato positivo significa che il suono comune si presenta prima nella seconda clip: la ritardi quindi del numero di secondi restituito. Un risultato negativo indica che il suono si presenta dopo: anticipi la clip, il cui inizio cadrebbe prima dell'origine di riferimento per il valore assoluto ottenuto. Zero significa che i picchi hanno già lo stesso tempo relativo. Il campo di regolazione ripete l'interpretazione come delay_second_clip, advance_second_clip o already_aligned, evitando inversioni del segno nelle automazioni. L'offset viene arrotondato soltanto oltre dodici cifre decimali per eliminare residui in virgola mobile senza perdere precisione pratica. In un editor basato sui fotogrammi, converta i secondi con la frequenza reale del progetto e controlli poi le forme d'onda. Mantenga i secondi se è disponibile il posizionamento audio sotto il fotogramma.
Applichi e verifichi la sincronizzazione
Posizioni la prima clip nel punto di riferimento desiderato, quindi applichi l'offset all'inizio della seconda. Con un valore positivo sposti la seconda clip più avanti nel tempo della durata esatta; con un valore negativo la sposti prima della relativa grandezza. Se la timeline non consente posizioni precedenti a zero, trasli entrambe le clip mantenendo invariata la distanza. Riproduca l'evento comune e ispezioni le onde con forte ingrandimento: i picchi devono coincidere e silenziare una traccia non deve rivelare un doppio colpo o un breve eco. Il calcolo risolve uno spostamento iniziale costante, tipico di camere che hanno registrato senza interruzioni. Non misura deriva dell'orologio, velocità variabile, fotogrammi persi, frequenze di campionamento diverse o tagli interni. Nelle registrazioni lunghe verifichi un altro suono verso la fine. Se il primo picco è allineato ma il secondo no, corregga la deriva con time stretching o un flusso dedicato. Conservi i timestamp originali nelle note per riapplicare il posizionamento a proxy e master.
Casi d'uso
Sincronizzare le riprese di un'intervista
Allinei una seconda angolazione alla camera principale usando il ciak registrato da entrambi i microfoni.
Creare una timeline multicamera di un concerto
Usi un colpo di batteria condiviso per calcolare l'inizio di una camera mobile rispetto alla registrazione di riferimento.
Automatizzare la preparazione dei proxy
Memorizzi un offset deterministico in secondi che uno script possa riutilizzare per disporre le sorgenti corrispondenti.
Domande frequenti
Che cosa indica l'offset?
È il timestamp del picco della prima clip meno quello della seconda. Positivo significa ritardare la seconda clip, negativo anticiparla.
Che cosa accade con un timestamp negativo?
La richiesta termina con un errore di input, perché un evento rilevato non può precedere l'inizio del file sorgente.
Posso inserire frazioni di secondo?
Sì. I secondi decimali conservano la precisione sotto il fotogramma o a livello di campione disponibile nel rilevamento.
Questo strumento corregge la deriva di sincronizzazione?
No. Calcola un solo spostamento costante. Usi un altro evento successivo per verificare differenze di orologio o velocità.
Quanto costa un calcolo tramite API?
Ogni richiesta API costa $0.002. Il calcolo è deterministico e non usa servizi di rete.
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/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)Esempio di richiesta
{
"first_clip_spike_seconds": 12.48,
"second_clip_spike_seconds": 9.73
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.multi_cam_sync_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. |