【问题标题】:PHP's exec() not executing command for FFmpegPHP 的 exec() 没有为 FFmpeg 执行命令
【发布时间】:2011-11-06 13:14:06
【问题描述】:

我已经在我的服务器上安装了 ffmpeg,它可以通过我的终端正常工作。我能够成功地将文件转换为 webm 格式,所以我确定安装没问题。我也确定我的机器上只安装了一个 ffmpeg。

当我尝试通过 PHP 的 exec() 转换文件时出现问题。当我运行相同的命令时,我在终端中运行,没有任何反应。我环顾了 stackoverflow 和网络的其他部分以寻求帮助。我试过这个来查看输出:

exec($cmd, $out, $rv);
echo "output is:\n".implode("\n", $out)."\n exit code:$rv\n";

输出为:“输出为:退出代码:127”

我使用的命令格式如下:

ffmpeg -i "sample.mov" -vcodec libvpx  -r 30 -b "644k" -acodec libvorbis -ab 128000   -ar "44100" -ac 2 -s "352x198" "sample.webm"

我尝试将“ffmpeg”替换为 FFmpeg 的完整路径,但没有成功。

为什么脚本没有正确运行命令并转换文件?

谢谢!

【问题讨论】:

标签: php ffmpeg command exec


【解决方案1】:

错误代码 127 表示找不到可执行文件 (ffmpeg)。尝试指定整个路径(您可以在终端中使用 which ffmpeg 找到它)或比较您的 php 脚本和终端中的 PATH 环境变量的值。

【讨论】:

  • “我尝试将“ffmpeg”替换为 FFmpeg 的完整路径,但没有成功。”
【解决方案2】:

我对 php 中的 ant 目标执行有类似的问题。我无法从 ant 命令仅获得前几行的全部输出,并且未执行 ant 目标。换句话说就是部分执行。

使用下面的命令,我设法运行它,但命令的输出附加到 log_file.log。

$commandString = 'you_command_here >> log_file.log 2>&1 &';
$command = exec($commandString);

希望这对你有用。

【讨论】:

    猜你喜欢
    • 2013-07-28
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-07
    • 2014-01-11
    相关资源
    最近更新 更多