Progettazione distribuita per accelerare l'elaborazione dei video

1

Attualmente ho un server web che esegue Django, che prende una serie di immagini da un utente, le carica in un secchio Amazon S3 , e infine chiama un'istanza Amazon Lambda , che esegue uno script python che usa ffmpeg per creare un video dalla serie di immagini e caricarle sullo stesso bucket di archiviazione.

Il problema è che la creazione di un video semplice da 15 file JPEG (risoluzione 1920 x 1080) richiede circa 40 secondi, ciascuno dei quali è fatturato su AWS Lambda. Precedentemente questa compilazione con ffmpeg si svolgeva sullo stesso server che esegue la nostra app web django e impiegava circa 10 secondi per video, ma doveva essere spostata su Amazon perché usava regolarmente > 600 MB di ram e il nostro host web ci consente solo 512MB.

Il fatto che il processo sia stato eseguito molto più rapidamente prima mi fa credere che ci sia un design migliore di quello che ho implementato, non sono sicuro di quale potrebbe essere il design.

Le cose che sto considerando:

  • Il video sarebbe stato creato più velocemente se avessi scritto il lambda in C ++ / Java? Penso di no, perché il binario ffmpeg sta facendo tutto il lavoro pesante, e non il pitone.
  • Questo dovrebbe essere spostato su un'istanza di Amazon EC2? In tal caso, quali specifiche della macchina accelereranno questo processo? (Stessa RAM, CPU migliore?)

Che cosa ne pensi?

    
posta John Dorian 24.02.2016 - 04:21
fonte

0 risposte

Leggi altre domande sui tag