【问题标题】:php exec() for ffmpeg not workingffmpeg的php exec()不起作用
【发布时间】:2014-01-15 04:18:35
【问题描述】:

hai 我在 php exec() 中使用 ffmpeg 命令将任何类型的视频转换为 flv 格式 我使用的命令在命令提示符下运行良好,但是当我运行相同的命令时,它什么也不返回。输出为 Array(),第三个参数 $result 为 "1"

我在 stackoverflow 上读过类似的问题,但没有帮助

大多数时候我注意到问题在于路径和 php 的安全模式

我使用 .htaccess 禁用了安全模式,语法如下,我使用的是 Windows 7 操作系统

ffmpeg 应用程序的目录是 c:\ffmpeg\bin\ffmpeg

完整的脚本和输出如下:

ffmpeg 命令:

   ffmpeg -i c:\xampp\htdocs\video\original\robot.mp4 -c:v libx264 -ar 44100 -crf 17 c:\xampp\htdocs\video\vids\robot.flv

php 脚本:

 echo "starting ffmpeg...<br/>";

 echo exec("ffmpeg -i c:\xampp\htdocs\video\original\robot.mp4 -c:v libx264 -ar 44100 -crf 17 c:\xampp\htdocs\video\vids\robot.flv",$out,$r);
 var_dump($out);
 echo $r."<br/>";
 echo "done...<br/>";
 ?>

关闭安全模式的htaccess:

 php_value safe_mode "0" 

输出:

 starting ffmpeg...
 array(0) { } 1 
 done...

【问题讨论】:

    标签: php video ffmpeg exec


    【解决方案1】:

    试试下面的,而不是使用 exec(ffmpeg -i 'inputfile' 'outputfile');

    $cmd = "ffmpeg -i c:\xampp\htdocs\video\original\robot.mp4 -c:v libx264 -ar 44100 -crf 17 c:\xampp\htdocs\video\vids\robot.flv"

    ob_start();

    passthru($cmd);

    $cmd_retr = ob_get_contents();

    print_r($cmd_retr);

    【讨论】:

      【解决方案2】:
      <?php
      echo exec("cmd /c ffmpeg -i c:\\xampp\htdocs\video\original\robot.mp4 -c:v libx264 -ar 44100 -crf 17 c:\\xampp\htdocs\video\vids\robot.flv",$out,$r");
      ?>
      

      【讨论】:

        猜你喜欢
        • 2017-01-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-20
        • 2016-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多