php - 无法执行 exec 命令 (php/windows/ffmpeg)

标签 php windows ffmpeg exec command-line-interface

我正在尝试运行这个在 cli 中有效的命令

ffmpeg -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output1.flv

我只能通过 php 运行 ffmpeg -version

$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 $resecho $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)

关于php - 无法执行 exec 命令 (php/windows/ffmpeg),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30031749/

相关文章:

c++ - 排队的事件数量? (Win32 事件队列)

windows - 为 Qt 5.5.1 (msvc2010) 编译 ibase 驱动

video - 命令行 'hls_segment_size' 使用段失败创建 TS 文件

python - 使用matplotlib制作动画并保存视频文件

php - 通过 Ajax 的 Javascript

javascript - 如何计算另一个输入框中的html输入框值

php - 如何使用 mySQL 选择第一篇文章

javascript - 传递 WordPress $current_user 数据以在嵌入的 javascript 中使用以预填充表单字段

c++ - CMake 在 Windows 10 上构建 Tensorflow C++ 错误 : Test COMPILER_OPT_ARCH_NATIVE_SUPPORTED - failed

ffmpeg - 如何从捕获设备捕获带有音频的简单视频输入