Convertire timecode in frame
Passi dal timecode al numero di fotogramma e ritorno: 00:01:00:00 a 30 fotogrammi al secondo è il fotogramma 1800, contato da zero, così tagli, marcatori e sottotitoli cadono esattamente dove devono. Gratis nel Suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Direzione
- To frames
- Fotogrammi al secondo
- 30
- Timecode
- 00:01:00:00
- Fotogrammi
- 1800
- Ore
- 0
- Minuti
- 1
- Secondi
- 0
HH:MM:SS:FF ↔ totali
Come un timecode diventa numero di fotogramma
Il timecode senza salto fotogrammi etichetta ogni fotogramma con ore, minuti, secondi e una cifra di fotogramma all’interno del secondo corrente. Con una cadenza intera e costante, ogni secondo completo vale esattamente quel numero di fotogrammi, ogni minuto vale sessanta secondi e ogni ora 3600 secondi. La conversione quindi moltiplica la parte di orologio per la cadenza e aggiunge la cifra del fotogramma. Il conteggio parte da zero: 00:00:00:00 è il fotogramma zero, 00:00:01:00 a 30 al secondo è il fotogramma 30 e 00:01:00:00 il fotogramma 1800. Al contrario, i fotogrammi si separano con divisione intera e resto, e ciò che avanza torna a essere ore, minuti e secondi.
Dove serve e quali errori evitare
Gli assistenti al montaggio traducono le note di produzione scritte in ore, minuti, secondi e fotogrammi in marcatori, mentre i tecnici fanno l’opposto quando registrano intervalli di rendering che accettano solo numeri interi. Chi prepara sottotitoli converte i punti di entrata e uscita perché ogni battuta cada su un fotogramma valido, e i controlli di qualità scartano cifre di fotogramma impossibili prima della consegna. Gli errori tipici sono lo scarto di un fotogramma nell’ultima cifra, una cadenza diversa da quella del progetto e l’aspettativa di regole di salto fotogrammi, che qui non vengono applicate: il calcolo è sempre senza salto.
Dove la precisione al fotogramma fa la differenza
Gli assistenti di montaggio traducono spesso fogli di cue e note di produzione scritte in HH:MM:SS:FF in numeri di frame per i marker, mentre gli ingegneri fanno l'inverso quando registrano intervalli di render per una farm che comprende solo interi. Le pipeline di sottotitoli e cartelli convertono i punti di ingresso e uscita affinché le cue SRT o VTT cadano su frame legali per l'fps di consegna.
Gli script di QC possono rifiutare valori FF illegali prima che un pacchetto lasci la struttura, catturando un errore di incolla comune che passerebbe un validatore solo testuale. LMS e laboratori di scuole di cinema usano il percorso gratuito del browser affinché gli studenti esercitino l'aritmetica non-drop senza installare calcolatrici desktop che discordano sul conteggio a base zero.
Casi d'uso
Fogli di cue editoriali verso marker di frame
Converta note di produttore scritte come HH:MM:SS:FF in numeri totali di frame per marker, intervalli e job di render all'fps dichiarato del progetto.
Domande frequenti
È drop-frame o non-drop?
Solo non-drop. I punti e virgola nella stringa di ingresso sono accettati come separatori, ma non si applicano tabelle di salto drop-frame NTSC. Usi l'fps intero del Suo progetto.
Quanti fotogrammi ha un minuto a 30 fotogrammi al secondo?
Un minuto corrisponde a 1800 fotogrammi. Il conteggio parte da 00:00:00:00 come fotogramma zero, quindi 00:00:01:00 è il fotogramma 30 e 00:01:00:00 il fotogramma 1800 a quella cadenza.
Quali cadenze di fotogrammi posso usare?
Qualsiasi numero intero da 1 a 240 fotogrammi al secondo, come 24, 25, 30, 48, 50 o 60. Scelga la cadenza del Suo progetto e usi la stessa in ogni strumento che legge quel materiale.
Come riconverto un numero di fotogrammi in timecode?
Scelga la direzione inversa e indichi il totale dei fotogrammi con la cadenza del progetto. Con 1800 fotogrammi a 30 al secondo il risultato è 00:01:00:00, già completo di zeri iniziali.
Cosa succede se la cifra del fotogramma supera la cadenza?
La conversione viene rifiutata invece di passare in silenzio al secondo successivo. La cifra del fotogramma deve restare tra zero e la cadenza meno uno: a 30 fotogrammi al secondo, 00:00:00:30 non è un’etichetta valida.
Strumenti correlati
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/timecode-convert-frames \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"direction":"to_frames","framerate":30,"timecode":"00:01:00:00"}'const res = await fetch("https://api.kit.forhosting.com/video/timecode-convert-frames", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"direction": "to_frames",
"framerate": 30,
"timecode": "00:01:00:00"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/timecode-convert-frames",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"direction": "to_frames",
"framerate": 30,
"timecode": "00:01:00:00"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/timecode-convert-frames", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"direction":"to_frames","framerate":30,"timecode":"00:01:00:00"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"direction":"to_frames","framerate":30,"timecode":"00:01:00:00"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/timecode-convert-frames", 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
{
"direction": "to_frames",
"framerate": 30,
"timecode": "00:01:00:00"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.timecode_convert_frames",
"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. |
Note tecniche
Montatori, colorist, operatori di controllo qualità e ingegneri di pipeline passano continuamente dal timecode leggibile in stile SMPTE ai contatori interi di frame che NLE, render farm e strumenti di sottotitoli indicizzano davvero. Un errore di un frame sulla cifra FF o un disallineamento di framerate può collocare un taglio sul frame sbagliato, rompere un EDL o spostare una didascalia di un secondo intero. Questo convertitore accetta una stringa non-drop HH:MM:SS:FF più un framerate intero di progetto e restituisce il numero totale di frame da zero, oppure prende un contatore totale e ricostruisce un timecode con zeri a sinistra. Quando la cifra di frame FF è maggiore o uguale al framerate, la richiesta fallisce con invalid_input invece di avvolgere il valore in silenzio.
Come il timecode non-drop si mappa sul numero totale di frame
Il conteggio a base zero inizia a 00:00:00:00 come frame zero, così 00:00:01:00 a trenta frame al secondo è il frame trenta, e 00:01:00:00 a trenta fps è il frame mille ottocento. Il percorso inverso decompone con divisione intera e resto: FF è frames modulo fps; poi i secondi interi rimanenti si ripartiscono in ore, minuti e secondi con l'orologio usuale in base sessanta. Scelga l'fps intero che corrisponde al Suo progetto (ventiquattro, venticinque, trenta, quarantotto, cinquanta, sessanta e simili) e mantenga etichette coerenti su tutti gli strumenti che leggono lo stesso media. Il timecode non-drop in stile SMPTE etichetta ogni frame con ore, minuti, secondi e una cifra di frame all'interno del secondo corrente. A un framerate intero costante fps, ogni secondo completo contribuisce esattamente con fps frame, ogni minuto con sessanta secondi e ogni ora con tremila seicento secondi. La conversione moltiplica quindi la parte orologio dell'etichetta per fps e aggiunge la cifra di frame: frames è uguale a ((ore per tremila seicento più minuti per sessanta più secondi) per fps) più FF. Questo endpoint implementa solo quell'aritmetica non-drop; non applica le regole di salto drop-frame NTSC per ventinove virgola nove sette, perché tali regole cambiano l'etichetta senza modificare allo stesso modo la formula sottostante del conteggio.
Contratto di ingresso, regole di validazione e campi di risposta
Le ore possono andare da zero a novemilanovecentonovantanove; minuti e secondi devono stare tra zero e cinquantanove. L'inverso con frames mille ottocento e lo stesso fps ricostruisce 00:01:00:00. Invii con POST un corpo JSON con direction, framerate e timecode oppure frames. La direzione to_frames (alias frames, tc_to_frames) richiede una stringa di timecode HH:MM:SS:FF; due punti o punto e virgola sono accettati come separatori, ma la matematica è sempre non-drop. La direzione to_timecode (alias timecode, frames_to_tc) richiede un campo frames intero non negativo. Il framerate deve essere un intero da uno a duecentoquaranta frame al secondo. La regola editoriale critica si applica alla cifra di frame: FF deve soddisfare zero minore o uguale a FF e FF strettamente minore di framerate. In caso di successo il corpo ripete direction e framerate, restituisce un timecode normalizzato con zeri a sinistra, l'intero totale di frames, i componenti decomposti di ore, minuti, secondi e frame, e una breve stringa di formula che riafferma l'identità non-drop. Esempio: direction to_frames, framerate trenta, timecode 00:01:00:00 produce frames mille ottocento.
Dove un'API di timecode a frame esatto crea valore
Poiché l'implementazione è pure parse di livello A, ogni chiamata riuscita costa il prezzo base pubblicato $0.002 senza token di modello e senza rete in uscita, e la validazione fallita non consuma il saldo.
Casi di integrazione
Validazione di sottotitoli e controllo qualità
Rifiuti cifre di frame illegali (FF ≥ fps) prima del packaging e ricostruisca il timecode con padding da punti di ingresso e uscita interi degli strumenti di export.
Aula e test unitari di pipeline
Offra a studenti e job CI un oracolo non-drop deterministico che corrisponde al frame zero a 00:00:00:00 su browser e API.
Domande tecniche
Come converto HH:MM:SS:FF in un numero totale di frame?
Invii direction to_frames, un framerate intero (fps) e un timecode come 00:01:00:00. L'API restituisce frames = ((H×3600+M×60+S)×fps)+FF con un timecode normalizzato e riempito.
Come riconverto un contatore di frame in timecode?
Invii direction to_timecode, lo stesso framerate e un intero frames non negativo. La risposta ricostruisce HH:MM:SS:FF con zeri a sinistra e i componenti ora, minuto, secondo e frame.
Cosa succede se la cifra di frame supera il framerate?
L'attività fallisce con invalid_input. FF deve soddisfare 0 ≤ FF < framerate; ad esempio 00:00:01:30 è illegale a 24 fps. L'input non valido non è fatturato.
Quanto costa il convertitore da timecode a numero di frame?
Lo strumento nel browser è gratuito. Le richieste API usano il saldo prepagato KIT a $0.002 per chiamata riuscita; l'input non valido non è fatturato.