ffmpeg php exec无法正常工作

时间:2011-07-19 10:56:55

标签: php ffmpeg exec flv wmv

  • 我安装了ffmpeg
  • safe_mode已关闭
  • 当我这样做时:$movie = new ffmpeg_movie('Bear.wmv'); 我可以使用getDuration(),getFilename()....没有任何问题,所以它似乎都在工作
  • exec工作正常,因为我这样做:$output = exec('ls -lart');我得到了一个不错的结果。

但是当我这样做时:

exec('ffmpeg -i Bear.wmv outputfile.flv')

没有任何反应

如果我添加:$command_output, $result 我猜的唯一结果是:array { }

我已经尝试了我能想到的一切:

exec('ffmpeg -i Bear.wmv outputfile.flv')

exec('ffmpeg.so -i Bear.wmv outputfile.flv')

exec('/usr/lib/php5/20090626/ffmpeg -i Bear.wmv outputfile.flv')

我已经尝试了所有尺寸和文件夹以及编解码器,但仍然没有得到任何回报

我想做的就是将那个视频,Bear.wmv转换成一个flv文件。

我非常接近像婴儿一样哭泣和/或跳出窗外(我只在一楼,但仍然大声笑) 所以请帮忙!! ??!

2 个答案:

答案 0 :(得分:1)

FFMPEG是一个不输出到STDIO而是STDERR的应用程序,所以你可以将它重定向到标准输出:

$cmd = $FFMPEGDIR . " -i somefile.avi 2>&1"; // SEE 2>&1 !!

提取尺寸:

 exec( $cmd , $info );

      echo "<pre>".print_r($info,true)."</pre>";
      $resolution = preg_match( '@[ ,\t]([0-9]{3,4}x[0-9]{3,4})[ ,\t]@si' , implode( " " , $info ) , $durmatches );

      $rtab = explode( "x" , $durmatches[1] );

      $videowidth = $rtab[0];
      $videoheight = $rtab[1];

答案 1 :(得分:0)

最近为音频设置了ffmpeg ...它有点像黑色艺术,ffmpeg因为不能玩得好(或一贯地)而臭名昭着 - 对我来说有效(工作)可能不适合你!

尝试使用:shell_exec()

或:

$command="{$FFMPEG_BINARY} ... rest of your options";
$process=proc_open($command, $descriptors, $pipes);
if (!$process)
{
    // failed to exec...
}
else
{
    // command ran...
}

我的ffmpeg在......“/ usr / bin / ffmpeg”只是检查你是否也有正确的道路。