使用PHP脚本运行CLI命令
我想使用avconv将flv文件转换为mpg,然后使用终端连续运行。我的问题是使用php脚本运行命令。我写了一个代码,但并没有得到结果。我的代码如下使用PHP脚本运行CLI命令,php,ubuntu,terminal,avcodec,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
<?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;
?>
首先,第一个执行示例是无意义的,因为它包含两个参数:
avconv [global options] [[infile options][-i infile]]... {[outfile options] outfile}...
你们不能仅仅告诉程序把文件保存到像这样的http
协议
第二次调用。。。这有几个可能的问题:
- 您是从web还是从CLI运行脚本?Web服务器可能(也可能会)使用不同的用户,这些用户无权访问文件夹
- PHP脚本已经完成,视频转换需要花费更多的时间
- PHP可能有
- PHP可能已经打开了
- PHP可能在
环境变量方面有问题,请尝试使用绝对路径PATH
- 禁用时,您可能已经记录了错误,但未显示
使用avconv的绝对路径。还有更多信息吗?代码是如何失败的?有任何错误消息吗?您是否检查了shell_exec是否对您有效?请尝试类似的
echo shell_exec('echo foo')代码>根据配置,可以禁用外壳函数。在2>&1
之前缺少一个空格,导致命令中出现文件名intermediate1.mpg2
。
$cmd="avconv -i /home/elby/workspace/test3/a.flv /home/elby/workspace/test3/intermediate1.mpg";
$results = shell_exec($cmd.' 2>&1');
echo $results;