Page 1 of 1

Server-Side FFMPEG Conversion

Posted: Thu Dec 06, 2007 2:15 pm
by JustinMs66
I have a website i am working on that allows you to upload videos to it.
I use FFMPEG to convert the video to an flv, after upload, so the flash player can play it easily.

However i have a problem. i run a system command for ffmpeg using exec();. and it does work, but the page is loading for however long the conversion takes, as well as if the user closes the page, it will not fully convert.

What i want:
- once the video is uploaded, it sends a request to the server to do the conversion
- the conversion is done server-side and has nothing to do with the client-side (the user can close the browser window)
- code needs to be executed once the conversion is completed

now i have had a very hard time trying to figure this out, especially with the part where code is executed after the conversion is finished.

can anyone give me some ideas please?

Posted: Thu Dec 06, 2007 3:00 pm
by John Cartwright
What i want:
- once the video is uploaded, it sends a request to the server to do the conversion
I would probably create a cron job that monitors a database for new entries that needs to be converted.
- the conversion is done server-side and has nothing to do with the client-side (the user can close the browser window)
See above
- code needs to be executed once the conversion is completed
Something I'm not understanding here?

Code: Select all

exec(' ... ffmpeg .. ');

echo 'I wont be run until the exec is finished';

Posted: Thu Dec 06, 2007 3:27 pm
by VladSun
Use ignore_user_abort() and put the process in background.

Posted: Thu Dec 06, 2007 3:32 pm
by Ollie Saunders
Send a header('Location:... and redirect away without exiting, the process will continue to run. You will need to check you have max_execution_time ini set appropriately and ignore_user_abort() is, as mentioned, worthy of consideration.

Posted: Thu Dec 06, 2007 3:44 pm
by JustinMs66
VladSun wrote:Use ignore_user_abort() and put the process in background.
ok thank you, i implimented it, but it does nothing yet, but how would i go about putting the process in the background? (linux server)

Posted: Thu Dec 06, 2007 3:49 pm
by VladSun
Almost the same posting several days ago:
viewtopic.php?t=76522

There is a link in it ponting to nearly the same question ;)