让ffmpeg使用php网站错误500或访问被拒绝

时间:2015-09-01 15:30:15

标签: php ffmpeg

我有两种方法没有成功和不同的结果,使用exec方法ffmpeg实际上工作并创建输出文件,但随后网站崩溃,错误500。 如果我使用proc_open方法然后它运行并在输出存储文件夹中创建日志文件atest.log,但最后的ffmpeg错误:store \ _ audio_recording_1441120844021u.mp3:权限被拒绝并且不会写出文件。

ffmpeg具有IUSR完全控制权限,并且这些权限也在商店文件夹中。

任何想法???

exec方法: -

 $cmd = "ffmpeg.exe -i C:\\Windows\\Temp\\recordings\\".$filename." -i watermark.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 store\\".$filename;
 echo exec($cmd, $o, $v);

proc_open方法: -

 $cmd = "ffmpeg.exe -i C:\\Windows\\Temp\\recordings\\".$filename." -i watermark.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 store\\".$filename;
 $pipes = array();
 $descriptors = array(2 => array('file', 'store\\atest.log', 'a'));

 $p = proc_open($cmd, $descriptors, $pipes);
 $done = 0;
 while (!$done) 
 {
      sleep(1);

      $status = proc_get_status($p);
      if (!$status['running']) $done = 1;

      echo "STEEL RUN\n";
      // some manipulations with "store\\atest.log"

 } 

1 个答案:

答案 0 :(得分:1)

为exec()添加-nostdin做了伎俩。 e.g。

$ cmd =“ffmpeg.exe -nostdin -i C:\ Windows \ Temp \ recordings \”。$ filename。“ - i watermark.mp3 -filter_complex amerge -c:a libmp3lame -q:a 4 store” 。$文件名;