How to run ffmpeg command in PHP

20,164

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();
Share:
20,164
PreeT
Author by

PreeT

Updated on July 09, 2022

Comments

  • PreeT
    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() and shell_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");