Inserire sottotitoli in un video con Rendi e un file SRT

Scopri come inserire sottotitoli in un video con Rendi: prepara l'SRT, invia il job FFmpeg e verifica l'MP4 prima di automatizzare il rendering.

Friday, September 11, 2026Omid Saffari
Inserire sottotitoli in un video con Rendi e un file SRT

Per inserire sottotitoli in un video partendo da un filmato approvato e da un file SRT già verificato, non serve aggiungere alla propria infrastruttura un worker per l'elaborazione video. Rendi esegue come job API il normale filtro per sottotitoli di FFmpeg, restituisce un ID di comando e, al termine del rendering, mette a disposizione l'output archiviato. Il confine da tenere presente è semplice: questa procedura imprime sottotitoli esistenti nei pixel. Non trascrive l'audio e non stabilisce se il testo è corretto.

Come inserire sottotitoli in un video: la risposta breve

Conviene imprimere il file SRT nel video quando tutti devono vedere gli stessi sottotitoli, indipendentemente da come il player gestisce le tracce. È invece meglio mantenere separato l'SRT quando chi guarda deve poter disattivare i sottotitoli, cambiare lingua o usare i controlli di accessibilità del player.

Con Rendi, il flusso operativo è questo:

  1. Verificare insieme il video definitivo e il file SRT.
  2. Rendere entrambi i file disponibili tramite URL accessibili da Rendi, oppure caricare prima su Rendi quelli locali.
  3. Inviare il comando FFmpeg documentato per i sottotitoli.
  4. Eseguire il polling dell'ID di comando oppure affidare a un webhook la ricezione del risultato finale.
  5. Controllare i metadati dell'MP4 e guardare per intero l'output prima di inviare altri job.

L'ordine è importante. Anche un encoder che termina correttamente può produrre un file inutilizzabile se un sottotitolo compare in anticipo, un nome è sbagliato o il testo finisce sotto l'interfaccia della piattaforma.

Workflow architetturale in cui VIDEO e SRT entrano nella fase POST, seguita da SUCCESS e da un MP4 in uscita
Rendi trasforma due input già verificati in un job FFmpeg asincrono e rende disponibile l'MP4 completato dopo lo stato SUCCESS.

Che cosa fa davvero Rendi

Rendi gestisce la sala macchine, non il lavoro editoriale. Riceve via API HTTP la stessa istruzione FFmpeg che verrebbe eseguita in locale. La richiesta funziona come un ordine di lavorazione: gli alias di input indicano dove si trovano i materiali, la stringa FFmpeg descrive l'operazione e l'alias di output assegna un nome al risultato.

Lo schema attuale della richiesta richiede ffmpeg_command e output_files. Le chiavi di input iniziano con in_, quelle di output con out_; gli stessi nomi ricompaiono nel comando tra doppie parentesi graffe. Quando l'invio va a buon fine, la risposta contiene un command_id, cioè l'identificativo con cui seguire il job.

Nel caso più semplice, video e SRT sono disponibili tramite URL HTTP pubblici o firmati e a scadenza, con il nome del file in coda all'indirizzo. Un percorso locale sul portatile non è un URL di input. Per i file locali Rendi offre anche un flusso di caricamento diretto multipart, compatibile con file fino a 5 TB, ma si tratta di una fase preparatoria distinta.

Sottotitoli impressi e tracce selezionabili producono output diversi

I sottotitoli impressi entrano a far parte di ogni fotogramma decodificato. L'aspetto rimane quindi prevedibile, ma la scelta diventa definitiva: correggere un refuso richiede un nuovo rendering e chi guarda non può nascondere il testo.

Una traccia di sottotitoli selezionabile resta invece separata dalle immagini. Per inserire una traccia soft in un MP4, lo stesso esempio di Rendi consiglia mov_text e non applica il filtro video. In questo modo si conserva il controllo dell'utente e il testo non viene incorporato nell'immagine.

Confronto architetturale tra sottotitoli impressi in una lastra video e sottotitoli selezionabili conservati in una traccia separata
Impressi significa SEMPRE VISIBILI. Selezionabili significa ATTIVABILI O DISATTIVABILI. Il comportamento in riproduzione va deciso prima del rendering.

La regola pratica è netta: per un master di revisione o un file destinato ai social, i sottotitoli impressi funzionano quando serve uniformità visiva. L'SRT originale va comunque conservato; dove contano accessibilità, ricerca, traduzione o libertà di scelta, è opportuno fornire anche una traccia selezionabile o un file sidecar.

Controllare l'SRT prima di avviare il rendering

Il rendering meno costoso è quello che non bisogna ripetere. L'SRT va controllato sul montaggio definitivo, non su un'esportazione precedente. Occorre verificare l'ordine dei cue, i tempi di inizio e fine, la grafia di nomi e numeri, le interruzioni di riga volute e un campione rappresentativo di caratteri accentati o non latini. Vanno inoltre individuati i sottotitoli che si sovrappongono alle grafiche nella fascia inferiore o si avvicinano troppo al bordo basso.

In questa fase non va confusa la trascrizione tramite AI con il rendering. Il riconoscimento vocale può generare una prima bozza dell'SRT a monte, ma il file dovrebbe entrare in questo flusso solo dopo l'approvazione del testo e della sincronizzazione da parte di una persona o di un processo di revisione affidabile. Qui Rendi si occupa esclusivamente del rendering.

Inviare a Rendi un job con uno stile definito

Questo esempio in Node.js usa il video e l'SRT di esempio pubblici di Rendi, quindi per eseguirlo serve soltanto RENDI_API_KEY. Il payload rispetta i nomi dei campi e le regole degli alias presenti nell'OpenAPI attuale di Rendi. I valori di force_style producono testo bianco con contorno nero e margine inferiore, mentre libx264 e AAC generano l'MP4 descritto nella procedura Rendi per i sottotitoli.

JavaScript
const headers = {
  "X-API-KEY": process.env.RENDI_API_KEY,
  "Content-Type": "application/json",
};

const submit = await fetch("https://api.rendi.dev/v1/run-ffmpeg-command", {
  method: "POST",
  headers,
  body: JSON.stringify({
    input_files: {
      in_video: "https://storage.rendi.dev/sample/big_buck_bunny_720p_16sec.mp4",
      in_srt: "https://storage.rendi.dev/sample/subtitles.srt",
    },
    output_files: { out_1: "subtitled.mp4" },
    ffmpeg_command:
      "-i {{in_video}} -vf \"subtitles={{in_srt}}:force_style='FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,BorderStyle=1,Outline=2,Shadow=0,MarginV=36'\" -c:v libx264 -crf 20 -c:a aac -b:a 192k {{out_1}}",
  }),
});

if (!submit.ok) throw new Error(await submit.text());
const { command_id } = await submit.json();

for (;;) {
  const poll = await fetch(
    `https://api.rendi.dev/v1/commands/${command_id}`,
    { headers: { "X-API-KEY": process.env.RENDI_API_KEY } },
  );
  const job = await poll.json();
  if (job.status === "SUCCESS") {
    console.log(job.output_files.out_1);
    break;
  }
  if (job.status === "FAILED") throw new Error(job.error_message);
  await new Promise((resolve) => setTimeout(resolve, 2000));
}

Il filtro per i sottotitoli modifica i fotogrammi, quindi è necessario ricodificare il video. Stile, codec e qualità possono essere regolati, ma ogni modifica va considerata un nuovo output da verificare. Il cheatsheet FFmpeg ufficiale di Rendi documenta anche l'uso di font personalizzati tramite fontsdir e FontName. Prima di applicarli a un'intera libreria, bisogna provare il font e il set di glifi effettivi.

Che cosa è stato verificato davvero

L'11 settembre 2026, l'endpoint, i campi della richiesta, le regole degli alias, i valori di stato e i campi della risposta indicati sopra sono stati verificati sul file OpenAPI in produzione di Rendi. Lo stesso filtro per sottotitoli è stato inoltre eseguito in locale con FFmpeg 8.0.1 sul video e sull'SRT di esempio pubblici di Rendi. Il risultato è stato un MP4 di 16 secondi, 1280 per 720, con video H.264 e audio AAC; in un fotogramma a cinque secondi era chiaramente visibile il sottotitolo atteso.

Non è stato inviato alcun job al cloud di Rendi perché nell'ambiente non era presente una chiave API Rendi. Il codice è stato verificato rispetto allo schema e l'operazione FFmpeg è stata provata in locale, ma non si dichiara un'esecuzione sul cloud.

Polling per i job brevi, webhook per quelli più lunghi

L'endpoint di stato di Rendi può restituire QUEUED, PROCESSING, PREPARED_FFMPEG_COMMAND, FAILED o SUCCESS. Un POST accettato non equivale a un video completato. Bisogna attendere uno stato finale, mostrare error_message in caso di errore e leggere l'output soltanto dopo il successo.

Rendi consiglia il polling per i job che dovrebbero concludersi in circa 30 secondi o meno e un webhook per le elaborazioni più lunghe. Il webhook contiene gli stessi dati del comando completato disponibili tramite polling. In produzione, il gestore del completamento deve essere idempotente, rispondere rapidamente e mantenere il polling come procedura di recupero in caso di mancata consegna del webhook.

Per gli output sensibili, su un piano a pagamento è possibile impostare is_private: true e richiedere un URL prefirmato durante il polling. L'archiviazione è pubblica per impostazione predefinita. Un file privato non ha un URL pubblico permanente e il link di download richiesto può avere una durata massima di 7 giorni.

Controllare l'output prima di avviare una lavorazione in batch

SUCCESS dimostra che FFmpeg ha terminato, non che i sottotitoli siano validi. Vanno controllati sia la risposta leggibile dalla macchina sia il video vero e proprio.

Per prima cosa bisogna verificare che output_files.out_1 esista e che il relativo storage_url sia raggiungibile. Durata, dimensioni, codec e formato restituiti vanno confrontati con quelli previsti per la consegna. Poi occorre guardare tutto il video, prestando particolare attenzione al primo e all'ultimo cue, allo scambio più rapido, alle interruzioni di riga, a nomi e numeri e ai sottotitoli vicini a stacchi di montaggio o sovrimpressioni grafiche.

Solo dopo questa verifica lo stesso preset di stile può entrare in coda. È utile conservare insieme la revisione del video sorgente, la revisione dell'SRT, il comando FFmpeg, l'ID del comando Rendi, l'ID del file di output e la decisione del revisore. È questo registro a trasformare una raccolta di rendering in un sistema di produzione.

Il costo dipende dai byte, non dai minuti

Rendi conteggia la dimensione complessiva dei media in input e in output. Nel suo esempio di prezzo, un input da 1 GB più un output da 0.5 GB corrispondono a 1.5 GB di elaborazione. Seguendo esattamente questo esempio, i 50 GB inclusi nel piano Free coprono 33 job completi e lasciano 0.5 GB, mentre i 250 GB del piano Pro di ingresso coprono 166 job completi e lasciano 1 GB.

Equazione architetturale del consumo di byte: 1 GB in input più 0.5 GB in output equivalgono a 1.5 GB utilizzati, accanto alle soglie Free di 50 GB e Pro di 250 GB
Rendi misura i byte letti e scritti. La sola durata del video non basta per determinarne il costo.

Il numero di job deriva aritmeticamente dall'esempio di Rendi e non costituisce un benchmark sui sottotitoli. Un MP4 con testo impresso può pesare di più o di meno a seconda del sorgente, delle impostazioni del codec e dell'output. Prima di stimare i volumi, bisogna misurare il totale effettivo di input e output.

Free costa $0 al mese, include 50 GB di elaborazione e limita ogni comando a 1 minuto di esecuzione. Il piano Pro di ingresso costa $25 al mese, include 250 GB e alza il limite per comando a 10 minuti. La panoramica completa dei prezzi di Rendi copre le configurazioni con maggiore capacità di calcolo e durata di esecuzione illimitata, evitando di ripetere qui l'intera matrice.

Il confronto davvero utile è operativo. Kapwing Pro è indicato a $16 per membro al mese con fatturazione annuale, oppure a $24 con fatturazione mensile. Per un'attività occasionale, un editor visuale è più semplice. Rendi è più adatto quando la finalizzazione dei sottotitoli è una fase ripetibile del sistema, avviata da risorse approvate e tracciata senza costringere un'altra persona ad aprire un editor.

I sette workflow che ne traggono più vantaggio

Non è la soluzione ideale per chiunque aggiunga sottotitoli. Il caso d'uso più adatto è quello di un team che dispone già di un SRT approvato e ripete di continuo il rendering finale.

PosizioneChi ne trae vantaggioWorkflow precisoPerché conviene
1Un team social che pubblica clip ricorrentiApprovare la trascrizione, applicare uno stile di sottotitoli salvato, generare un MP4 dopo ogni montaggio definitivo e inviare il risultato in revisioneElimina la ripetizione di caricamento, formattazione, esportazione e download, mantenendo coerenti tutte le versioni destinate alle piattaforme
2Un'agenzia di localizzazione che consegna master di revisioneAbbinare allo stesso sorgente ogni SRT approvato per una lingua, creare MP4 di revisione separati con i sottotitoli impressi e conservare i file originaliI clienti verificano sincronizzazione e posizione esattamente come le vedrà il pubblico, mentre l'agenzia mantiene modificabili le risorse linguistiche
3Un operatore di corsi con una libreria di lezioni in crescitaAvviare una versione sottotitolata dopo l'approvazione del master della lezione e dell'SRT, quindi confrontare durata e dimensioni restituiteTrasforma la finalizzazione dei sottotitoli in una fase di pubblicazione controllata, invece di affidare ogni lezione a un intervento manuale nell'editor
4Uno studio di podcast che ricava estratti videoPassare le clip approvate e gli SRT corretti dalla coda di riutilizzo a un unico preset per i sottotitoliGli editor possono concentrarsi su hook e tagli anziché ripetere l'esportazione finale dei sottotitoli
5Un team di assistenza che mantiene demo di prodottoRigenerare le demo sottotitolate ogni volta che cambia uno script approvato o una registrazione dell'interfacciaRende ogni revisione tracciabile tramite sorgente, revisione dei sottotitoli, ID di comando e output verificato
6Un'agenzia di automazione che lavora con n8n, Make o ZapierInviare il job Rendi dal workflow, attenderne l'esito tramite polling o webhook e passare l'URL archiviato alla fase approvata successivaAggiunge l'elaborazione dei media senza eseguire FFmpeg in un runtime di automazione con restrizioni
7Un team media che recupera filmati d'archivioTrovare il filmato sorgente corretto, allegare un SRT approvato e creare una versione con sottotitoli fissi per la revisione o i socialCollega recupero e consegna senza confondere la ricerca con il rendering; la recensione di Reelback approfondisce la fase di recupero

Tre prodotti che vale la pena costruire

1. Un sistema batch per sottotitoli coerenti con il brand

È l'opportunità più solida. Si può creare un portale mirato per content team e agenzie: URL del video accettato, SRT approvato, preset di stile con nome, pagina di revisione e MP4 scaricabile. Il prodotto vende ripetibilità e approvazione, non un editor generico.

Negli Stati Uniti, circa 1,900 ricerche mensili riguardano add subtitles to a video, mentre Kapwing Pro parte da $16 per membro al mese con fatturazione annuale. La domanda è abbastanza ampia da attirare utenti e il workflow ricorrente dei team è sufficientemente specifico da sostenere un prodotto focalizzato.

La versione minima vendibile richiede input tramite URL firmati, validazione dell'SRT, alcuni preset di brand bloccati, invio a Rendi, gestione dei webhook, metadati dell'output e approvazione o rifiuto da parte di una persona. Il problema è la difendibilità: un modulo costruito attorno a una singola chiamata FFmpeg si copia facilmente. Il valore duraturo deve arrivare dallo storico delle approvazioni, dalle regole di brand riutilizzabili, dall'abbinamento delle revisioni e da un recupero affidabile in caso di errore.

2. Un'API di rendering dei sottotitoli pensata per l'automazione

L'idea è offrire un solo endpoint stabile alle agenzie che non vogliono esporre i propri clienti alla sintassi FFmpeg. Il cliente invia l'URL del video, l'URL dell'SRT, il nome del preset e l'URL di callback; il servizio converte il preset in un comando verificato e restituisce un risultato normalizzato del job.

Burn subtitles into video registra 40 ricerche mensili negli Stati Uniti e un CPC di $8.16. Il volume è modesto, ma l'intento è molto specifico. La domanda PAA «Come posso imprimere in modo permanente i sottotitoli SRT in un video?» coincide quasi con la richiesta del prodotto.

Un MVP richiede autenticazione, validazione della richiesta, mappatura dei job Rendi, chiavi di idempotenza, verifica dei webhook, gestione dello stato compatibile con retry sicuri e registri di utilizzo. Il limite è la distribuzione: la sola ricerca non può sostenere l'attività e Rendi offre già l'API sottostante. Il wrapper deve distinguersi grazie a integrazioni per le agenzie, preset, osservabilità e assistenza.

3. Un controllo preliminare dei sottotitoli con consegna in due formati

Si può costruire un passaggio di revisione che verifica un SRT rispetto al video definitivo, quindi genera dalla coppia approvata un MP4 di revisione con sottotitoli impressi e un MP4 di consegna con traccia selezionabile. Il cliente è un team di localizzazione, formazione o media operations che continua a perdere il riferimento tra la revisione dei sottotitoli e il relativo montaggio.

La domanda PAA reale «Come si aggiungono sottotitoli SRT a un video?» compare insieme alla ricorrente confusione tra sottotitoli permanenti e selezionabili nei risultati attuali. Il prodotto risolve entrambi i lavori senza obbligare l'operatore a scegliere da solo i meccanismi del container.

L'MVP richiede parsing dei cue, confronto delle durate, anteprima dell'area sicura, ID di revisione, due procedure FFmpeg controllate e un registro dell'approvazione. Il limite è che la validazione di base di un SRT è una funzionalità, non un'azienda. Lo storico di revisione e i controlli sulla consegna devono offrire un valore sufficiente perché i team mantengano il prodotto nel proprio processo di pubblicazione.

Limiti e valutazione onesta

Rendi elimina da questo workflow la necessità di gestire l'infrastruttura FFmpeg, non la responsabilità editoriale. Non corregge una trascrizione, non sistema una sincronizzazione sbagliata, non sceglie interruzioni di riga leggibili e non decide se i sottotitoli impressi siano il formato di accessibilità appropriato.

Inoltre, il burn-in non può essere lossless. Il filtro per i sottotitoli modifica i fotogrammi, quindi il video viene ricodificato. Qualità, tempo di esecuzione e dimensione dell'output dipendono dal comando e dal sorgente. Il limite di sicurezza predefinito dell'API è 300 secondi, mentre il piano determina il massimo richiedibile. Per un job lungo o impegnativo sul piano computazionale serve quindi un piano con un tetto di esecuzione adeguato alla codifica effettiva.

Questo flusso non è indicato per una singola clip occasionale se basta già uno strumento gratuito nel browser. I sottotitoli non vanno impressi se chi guarda deve poterli attivare e disattivare. E uno stile non verificato non va applicato in batch. Rendi diventa interessante quando la stessa regola di finalizzazione, già approvata, deve essere eseguita in modo affidabile su molti contenuti.

Cosa fare lunedì

Prendere un video breve e approvato insieme al suo SRT definitivo. Rendere entrambi accessibili tramite URL, eseguire il payload di esempio con lo stile scelto, controllare i metadati restituiti e guardare l'intero MP4 sullo schermo più piccolo supportato. Solo dopo questa verifica il comando accettato va salvato come preset. A quel punto lo si può collegare alla fase in cui il workflow contrassegna già video e sottotitoli come approvati.

Come posso imprimere in modo permanente i sottotitoli SRT in un video?

Bisogna usare il filtro video subtitles di FFmpeg per disegnare il testo in ogni fotogramma, quindi codificare un nuovo video. In Rendi, il video sorgente e l'SRT vanno associati ad alias in_, il nome dell'MP4 a un alias out_; poi si invia il comando e si attende SUCCESS prima di scaricare e verificare il risultato.

Come si imprimono i sottotitoli in un video?

Si parte dal video definitivo e da un file di sottotitoli approvato. Il burn-in è adatto quando il testo deve rimanere sempre visibile; una traccia selezionabile è preferibile quando il controllo deve restare a chi guarda. Per Rendi, il percorso documentato usa -vf subtitles={{in_srt}} e ricodifica il video.

Come si aggiungono sottotitoli SRT a un video?

L'SRT può essere impresso nei pixel oppure allegato come traccia separata. Nel primo caso l'aspetto resta fisso ovunque, ma i sottotitoli non possono essere disattivati. Una traccia soft rimane modificabile e selezionabile. Rendi documenta sia il filtro subtitles per il burn-in sia mov_text per una traccia MP4 selezionabile.

Come si imprimono i sottotitoli in un video con HandBrake?

HandBrake offre un'interfaccia desktop con cui aggiungere un SRT esterno e contrassegnarlo per il burn-in. È una scelta sensata per attività manuali occasionali. Rendi risponde a un'esigenza diversa: inviare via API l'operazione FFmpeg equivalente quando il rendering fa parte di un sistema automatizzato.

Per integrare nella propria attività una pipeline media verificata di questo tipo, è disponibile la pagina dedicata ai sistemi di produzione AI.

Ultimo aggiornamento
11 set 2026
Categoria
Build

Preferisca questo sito su Google

Aggiungi omidsaffari.com come fonte preferita nella Ricerca Google

Segni omidsaffari.com come fonte preferita e Google lo mette in evidenza per lei in Top Stories, AI Overviews e AI Mode.

Claude Code evals: misurare davvero l’effetto di un plugin

Claude Code evals: misurare davvero l’effetto di un plugin

Scopri come i Claude Code evals confrontano un plugin con un controllo, misurano il delta, stimano i costi e trasformano una regressione in un gate CI.12 set 2026Build
Voice agent AI: diagnosticare la latenza con Cloudflare

Voice agent AI: diagnosticare la latenza con Cloudflare

Scopri come usare VoiceTurnMetrics di Cloudflare per isolare latenza, silenzi ed errori di un voice agent AI prima di cambiare modello o provider.12 set 2026Build
OpenAI Agents SDK o Agents API: quale runtime scegliere

OpenAI Agents SDK o Agents API: quale runtime scegliere

OpenAI Agents SDK o Agents API? Confronta controllo del runtime, sessioni gestite, costi, vincoli ZDR e migrazione per scegliere l’architettura giusta.11 set 2026Build
Prezzi Rendi (2026): scegli il piano in base ai byte, non ai minuti

Prezzi Rendi (2026): scegli il piano in base ai byte, non ai minuti

I prezzi Rendi partono da $0. Confronta limiti di elaborazione, storage, runtime e vCPU per scegliere il piano API FFmpeg adatto al tuo flusso video.11 set 2026Build
Codex CLI e worktree Git: guida pratica alle sessioni isolate

Codex CLI e worktree Git: guida pratica alle sessioni isolate

Codex CLI 0.154.0 crea sessioni isolate nei worktree Git, protegge il checkout principale e consente di integrare soltanto le modifiche approvate.10 set 2026Build
Claude Code sotto controllo: guida al limite di sforzo

Claude Code sotto controllo: guida al limite di sforzo

Scopri come usare maxEffortLevel in Claude Code 2.1.267 per imporre un tetto allo sforzo, verificare la policy e confrontare qualità, token e costi.10 set 2026Build
Agent browser: come registrare video QA con gli FPS giusti

Agent browser: come registrare video QA con gli FPS giusti

Scopri come registrare i flussi di un agent browser con agent-browser v0.37.0, scegliere da 1 a 60 fps e ottenere video QA chiari per revisioni e CI.8 set 2026Build
UltaHost VPS: prezzi di rinnovo e costi reali

UltaHost VPS: prezzi di rinnovo e costi reali

Scopri i prezzi di rinnovo di UltaHost VPS, i costi reali per ogni durata, gli extra dei pannelli e quando conviene davvero pagare in anticipo.7 set 2026Build
Newsletter

Una lettera, ogni domenica.Sistemi che funzionano, non hot take.

Settimanale. Niente spam. Si cancella quando vuole.