无法执行 exec 命令 (php / windows / ffmpeg)
Can't execute exec command (php / windows / ffmpeg)
我正在尝试 运行 这个在 cli 中有效的命令
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
+++更新+++
由于 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
我在 ffmpeg.exe
之后有 ffmpeg
- 这就是它不起作用的原因。
$cmd = 'C:\wamp\www\ffmpeg\bin\ffmpeg.exe -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output2.flv 2>&1';
exec($cmd, $output)
我正在尝试 运行 这个在 cli 中有效的命令
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
+++更新+++
由于 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
我在 ffmpeg.exe
之后有 ffmpeg
- 这就是它不起作用的原因。
$cmd = 'C:\wamp\www\ffmpeg\bin\ffmpeg.exe -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output2.flv 2>&1';
exec($cmd, $output)