How to run ffmpeg command in PHP
Solution 1
ffmpeg outputs on stderr, so you need to redirect the output. Add 2>&1
to your command line:
echo shell_exec("/usr/local/bin/ffmpeg -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3 2>&1");
Then you will see the output.
Solution 2
use FFMpeg\FFMpeg, you can install with composer: "php-ffmpeg/php-ffmpeg": "0.5.*@dev" (FFMpeg\FFMpeg Git Repository)
Or
use Symfony Process, you can install with composer: "symfony/process" : "~2.0" (Symfony Process Documentation)
Or
use proc_open() function.
FFMpeg\FFMpeg used Symfony Process and Symfony Process used proc_open() function :)
I prefer to use Symfony Process:
require 'vendor/autoload.php';
use Symfony\Component\Process\Process;
$process = new Process('ls -lsa');
$process->run();
PreeT
Updated on July 09, 2022Comments
-
PreeT almost 2 years
I need to run the ffmpeg command in the PHP.
But php-ffmpeg is no more supports the latest version and out of date.
May i know alternate way to run the ffmpeg command in the webfile (PHP,Javascript,jQuery).
I try the
exec()
andshell_exec()
in the PHP file but gets the blank output.echo shell_exec("/usr/local/bin/ffmpeg -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3");
and
echo shell_exec("ffmpeg -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3");