【问题标题】:Not able to use exec command to use ffmpeg无法使用 exec 命令来使用 ffmpeg
【发布时间】:2015-05-27 03:05:40
【问题描述】:

我正在研究 ffmpeg 的使用很长一段时间,但对我来说似乎没有什么困惑。最后我发现如果系统上安装了ffmpeg,PHP的exec命令可以帮助执行ffmpeg命令。我在下面创建了 php 脚本:

  exec("ffmpeg -i C:\Users\sameeksha\Downloads\v.mp4 -ar 22050 -ab 32 -f flv -s 320x240 C:\FFMPEG\video.flv", $output, $return);

     if($return) {
        echo "created ".$output;     
    }
    else 
        echo "not ".$output;

从命令行运行的相同命令正在创建转换后的视频,但是当我将它作为 PHP 脚本运行时,它不会。我什至为 ffmpeg 安装了 dll 文件,但仍然对我不起作用。

任何帮助将不胜感激。

【问题讨论】:

  • 尝试使用 ffmpeg 文件的完整路径。从 Web 服务器(例如:apache)运行时,命令从 Web 服务器用户(例如:名为“apache”的用户)运行。用户 apache 可能看不到 ffmpeg 文件。使用命令行时,脚本在运行命令的用户下运行,这可能是您的帐户,这意味着它可以看到该文件,因为它已添加到您的路径环境变量中。

标签: php ffmpeg


【解决方案1】:

您需要在双引号字符串中转义反斜杠。

示例:C:\FFMPEG\video.flv 需要为 C:\\FFMPEG\\video.flv

或者只使用斜杠: C:/FFMPEG/video.flv

您也可以将命令括在撇号而不是引号中,因为撇号会禁止转义序列,因为\ 不是您输入中的最后一个字符。

exec('ffmpeg -i ... ',  $output, $return);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    相关资源
    最近更新 更多