嗨,我在 php exec() 中使用 ffmpeg 命令将任何类型的视频转换为 flv 格式我使用的命令在命令提示符下运行良好,但是当我运行相同的命令时,它什么也不返回..实际上输出是数组( ) 且第三个参数 $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...
最佳答案
试试下面的,而不是使用 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();
直通($cmd);
$cmd_retr = ob_get_contents();
print_r($cmd_retr);
关于ffmpeg的php exec()不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21129042/