当前位置:编程学习 > php >>

PHP 用命令行调用应用程序! 求大神在线指导!!!我把我所有的分都给你都没问题!!

ffmpeg.exe -i D:\website\data\web\webroot\videobase\signs.avi -ab 56 -ar 22050 -b 500 -r 15 -s 500x600 D:\website\data\web\webroot\videobase\201112120089123.flv 上面那段命令,在命令行当中是可以执行的, 可是我在PHP网页中添加 <? $cmd="ffmpeg.exe -i D:\website\data\web\webroot\videobase\signs.avi -ab 56 -ar 22050 -b 500 -r 15 -s 500x600 D:\website\data\web\webroot\videobase\201112120089123.flv"; exec($cmd); ?> 然后localhost运行这个PHP页面却没有执行这段代码是为什么!! 求大神指导啊啊啊啊啊啊暴走了我要。。T^T
追问:
        	
				
PHP.INI里面 safe_mode = Off
但是安全目录safe_mode_include_dir没有设置,
EXEC函数是不是只能在安全目录下使用啊?那我添加了safe_mode_include_dir=“D:\”这样子可以嘛?
刚才没仔细看,你要是通过访问web服务器让程序执行系统命令,要考虑要运行的文件的权限,和你的服务器用户的权限
怎么样可以让我有权限干这个事情。。?T^T
我现在要做的是视频上传后自动转成FLV格式保存。
上面那段命令可以在命令行方式下转码成功了,现在就是需要用PHP调用命令行。
能不能麻烦你加下我QQ:1502861945  谢谢谢你!
我试了一下,ffmpeg.exe 这个放到网站的目录下,就可以,执行转换成功以后返回一个空的数组值,但是可以转换成功,web服务对当前域的文件夹有可执行权限,如果视频比较大转换的时间可能比较长,需要设置php脚本执行时间,你再试试吧
$a=system($cmd,$return_var);
print_r($return_var);
这样子写,返回值是1,也就是没有执行。
考虑到超时,然后我增加了一个变量
$temp="D:\\website\data\web\webroot\videobase\temp";
然后调用函数改为$a=system($cmd > $temp,$return_var);
但返回值还是1,没有执行
FFmpeg已经跟PHP文件在同一个目录下了。。
(对不起。。这种事情上我总是比较蠢。。麻烦你了。)
首先string system ( string $command [, int &$return_var ] );system()执行命令的话,返回值字符串就是$a
我是这么试的:
error_reporting(E_ALL);
set_time_limit(0);//设置不让脚本超时
exec("ffmbc.exe -i 1.flv 1.wmv",$a);
print_r($a);
 我用的ii7
!!!我发现问题在哪了
$cmd="ffmpeg.exe -i D:\website\data\web\webroot\videobase\signs.avi  D:\website\data\web\webroot\videobase\201112120089123.flv";  
这是我文件系统的绝对路径。。- -
exec("ffmpeg.exe -i ..\/videobase\/signs.avi ..\/videobase\/3.flv",$a);改成服务器目录下的相对路径就OK了。2了。。
谢谢谢你~
我总共有429分。。你要多少。。(对手指)
解决问题共同进步,我也学到不少东西,你的分自己留着吧
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,