- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- [PHP e FFMPEG] Processi in background
-
[PHP e FFMPEG] Processi in background
Salve a tutti,
non so se posto nella sezione giusta, in caso contrario i moderatori spostino pure.
Devo creare uno script PHP che converta un file video precedentemente caricato sul server e lo converta in 3 formato diversi.
Ad esempio ho ```
miovideo.avimiovideo.mp4
miovideo.ogv
miovideo.webmPer fare ciò ho utilizzato **FFMPEG **con tre comandi differenti: [PHP] exec(ffmpeg -i miovideo.avi miovideo.mp4); exec(ffmpeg -i miovideo.avi miovideo.ogv); exec(ffmpeg -i miovideo.avi miovideo.webm); [/PHP] Il problema è che PHP non passa alla seconda istruzione finché la prima non è completata; quindi se l'utente chiude il browser mentre è in corso la prima conversione le altre due non verranno portate a termine. Come posso ovviare? Posso fare in modo che vengano messe in "lista d'attesa" sul server e eseguite anche se l'utente ha chiuso il browser? Spero di essere stato chiaro
-
IMHO se l'utente chiudesse il browser c'è poco da fare se non è stato autenticato, e quindi il risultato potrebbe essere memorizzato in una sua area riservata, ma la vedo dura.
Una cosa che si vede in certi siti è l'avanzamento (barra) del processo, probabilmente per disincentivare l'utente ad andarsene. Una cosa che a occhio potrebbe essere veloce da fare è quella di cambiare e mostrare lo stato tra una exec e l'altra.
Tempo fa avevo fatto delle ricerche ed avevo trovato che con le ultime versioni di PHP è disponibile la programmazione parallela (quindi è meno sequenziale come anche tu scrivi, però metterà molto più sotto pressione il server), ma sfortunatamente è un argomento che non ho avuto modo di sviluppare.