【问题标题】:exec() command not workingexec()命令不起作用
【发布时间】:2011-09-28 05:37:41
【问题描述】:

我正在使用 exec() 函数在 centos 服务器上运行我的命令。在我使用命令之前一切正常: $命令= ffmpeg -i input video.mp4 -vf fade=out:0:5 output.mp4

该命令没问题,因为它通过命令行在服务器上运行,但是当我使用 php 执行它时,它没有给出输出。我已经使用 exec() 函数从 ffmpeg 创建了一个视频,但是这个命令不起作用。我对如何在服务器上运行命令但在从 php 执行时无法运行感到困惑的原因可能是什么。

我使用 exec() 函数执行的其他命令是: $command = ffmpeg -i %d.jpg -y -s 320x240 -aspect 4:3 output.mp4

它运行良好,视频也已创建,但之前的命令没有将视频作为输出。

请指导我...

【问题讨论】:

  • 您能复制/粘贴您正在使用的确切 PHP 吗?引用很重要。
  • 正如使用所用语言标记问题一样。
  • 你确定你的输入文件名是input video.mp4,中间有空格吗?
  • 不,没有空间。实际命令是:ffmpeg -i fade.mp4 -vf "fade=out:0:5" output.mp4。我的确切 php 代码是:$command= 'ffmpeg -i slideshow/frame1.mp4 -vf "fade=out:0:5" slideshow/fade1.mp4' exec($command)

标签: php


【解决方案1】:

尝试调试您的命令执行。对于 ffmpeg,您需要使用 2>&1 管道输出才能看到它:

exec($command." 2>&1", $output);
echo "<pre>";
var_dump($output);
echo "</pre>";

【讨论】:

  • 返回:string(37) "frame1.mp4: No such file or directory" 但 frame1.mp4 出现在 slideshow/ 位置。为什么找不到文件?
  • 尝试使用文件的完整路径并检查文件权限。
  • 当我使用文件权限为 777 的完整文件路径时,我得到:string(24) "Unrecognized option 'vf'" 。我还应该用什么来引用过滤器我也试过 -vfilters 但同样的错误来了......
  • -vf 应该可以工作。查看Doku,看起来很丑但很有帮助!
猜你喜欢
  • 1970-01-01
  • 2014-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多