FFmpeg in LetsAI: Elaborazione Video e Audio con AI - Software & AI
Software & AI12 luglio 2025

FFmpeg in LetsAI: Elaborazione Video e Audio con AI

FFmpeg è uno di quei tool che tutti conoscono di nome ma pochi usano in produzione. Noi lo abbiamo messo al centro della pipeline di LetsAI per transcoding, conversione formati e compositing. Ecco come funziona quando deve gestire migliaia di file al giorno.

FFmpeg in LetsAI: Elaborazione Video e Audio con AI - Software & AI | i3k

Perché FFmpeg e non servizi cloud

La prima tentazione è stata usare un servizio gestito — AWS MediaConvert, Cloudflare Stream. Poi abbiamo fatto i conti: con il volume di file che LetsAI genera, il costo sarebbe stato insostenibile. Un video AI di 30 secondi a 1080p pesa 50-80MB. Centinaia di generazioni al giorno, terabyte al mese. FFmpeg gira sui nostri server, costa zero in licenze (LGPL), e fa tutto. Il trade-off è che devi sapere configurarlo — la documentazione non è user-friendly. Ma dopo qualche settimana abbiamo una pipeline solida che non ci ha tradito in 18 mesi di produzione.

La pipeline: dal file AI grezzo al formato finale

Quando un provider AI restituisce un video o audio, il formato è quasi sempre diverso da quello che serve. Un modello genera WebM, l'utente vuole MP4. Un altro genera WAV a 48kHz, serve MP3 a 44.1kHz. La pipeline: 1. Analisi automatica con ffprobe (codec, risoluzione, bitrate, durata) 2. Normalizzazione audio: loudness a -14 LUFS (standard streaming), rimozione silenzi 3. Transcoding video: H.264 per compatibilità universale 4. Generazione thumbnail: frame a 1/3 della durata, 640x360 5. Output nei formati richiesti (MP4, WebM, MP3, WAV, FLAC) Tutto in un worker BullMQ separato. Tempo medio: 8-15 secondi per un video di 30 secondi.

Concatenazione: unire clip AI in un video coerente

Una delle feature più richieste: generare più clip brevi e unirle. Sembra semplice — in realtà è un inferno se i clip hanno codec, risoluzioni o frame rate diversi. FFmpeg ha il filtro concat, ma funziona solo se gli input hanno le stesse specifiche. Nel mondo reale non succede. La soluzione: normalizziamo ogni clip prima (stessa risoluzione, codec, frame rate), poi concateniamo. Crossfade tra scene con xfade — 0.5 secondi bastano per dare continuità. Per l'audio: normalizzazione loudness, crossfade tra tracce, mix finale. Il comando FFmpeg è lungo 20-30 righe, generato dinamicamente in Node.js.

Errori comuni e come li abbiamo risolti

FFmpeg è potentissimo ma ti punisce. I nostri errori: Memoria: può mangiare tutta la RAM. Usiamo -threads 2 e -bufsize limitato. Max 2GB per worker. File corrotti: a volte i provider AI restituiscono file troncati. Check con ffprobe prima di tutto. Se corrotto, scartiamo e notifichiamo. Timeout: transcoding oltre 60 secondi viene killato. Meglio fallire veloce che bloccare la coda. Permessi: il worker gira come utente dedicato con accesso solo alla directory di lavoro. Ogni errore è diventato un test automatico nella CI. Oggi: 1.500 file/giorno, tasso errore sotto lo 0.3%.

Servizi Correlati

Scopri come applichiamo queste tecnologie nei nostri progetti enterprise.

Interessato?

Contattaci per ricevere un preventivo personalizzato.

Tutti gli articoli

Securvita S.r.l. — i3k.eu