Fotogramas a timecode
A 30 fotogramas por segundo, el fotograma 1800 es justo un minuto, escrito 00:01:00:00, y el fotograma cero siempre es 00:00:00:00. Pegue la etiqueta directamente en una hoja de pautas o en la revisión de subtítulos. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Ejemplo resuelto
- Cuadros
- 1 800
- Fps
- 30
- Horas
- 0
- Minutos
- 1
- Segundos
- 0
- Fotogramas
- 0
El índice de fotograma es el reloj nativo de todo editor no lineal, granja de render y herramienta de cartelas, pero las personas leen horas, minutos, segundos y fotogramas restantes. Este convertidor de fotogramas a timecode acepta un recuento entero no negativo y una cadencia positiva en fotogramas por segundo, y devuelve esos cuatro componentes más una etiqueta HH:MM:SS:FF rellenada con ceros. El conteo es de base cero: el fotograma cero es 00:00:00:00 y, a treinta fotogramas por segundo, mil ochocientos fotogramas equivalen exactamente a un minuto.
Cómo un recuento de fotogramas se convierte en HH:MM:SS:FF
El timecode no drop etiqueta cada imagen con horas, minutos, segundos y un dígito de fotograma dentro del segundo actual. A una cadencia positiva constante fps, cada segundo completo contiene exactamente esa cantidad de fotogramas, cada minuto contiene sesenta segundos y cada hora contiene tres mil seiscientos segundos. Partiendo de un recuento total N, el dígito de fotograma restante es el resto de N dividido entre fps, y el reloj de segundos enteros es el cociente entero suelo de N entre fps.
Esos segundos enteros se parten luego con aritmética de reloj habitual: los segundos son el cociente módulo sesenta, los minutos son el siguiente cociente módulo sesenta y las horas son lo que queda. El fotograma cero es siempre 00:00:00:00. A veinticuatro fotogramas por segundo, el fotograma veinticuatro es 00:00:01:00, y mil ochocientos fotogramas a treinta fotogramas por segundo son 00:01:00:00.
Este extremo implementa únicamente esa identidad no drop. No aplica tablas de salto drop-frame de NTSC para veintinueve punto nueve siete, porque esas reglas cambian la etiqueta escrita sin usar la misma fórmula de resto. Elija el fps positivo que coincida con el proyecto (veinticuatro, veinticinco, treinta, cuarenta y ocho, cincuenta, sesenta y cadencias enteras similares, o una cadencia fraccionaria cuando de verdad la necesite) y deje esa cadencia explícita en cada petición para que dos herramientas nunca asuman un valor por defecto a sus espaldas.
Qué datos indicar y qué resultado recibe
Se aceptan cadenas numéricas en ambos. La regla de producto estricta es la cadencia: fps debe ser estrictamente mayor que cero. El cero, los números negativos y los valores no finitos se rechazan con un mensaje de que la cadencia debe ser positiva, y esos fallos no se facturan.
Ejemplo: frames mil ochocientos y fps treinta produce hours cero, minutes uno, seconds cero, frames cero y timecode 00:01:00:00. Un segundo ejemplo, frames mil uno a veinticuatro fps, produce 00:00:41:17 porque mil uno dividido entre veinticuatro son cuarenta y un segundos con resto diecisiete. Las horas se rellenan al menos a dos dígitos y pueden crecer más allá de noventa y nueve; minutos, segundos y el dígito de fotograma se rellenan a dos.
Dónde aporta valor una calculadora de fotogramas a timecode
Los asistentes de edición suelen recibir un rango de render o una lista de marcadores como números de fotograma en bruto de una granja, un conform o un volcado de estadísticas, y necesitan una etiqueta humana que puedan leer en una hoja de cues o pegar en un comentario. Los pipelines de cartelas y subtítulos convierten puntos de entrada y salida enteros en HH:MM:SS:FF para que la revisión hable en el mismo reloj que usa el departamento de imagen.
Los scripts de control de calidad pueden afirmar que una etiqueta calculada coincide con el fps del proyecto antes de que un paquete salga de la instalación, capturando una hipótesis de cadencia errónea que de otro modo desplazaría cada cue una fracción de segundo. Los laboratorios de escuelas de cine y los complementos de LMS usan la vía gratuita del navegador para que el alumnado practique aritmética de resto de base cero sin instalar calculadoras de escritorio que discrepan sobre si el fotograma cero es la primera imagen.
Deje el fps explícito, trate el fotograma cero como 00:00:00:00 y obtendrá una etiqueta reproducible para notas, DAILIES y workers de borde sin levantar un NLE completo solo para dividir un recuento entre una cadencia.
Qué puede hacer con ella
Rangos de granja a etiquetas legibles
Convierta puntos enteros de entrada y salida de render de una granja o un conform en HH:MM:SS:FF rellenado con ceros que los asistentes puedan pegar en una hoja de cues.
Entrada y salida de subtítulos en tiempo de imagen
Convierta índices de fotograma de subtítulos en horas, minutos, segundos y fotogramas restantes al fps de entrega, para que la revisión hable en el reloj de imagen.
Ejercicios de resto en el aula y anclajes de CI
Ofrezca a estudiantes y suites de prueba un oráculo no drop determinista que asocie el fotograma cero con 00:00:00:00 y rechace una cadencia no positiva.
Preguntas frecuentes
¿Cómo convierto un recuento de fotogramas a timecode?
Envíe un entero frames no negativo y un fps positivo.
¿Qué ocurre si la cadencia de fotogramas no es positiva?
Las cadencias cero y negativas se rechazan y no se facturan.
¿El fotograma cero equivale a 00:00:00:00?
Sí. El conteo es de base cero. El fotograma cero a cualquier fps positivo es 00:00:00:00; el dígito restante recorre de 0 a fps menos uno en cadencias enteras.
¿Este convertidor usa timecode drop-frame?
No. La aritmética es únicamente no drop. Las cadencias fraccionarias se convierten a través de segundos totales, pero no se aplican tablas de salto drop-frame de NTSC.
¿Qué timecode corresponde al fotograma 24 a 24 fps?
Corresponde a 00:00:01:00. El recuento empieza en cero, así que los primeros 24 fotogramas, numerados desde cero, llenan el primer segundo y el fotograma 24 abre el siguiente.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/video/frames-to-timecode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"frames":1800,"fps":30}'const res = await fetch("https://api.kit.forhosting.com/video/frames-to-timecode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"frames": 1800,
"fps": 30
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/frames-to-timecode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"frames": 1800,
"fps": 30
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/frames-to-timecode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"frames":1800,"fps":30}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"frames":1800,"fps":30}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/frames-to-timecode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"frames": 1800,
"fps": 30
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.frames_to_timecode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_mb | 500 |
max_minutes | 60 |
max_megapixels | 3.9 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Si la cadencia es cero, negativa o de otro modo no positiva, la tarea falla con invalid_input en lugar de dividir por cero o inventar un reloj.
Campos de entrada, validación y el JSON que recibe de vuelta
Envíe por POST un cuerpo JSON con dos campos obligatorios: frames, un recuento total entero no negativo, y fps, una cadencia finita positiva en fotogramas por segundo. Los alias frames, frame_count, total_frames y n alimentan el recuento; los alias fps, frame_rate, framerate y rate alimentan la cadencia. Los campos ausentes, las cadenas vacías, los valores no numéricos y un recuento negativo fallan con invalid_input y nombran el campo. En caso de éxito el cuerpo devuelve hours, minutes, seconds y frames (el dígito restante FF), una cadena de timecode normalizada rellenada con ceros, el fps repetido, el total_frames original y una cadena breve de fórmula que reafirma la identidad de resto no drop. Los alias opcionales permiten que los scripts conserven nombres conocidos sin una capa de mapeo.
Dónde aporta valor una calculadora de fotogramas a timecode
Como la implementación es parse puro de nivel A, cada llamada exitosa cuesta el precio base publicado $0.002 sin tokens de modelo y sin red saliente, y la validación fallida no consume saldo.
Preguntas técnicas
¿Cuánto cuesta el convertidor de fotogramas a timecode?
La herramienta del navegador es gratuita. Las peticiones API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.