【问题标题】:Can't run exec('ffmpeg'); ffmpeg, wamp & windows 2008 server无法运行 exec('ffmpeg'); ffmpeg、wamp 和 windows 2008 服务器
【发布时间】:2014-04-05 07:37:05
【问题描述】:

我已经在我的 Windows 服务器上安装了 FFMPEG。如果我转到 cmd 并输入 ffmpeg -version 我会得到版本、可用命令等。我使用带有 php 5.4.12 的 WAMP 服务器

我不使用 ffmpeg-php 的原因是因为我安装它没有错误,我无法使用 php 扩展,即使它说它已安装。

当我尝试做时

<?php
echo exec('ffmpeg -version'); 
?>

它完全空白,没有错误或什么都没有。

如果我跑了

<?php
echo exec('whoami'); 
?>

我得到:nt authority\system

所以我可以在我的 php 中运行 exec。

我也尝试过使用 shell_exec(); ffmpeg 不适用于其中任何一个。

查看其他 stackoverflow 问题后,我看到人们通过允许 IIS 用户使用 ffmpeg.exe 来解决此问题。但我正在使用 Wamp,所以我不知道该怎么做。

有什么想法吗?

【问题讨论】:

  • 如果命令的结果错误或失败,您将得到一个空白输出。它使调试变得困难。我在下面推荐 Nicholas Walker 的方法,它为我解决了这个问题。看看我的 cmets,希望他们能有所帮助(这又是 3 年前的事了,我怀疑你仍然有这个问题......)

标签: php video ffmpeg


【解决方案1】:

通过在命令前输入 ffmpeg.exe 的路径来修复它:

<?php
echo exec('C:\ffmpeg\bin\ffmpeg.exe ffmpeg -version');
?>

【讨论】:

  • 尽管在 windows 中将 ffmpeg 添加到我的 PATH 变量中,但您似乎需要提供 ffmpeg 的目录。尽管将 ffmpeg 添加到 PATH,但我仍向仍在苦苦挣扎的用户推荐此解决方案。
  • 我发现命令中额外的 'ffmpeg' 似乎会导致某些系统出现问题。我的实现适用于:shell_exec('C:\ffmpeg\bin\ffmpeg.exe -version');
【解决方案2】:

ffmpeg.exe文件的路径添加到WINDOWS环境变量中。 在 SYSTEM VARIABLES 中,编辑 PATH 在末尾添加此内容(例如):

;C:\ffmpeg\bin\

否则,您总是必须在 EXEC 中指明路径。

【讨论】:

  • 我实际上已经这样做了(为了使 ffmpeg 可以从任何文件夹中使用),它实际上不起作用。奇怪的是,尼古拉斯沃克的方法似乎奏效了……
猜你喜欢
  • 1970-01-01
  • 2015-07-13
  • 1970-01-01
  • 2015-06-21
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-03
相关资源
最近更新 更多