1
我试图运行此命令,做在CLI无法执行exec命令(PHP /窗/的ffmpeg)
ffmpeg -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output1.flv
的工作,我能只通过ffmpeg -version
PHP运行。
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -version");
tmp1.flv
文件:
C:\wamp\www\tmp1.flv
当我跑步时$res = exec("chdir")
=>C:\wamp\www\
我如何通过PHP运行此
ffmpeg -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output1.flv
我想:
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output1.flv", $output, $return_var);
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i C:\\wamp\\www\\tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 C:\\wamp\\www\\output1.flv", $output, $return_var);
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i C:\wamp\www\tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 C:\wamp\www\output1.flv", $output, $return_var);
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i \"C:\wamp\www\tmp1.flv\" -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 \"C:\wamp\www\output1.flv\"", $output, $return_var);
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i 'C:\wamp\www\tmp1.flv' -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 'C:\wamp\www\output1.flv'", $output, $return_var);
...
但echo $res
和echo $output
给什么,echo $return_var
给出1
+++ UPDATE +++
了一个小的进步得益于this post,它确实给我讲述了文件输出和信息,但还是可以不运行整个命令。
$cmd = 'C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i tmp1.flv 2>&1';
exec($cmd, $output, $value);
var_dump($output);
var_dump($value);
var_dump($cmd)
+++更新2 +++
echo exec('whoami')
=>nt authority\system
“来获得执行的命令的输出,一定要设置并使用输出参数。” ...... http://php.net/manual/en/function.exec.php – dbinns66
有你检查执行脚本的用户是否具有对输出目录的写权限? – steven
@ dbinns66谢谢,我添加了它并更新了我的问题。 – whitesiroi