I have Windows XP, Apache, PHP 5.3 and ffmpeg working fine. I need to convert flv to avi or vice versa without using the exec()
command. Is this possible?
Thank you.
edit : i hope someone could edit the ffmpeg source and implement an exec function into the php extension so we could just add the parameters to a function (ex $fmpeg->exec('exec parameters here'); ) so the exec is executed directly from the extension ...
and compile those file :p
You will need to exec somewhere. If you can not do it on your host computer another solution is to have another system download convert and then upload the converted video and repeat. A more idea solution would be post to another online account convert and download. Between those options the first would be scalable.
Neither of these solutions are off the shelf that I know about. They would need to be created.
I believe the reason the format is not processed in an open PHP or Perl is because of potential licensing issues. FLV is not an open source format. So the perl and php frameworks make a exec request to process the video using ffmpeg
Maybe you can connect to ssh in php and execute commands there.
There is a version of ffmpeg for PHP:
http://ffmpeg-php.sourceforge.net/
It's not possible, at least there seems no example where
ffmpeg
runs without some type of system call (e.g.exec
,system
) from PHP.Edit: One option is using the dreaded
safe_mode
. Refer to the manual onexec
:In theory you can place the ffmpeg binary in an arbitrary directory and give the path of that directory to the
safe_mode_exec_dir
. That way users will only be able to run executables in that directory. But you must try and see the implications of such a setup in real life...Regarding your PHP extension request: PHP ffmpeg extension is just an informational one. If you need one that can do things on actual files, you will need to build a new extension based on
ffmpeg
library.And if you plan to do this on a shared hosting, you are most probably out of luck. A standard issue shared hosting provider wouldn't provide video functionality like this. Video hosting and processing requires specialized hosting at best.
Another option would be to utilize Suhosin. You could then at least limit where exactly the system call can from and in turn limit access to that directory.
Here's an basic example of a vhost.conf config where shell_exec is blocked everywhere in your domain except ffmpeg-folder utilizing Suhosin
Sounds like a plan to me.