我需要在PHP中运行ffmpeg命令。
但是php-fmpeg不再支持最新版本并且已经过时。
我想知道在web文件中运行ffmpeg命令的另一种方法(PHP、Javascript、jQuery)。
我尝试了PHP文件中的exec()
和shell_exec()
,但得到了空白输出。
echo shell_exec("/usr/local/bin/ffmpeg -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3");
和
echo shell_exec("ffmpeg -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3");
ffmpeg在stderr上输出,因此需要重定向输出。将2>&1
添加到您的命令行:
echo shell_exec("/usr/local/bin/ffmpeg -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3 2>&1");
然后您将看到输出。
使用FFMpeg''FFMpeg,您可以使用composer安装:"php FFMpeg/php FFMpeg":"0.5.*@dev"(FFMpeg'' FFMpeg Git Repository)
或
使用Symfony Process,您可以使用composer安装:"Symfony/Process":"~2.0"(Symfony流程文档)
或
使用proc_open()函数。
FFMpeg''FFMpeg使用Symfony进程和使用proc_open()函数:)
我更喜欢使用Symfony流程:
require 'vendor/autoload.php';
use Symfony'Component'Process'Process;
$process = new Process('ls -lsa');
$process->run();
首先必须在服务器中安装ffmpeg库。如果您的服务器中没有安装ffmpeg,则命令将不会运行。
以下链接将帮助您
https://ffmpeg.org/
https://www.resellerspanel.com/articles/dedicated-servers-articles/dedicated-servers-howtos/how-to-install-ffmpeg-on-a-dedicated-server/
然后运行该命令
exec("ffmpeg -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3");