php exec()for ffmpeg无效

时间:2014-01-15 04:18:35

标签: php video ffmpeg exec

hai我在php exec()中使用ffmpeg命令将任何类型的视频转换为flv格式命令我正在使用我在命令提示符中正常工作但是当我运行相同的命令时它返回什么......实际上output是Array(),第三个参数$ result是“1”

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

大部分时间我都注意到问题出在路径和php的安全模式

我使用.htaccess禁用了安全模式,下面给出了语法,我使用的是Windows 7 os

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...

2 个答案:

答案 0 :(得分:0)

尝试下面的一个而不是使用exec(ffmpeg -i&#39; inputfile&#39;&#39; outputfile&#39;);

$ cmd =&#34; ffmpeg -ic:\ xampp \ htdocs \ video \ original \ robot.mp4 -c:v libx264 -ar 44100 -crf 17 c:\ xampp \ htdocs \ _video \ vids \ robot。 FLV&#34;

ob_start();

通路($ CMD);

$ cmd_retr = ob_get_contents();

的print_r($ cmd_retr);

答案 1 :(得分:-1)

<?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");
?>