Verifica del timecode drop-frame e non-drop
Questo strumento riconosce la convenzione indicata dal separatore del timecode, ne verifica la validità per la frequenza fornita e converte l’etichetta in un conteggio assoluto dei fotogrammi con origine zero.
Esegui gratis nel browser
Considera i numeri omessi dai formati drop-frame derivati da NTSC, anziché trattare ogni minuto allo stesso modo. Il risultato riporta inoltre la frequenza nominale, quella effettiva di riproduzione, il numero di etichette omesse e i secondi trascorsi: informazioni utili per montaggio, controllo dei metadati e flussi multimediali automatizzati.
Che cosa omette davvero il timecode drop-frame
Il timecode drop-frame non elimina immagini video, non accorcia il programma e non cambia la velocità di riproduzione. Omette soltanto determinati numeri affinché l’orologio visualizzato resti vicino al tempo reale alle frequenze frazionarie derivate da NTSC. A 29.97 fps, contare come se la frequenza fosse esattamente 30 fps produce una deriva di circa 3.6 secondi all’ora. La convenzione corregge la differenza saltando le etichette 00 e 01 all’inizio di ogni minuto, tranne ogni decimo minuto. A 59.94 fps ne salta quattro e a 119.88 fps otto. Lo strumento interpreta un punto e virgola o un punto prima del campo fotogramma come drop-frame; i due punti indicano non-drop. Il conteggio corretto sottrae etichette che non devono esistere, non fotogrammi dal contenuto, e consente quindi di trasformare un riferimento leggibile in una posizione precisa con origine zero.
Come viene calcolato il numero di fotogrammi
Lo strumento associa innanzitutto la frequenza di riproduzione alla base nominale intera. Per esempio, 29.97 usa 30 etichette per secondo nominale, mentre 23.976 ne usa 24. Verifica quindi minuti, secondi e fotogrammi rispetto a tale base. In modalità non-drop, converte direttamente ore, minuti e secondi alla frequenza nominale e aggiunge il campo finale. In drop-frame, conta tutti i minuti completi precedenti, esclude ogni decimo minuto dalla correzione e sottrae due, quattro oppure otto etichette secondo la frequenza. Rifiuta anche etichette impossibili come 00:01:00;00 a 29.97, perché la prima valida in quel minuto è 00:01:00;02. I secondi trascorsi derivano dal conteggio corretto diviso per la frequenza frazionaria esatta, come 30000/1001, non per il valore arrotondato visualizzato. Resta così preservata la relazione pratica fra posizione e durata.
Scelga la convenzione indicata dalla sorgente
Una frequenza frazionaria non dimostra automaticamente che un timecode sia drop-frame. Un progetto a 29.97 o 59.94 può utilizzare etichette drop-frame oppure non-drop secondo i requisiti di produzione e le impostazioni delle apparecchiature. Per questo lo strumento legge il separatore finale invece di imporre una convenzione: usi punto e virgola o punto quando la sorgente specifica drop-frame, e i due punti per non-drop. Frequenze come 23.976, 24 e 25 non impiegano la correzione standard supportata qui, quindi la punteggiatura drop-frame genera un errore. In un flusso multimediale conservi insieme frequenza e timecode completo, perché rimuovere la punteggiatura può cancellare la convenzione. Usi il conteggio restituito come posizione da zero e aggiunga separatamente un eventuale offset iniziale. Questo controllo impedisce che una piccola deriva oraria diventi un errore visibile di sincronizzazione o montaggio.
Casi d'uso
Validare un elenco di decisioni di montaggio
Rifiuti etichette drop-frame impossibili e converta timecode validi in posizioni assolute confrontabili.
Controllare la durata di trasmissione
Confermi la convenzione di un programma derivato da NTSC e calcoli i secondi dal conteggio corretto.
Normalizzare i metadati multimediali
Registri convenzione, frequenza nominale, riproduzione esatta e fotogrammi prima di catalogazione o transcodifica.
Domande frequenti
Il timecode drop-frame elimina fotogrammi video?
No. Omette solo determinate etichette numeriche; tutti i fotogrammi registrati restano presenti.
Come viene selezionata la convenzione?
Un punto e virgola o un punto seleziona drop-frame. I due punti selezionano non-drop.
23.976 può usare il drop-frame?
Non con la convenzione standard implementata qui. Quel separatore a 23.976 restituisce un errore di input.
Perché 00:01:00;00 non è valido a 29.97?
Le etichette 00 e 01 vengono omesse all’inizio del minuto; la prima valida è 00:01:00;02.
Quanto costa una richiesta API?
Ogni richiesta API costa $0.002. Il calcolatore nel browser funziona senza una richiesta API.
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/video2/drop-frame-timecode-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"framerate":29.97,"timecode":"01:00:00;00"}'const res = await fetch("https://api.kit.forhosting.com/video2/drop-frame-timecode-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"framerate": 29.97,
"timecode": "01:00:00;00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video2/drop-frame-timecode-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"framerate": 29.97,
"timecode": "01:00:00;00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video2/drop-frame-timecode-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"framerate":29.97,"timecode":"01:00:00;00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"framerate":29.97,"timecode":"01:00:00;00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video2/drop-frame-timecode-check", 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
{
"framerate": 29.97,
"timecode": "01:00:00;00"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video2.drop_frame_timecode_check",
"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. |