ffmpeg的php exec()不起作用

标签 php video ffmpeg exec

嗨,我在 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/

相关文章:

python - 将ffmpeg与python一起使用,在找到END元素之前输入缓冲区已耗尽

php - 准备语句的语法错误

windows - FFMPEG(windows7)无法让输出视频显示超过 10 个 jpg 中的 3 个

xcode - 如何检查 AVPlayer 是否有视频或只有音频?

javascript - YouTube ID 的正则表达式

audio - 警告 : passthru() has been disabled for security reasons in _audioconverter_scheduler_ffmpeg_helper

php - 通过 CompilerPass 注册自定义 AttributeBag

javascript - Ajax 表单使用 Yii 2 提交两次

php - 我收到此错误错误 : Incorrect time value: '16:44:09 PM' for column 'time' at row 1 and I'm not sure why

c - 将提取的帧名称存储在数组中 - ffmpeg