【问题标题】:How to run ffmpeg command in PHP如何在 PHP 中运行 ffmpeg 命令
【发布时间】:2015-05-08 02:45:18
【问题描述】:

我需要在 PHP 中运行 ffmpeg 命令。

但是 php-ffmpeg 已经不再支持最新版本和过时了。

我可以知道在 web 文件(PHP、Javascript、jQuery)中运行 ffmpeg 命令的替代方法吗?

我在 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");

【问题讨论】:

  • 在服务器端你可以试试exec('ffmpeg .....');
  • @Santa'shelper 我尝试了 exec() 和 shell_exec() 但有空白输出。你能告诉我改变mp3比特率的语法吗?所以我很清楚我没有出错。
  • 我不太擅长 ffmpeg,但它应该看起来像 exec('ffmpeg -i /path/to/my.mp3 -r 44100 /path/to/target.mp3', $output); var_dump($output); 警告:我不太确定 -ar 44100

标签: php ffmpeg command-line-interface


【解决方案1】:

ffmpeg 在 stderr 上输出,因此您需要重定向输出。在命令行中添加2>&1

echo shell_exec("/usr/local/bin/ffmpeg -i test.mp3 -codec:a libmp3lame -b:a 128k out.mp3 2>&1");

然后你会看到输出。

【讨论】:

  • 这里要注意2点:1)2前必须有空格,2)必须用双引号,不能单引号
  • 当我在浏览器中运行文件时我不明白一件事是 ge 没有这样的文件或目录但是当我在终端中运行时一切正常请帮助
  • @mwangaben 你所说的“文件”是什么意思——你的意思是你想运行ffmpeg?确保您调用了 ffmpeg 的完整路径(例如,/usr/local/bin/ffmpeg),或者您在 PHP 中的 $PATH 包含 ffmpeg 所在的文件夹。
【解决方案2】:

使用FFMpeg\FFMpeg,可以用composer安装:"php-ffmpeg/php-ffmpeg": "0.5.*@dev" (FFMpeg\FFMpeg Git Repository)

或者

使用Symfony Process,可以用composer安装:"symfony/process" : "~2.0" (Symfony Process Documentation)

或者

使用 proc_open() 函数。

FFMpeg\FFMpeg 使用 Symfony 进程Symfony 进程 使用 proc_open() 函数 :)

我更喜欢使用 Symfony 进程:

require 'vendor/autoload.php';

use Symfony\Component\Process\Process;
$process = new Process('ls -lsa');
$process->run();

【讨论】:

  • 这都是矫枉过正,与OP的问题无关,这是一个简单的shell重定向问题。
  • 这不应该被否决。 OP 确实要求提供从 PHP 脚本运行 ffmpeg 的替代方法,这就是它的答案。
  • 正在破译 proc_open 的工作原理,结果发现我有 Symfony 可用,这更干净。
【解决方案3】:

首先你必须在你的服务器上安装 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");

【讨论】:

    猜你喜欢
    • 2012-11-09
    • 1970-01-01
    • 2012-09-08
    • 2017-10-29
    • 2017-01-30
    • 1970-01-01
    • 2014-06-01
    • 2011-04-14
    相关资源
    最近更新 更多