使用PHP脚本运行CLI命令

时间:2012-12-03 09:51:03

标签: php ubuntu terminal avcodec

我想使用 avconv flv 文件转换为 mpg ,然后使用终端连续运行。我的问题是使用php脚本运行命令。我写了一个代码,但我没有得到结果。我的代码如下

<?php
$cmd="avconv -i http://localhost/test3/a.flv http://localhost/test3/intermediate1.mpg";
$results = shell_exec($cmd.'2>&1');
?>  

我也尝试过以下代码,但没有运气

<?php
$cmd="avconv -i /home/elby/workspace/test3/a.flv /home/elby/workspace/test3/intermediate1.mpg";
$results = shell_exec($cmd.'2>&1');
echo $results;
?>

2 个答案:

答案 0 :(得分:3)

首先,第一个执行示例是无意义的,根据manual of avconv,它需要2个参数:

avconv [global options] [[infile options][-i infile]]... {[outfile options] outfile}...

你不能告诉程序将文件保存到这样的http协议。

第二次调用......有几个可能的问题:

  • 您是从网络还是从CLI运行脚本? Web服务器可能(并且可能会)使用不能访问文件夹的不同用户
  • PHP脚本有timeout (default 30 seconds),视频转换需要更多
  • PHP可能有shell_exec disabled
  • PHP可能已启用safe_mode
  • PHP可能存在PATH环境变量的问题,请尝试使用绝对路径
  • 已停用error_reporting您可能已记录错误但未显示

答案 1 :(得分:0)

$cmd="avconv -i /home/elby/workspace/test3/a.flv /home/elby/workspace/test3/intermediate1.mpg";
$results = shell_exec($cmd.' 2>&1');
echo $results;

使用avconv。的绝对路径。