开发者

PHP's exec() not executing command for FFmpeg

开发者 https://www.devze.com 2023-03-31 10:55 出处:网络
I have installed ffmpeg on my server and it works fine via my terminal. I\'m able to successfully convert a file to webm format, so I\'m sure the installation is fine. I\'m also sure that I only have

I have installed ffmpeg on my server and it works fine via my terminal. I'm able to successfully convert a file to webm format, so I'm sure the installation is fine. I'm also sure that I only have one installation of ffmpeg installed on my machine.

A problem arises when I try to convert files through PHP via PHP's exec(). When I run the same commands, I ran in the terminal, nothing happens. I looked开发者_如何学C around stackoverflow and other parts of the net for some help. I tried this to see the output:

exec($cmd, $out, $rv);
echo "output is:\n".implode("\n", $out)."\n exit code:$rv\n";

The output is: "output is: exit code:127"

The command I'm using is in this format:

ffmpeg -i "sample.mov" -vcodec libvpx  -r 30 -b "644k" -acodec libvorbis -ab 128000   -ar "44100" -ac 2 -s "352x198" "sample.webm"

I've tried replacing "ffmpeg" with the full path to FFmpeg but that did not work.

Why isn't the script running the command correctly and converting the files?

Thank you!


Error code 127 means the executable (ffmpeg) couldn't be found. Try specifying the whole path (you can that out find in your terminal with which ffmpeg) or compare the value of the PATH environment variable in your php script and terminal.


I have similar problem with ant target executions from php. I can't get whole output from ant command only first few rows and ant target was not executed. In other words is partial executed.

With bellow command I've managed to run it but output of the command is append to log_file.log.

$commandString = 'you_command_here >> log_file.log 2>&1 &';
$command = exec($commandString);

Hope this will work for you.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号