1

我想使用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;
?>
4

2 回答 2

3

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

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

而且您不能只告诉程序将文件保存到http这样的协议。

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

  • 您是从 Web 还是从 CLI 运行脚本?网络服务器可能(并且可能会)使用不同的用户,这些用户不能访问文件夹
  • PHP 脚本有超时(默认 30 秒)并且视频转换需要更多时间
  • PHP 可能已shell_exec禁用
  • PHP 可能已safe_mode打开
  • PHP可能环境变量有问题PATH,尝试使用绝对路径
  • 禁用后error_reporting,您可能已经记录了错误但未显示
于 2012-12-03T10:45:39.230 回答
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 的绝对路径。

于 2012-12-03T11:02:36.983 回答