Conversione FPS video: fotogrammi e durata
Questo calcolatore mostra che cosa accade quando un filmato passa da una frequenza di riproduzione a un’altra.
Esegui gratis nel browser
Inserisca la frequenza di origine, quella di destinazione e il numero iniziale di fotogrammi per sapere se una conversione a durata invariata richiede duplicazioni o eliminazioni, ottenere il conteggio intero di destinazione più vicino e conoscere la durata esatta quando vengono conservati tutti i fotogrammi originali. Può così pianificare conforming, variazioni di velocità, animazione, archiviazione e consegna prima di aprire un programma di montaggio o transcodifica.
Scelga tra durata invariata e fotogrammi conservati
La conversione della frequenza può indicare due operazioni diverse, e confonderle causa spesso errori di temporizzazione. Una conversione che preserva la durata mantiene il tempo di riproduzione vicino a quello originale. Il calcolatore moltiplica il numero di fotogrammi sorgente per il rapporto tra frequenza di destinazione e frequenza di origine. Una frequenza superiore richiede più immagini visualizzate, quindi occorre duplicarle o sintetizzarle; una frequenza inferiore ne richiede meno, quindi occorre eliminarle o fonderle. Poiché un video reale non può contenere una frazione di fotogramma, il valore ideale viene arrotondato all’intero più vicino e vengono mostrati entrambi i risultati. L’alternativa conserva ogni fotogramma e lo riproduce alla frequenza di destinazione, modificando la durata. Convertire un filmato da 24 fps per una consegna a 30 fps non equivale a interpretare gli stessi 240 fotogrammi a 30 fps: la prima operazione mira a mantenere dieci secondi, la seconda ne dura otto.
Legga i conteggi e i risultati temporali
Parta dal campo dell’azione: indica duplicazione quando la frequenza di destinazione è maggiore, eliminazione quando è minore e nessuna azione quando coincidono. Il rapporto di conversione è la frequenza di destinazione divisa per quella di origine. Applicato al conteggio iniziale, produce la quantità ideale necessaria a preservare esattamente la durata. Il conteggio di destinazione è l’intero utilizzabile più vicino. I valori da duplicare o eliminare confrontano questo risultato arrotondato con l’originale, quindi solo uno può essere positivo. La durata sorgente divide il numero di fotogrammi per la frequenza sorgente; la durata a conteggio invariato divide lo stesso numero per la frequenza di destinazione. La variazione sottrae la durata originale: un valore negativo accorcia il filmato, uno positivo lo allunga. I tempi sono arrotondati a nove cifre decimali per fornire risultati stabili, mentre il calcolo usa gli input numerici completi.
Applichi il calcolo ai flussi di produzione
Usi il risultato per la pianificazione, non come descrizione di uno specifico algoritmo di interpolazione. Lo strumento indica quante posizioni immagine richiede il rapporto tra frequenze, ma non sceglie se ripetere fotogrammi, fondere immagini vicine, stimare il flusso ottico o variare la velocità. Queste scelte influenzano movimento, cadenza, audio e costo di rendering. Per una consegna editoriale, confronti il conteggio arrotondato con la lunghezza prevista della timeline prima della transcodifica. Nell’animazione, il numero di duplicazioni aiuta a stimare quante volte si ripeteranno disegni mantenuti o fotogrammi renderizzati. Nel restauro, la durata a conteggio invariato mostra l’esatto cambio di velocità ottenuto interpretando materiale storico a una frequenza moderna. Sono accettate frequenze decimali come 23.976 e 29.97 e frequenze intere. Entrambe devono essere finite e positive; il conteggio deve essere un intero positivo sicuro. L’API addebita $0.002 per calcolo e il browser utilizza la stessa logica deterministica.
Casi d'uso
Pianificare una conversione di consegna
Stimi il conteggio intero di destinazione e i fotogrammi duplicati o eliminati prima di esportare un master a un’altra frequenza.
Calcolare la durata del conforming
Determini la durata di un filmato quando tutti i fotogrammi restano, ma vengono riprodotti a una frequenza diversa.
Controllare tempi di animazione e archivio
Confronti rapporti, regolazioni e variazioni di durata per animazione, restauro o materiale storico.
Domande frequenti
Quanto costa il calcolo?
Il prezzo dell’API è $0.002 per calcolo. Può anche eseguire il calcolo di questa pagina nel browser.
Perché il conteggio ideale può avere decimali?
Il rapporto tra frequenze può generare una quantità frazionaria. Poiché il video contiene fotogrammi interi, il valore utilizzabile viene arrotondato all’intero più vicino.
Duplicare significa creare copie identiche?
No. Servono posizioni aggiuntive, ma un programma può riempirle con ripetizione, fusione, interpolazione o un altro metodo.
Come cambia la durata conservando i fotogrammi?
Ogni fotogramma viene letto alla frequenza di destinazione. Una frequenza maggiore accorcia la riproduzione; una minore la allunga.
Posso inserire frequenze come 23.976 o 29.97?
Sì. Sono accettate frequenze decimali finite e positive. Usi i valori precisi richiesti dal Suo flusso di lavoro.
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/framerate-convert \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"source_framerate":24,"target_framerate":30,"frame_count":240}'const res = await fetch("https://api.kit.forhosting.com/video/framerate-convert", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"source_framerate": 24,
"target_framerate": 30,
"frame_count": 240
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/framerate-convert",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"source_framerate": 24,
"target_framerate": 30,
"frame_count": 240
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/framerate-convert", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"source_framerate":24,"target_framerate":30,"frame_count":240}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"source_framerate":24,"target_framerate":30,"frame_count":240}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/framerate-convert", 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
{
"source_framerate": 24,
"target_framerate": 30,
"frame_count": 240
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.framerate_convert",
"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. |