Verifichi la compatibilità del raccordo di un video in loop
Un video in loop convincente richiede che la fine ritorni naturalmente all’inizio.
Esegui gratis nel browser
Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.
Questo strumento confronta i valori medi di rosso, verde, blu e luminosità del primo e dell’ultimo fotogramma, trasforma le differenze in un punteggio chiaro e verifica se raggiunge la soglia scelta. Consente a montatori, motion designer e pipeline multimediali di individuare probabili stacchi prima di esaminare ogni esportazione fotogramma per fotogramma o pubblicare un loop che lampeggia nel punto di raccordo.
Prepari medie rappresentative dei fotogrammi
Calcoli innanzitutto una media di rosso, verde, blu e luminosità per il primo fotogramma e gli stessi quattro valori per l’ultimo. Tutti i canali, luminosità compresa, devono utilizzare la comune scala da 0 a 255, così il confronto resta coerente. Usi i fotogrammi decodificati che il pubblico vedrà davvero, dopo conversione colore, filtri, sovrapposizioni e compressione finale. Un confronto eseguito prima del color grading può nascondere un raccordo introdotto successivamente. Eviti anche miniature prodotte da servizi diversi, perché ridimensionamento e gestione colore possono modificare le medie in modo indipendente. Lo strumento richiede ogni canale in entrambi i gruppi: accettare un colore incompleto genererebbe un punteggio rassicurante che ignora una parte dell’immagine. Le medie riducono il fotogramma a un segnale compatto e rendono il test rapido e deterministico, ma non descrivono la posizione di oggetti o bordi. Consideri quindi il risultato come un controllo preliminare. Un esito positivo indica che colore e luce complessivi ritornano in modo simile; non garantisce che movimento, composizione o trama coincidano perfettamente al taglio.
Interpreti il punteggio e la soglia
Il calcolo misura la distanza euclidea tra le medie RGB e la normalizza rispetto alla massima distanza RGB possibile. Misura separatamente la differenza assoluta di luminosità e la normalizza sulla medesima scala da 0 a 255. Il colore determina l’80 per cento della similarità finale e la luminosità il 20 per cento: una variazione generale di tonalità tende a essere più evidente, pur assegnando un peso significativo a un lampo o a un calo di luce. Il punteggio va da 0 a 100 e 100 indica che tutti e quattro i valori coincidono esattamente. La soglia predefinita è 90. Un punteggio uguale o superiore viene indicato come compatibile; uno inferiore richiede una revisione. Scelga una soglia più alta per loop ambientali discreti, fondali di prodotto o schermi grandi. Una soglia minore può adattarsi a tagli rapidi, effetti glitch o piccole anteprime decorative. Mantenga la stessa soglia in un lotto per confrontare i risultati. La risposta include inoltre distanza colore e differenza di luminosità, così può capire se il problema principale deriva dal grading o dall’esposizione.
Utilizzi il risultato nel flusso di montaggio
Esegua il controllo dopo ogni esportazione candidata e indirizzi gli esiti negativi a un montatore o a una correzione automatica. Se prevale la differenza di luminosità, uniformare l’esposizione, aggiungere una breve dissolvenza o regolare la fine di una transizione può migliorare il raccordo. Se la distanza colore è elevata, esamini bilanciamento del bianco, variazioni di illuminazione, gradienti animati e compressione vicino al confine. Dopo una modifica, calcoli nuovamente le medie invece di riutilizzare misurazioni precedenti. In una pipeline, conservi punteggio, soglia e differenze insieme all’esportazione per rendere comprensibile ogni decisione. L’API costa $0.002 per elemento, mentre la versione nel browser è adatta ai controlli singoli. Visualizzi sempre in anteprima i loop importanti, anche quando superano il test. Due fotogrammi possono avere lo stesso colore medio ma disporre aree chiare e scure in angoli opposti; le medie non verificano posizione, movimento della camera, flusso ottico o continuità audio. Lo strumento è soprattutto un controllo economico che individua presto lampi e variazioni generali. Lo abbini a un’ispezione visiva o spaziale quando un risultato continuo è essenziale.
Casi d'uso
Controlli i loop per i social media
Segnali le animazioni esportate il cui fotogramma finale cambia colore o luminosità prima della pubblicazione.
Convalidi lotti di motion design
Applichi una sola soglia a numerosi fondali in loop e invii alla revisione umana solo le probabili discrepanze.
Regoli contenuti per schermi ambientali
Confronti versioni per atri, chioschi o palchi in cui un lampo ricorrente al raccordo sarebbe evidente.
Domande frequenti
Quali valori deve fornire?
Fornisca le medie di rosso, verde, blu e luminosità da 0 a 255 per il primo e l’ultimo fotogramma.
Che cosa accade se manca un canale?
La richiesta restituisce un errore di input non valido invece di calcolare un punteggio parziale o fuorviante.
Quale punteggio indica un raccordo compatibile?
La soglia predefinita è 90; Lei può scegliere qualsiasi valore da 0 a 100 in base alla politica di revisione.
Un esito positivo garantisce un loop perfetto?
No. Il test misura colore e luminosità medi, non posizione, movimento, allineamento delle trame o continuità audio.
Quanto costa il controllo tramite API?
Ogni elemento costa $0.002 tramite API. Il controllo nel browser è disponibile per verifiche interattive singole.
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/loop-seamless-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"first_frame":{"red":124,"green":118,"blue":110,"brightness":117.6},"last_frame":{"red":126,"green":117,"blue":112,"brightness":118.1}}'const res = await fetch("https://api.kit.forhosting.com/video/loop-seamless-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"first_frame": {
"red": 124,
"green": 118,
"blue": 110,
"brightness": 117.6
},
"last_frame": {
"red": 126,
"green": 117,
"blue": 112,
"brightness": 118.1
}
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/video/loop-seamless-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"first_frame": {
"red": 124,
"green": 118,
"blue": 110,
"brightness": 117.6
},
"last_frame": {
"red": 126,
"green": 117,
"blue": 112,
"brightness": 118.1
}
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/video/loop-seamless-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"first_frame":{"red":124,"green":118,"blue":110,"brightness":117.6},"last_frame":{"red":126,"green":117,"blue":112,"brightness":118.1}}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"first_frame":{"red":124,"green":118,"blue":110,"brightness":117.6},"last_frame":{"red":126,"green":117,"blue":112,"brightness":118.1}}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/video/loop-seamless-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
{
"first_frame": {
"red": 124,
"green": 118,
"blue": 110,
"brightness": 117.6
},
"last_frame": {
"red": 126,
"green": 117,
"blue": 112,
"brightness": 118.1
}
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "video.loop_seamless_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. |