【发布时间】:2021-02-23 22:21:43
【问题描述】:
$MergeCommand = "C:\\Users\\Admin\\Documents\\ffmpeg-2021-02-20-git-51a9f487ae-full_build\\bin\\ffmpeg -i \"" . $path . $videoname . "\" -i \"" . $path . $audioname . "\" -c:v copy -c:a aac \"" . $path . $filename . "FINAL.mp4\"";
shell_exec($MergeCommand);
echo($MergeCommand);
操作系统:Windows 10
很抱歉我提供了令人难以置信的漫长而痛苦的线路。
通过测试,我知道我的代码到达了shell_exec($MergeCommand); 行。
它甚至在之后正确地呼应了 $MergeCommand 的值。
问题是,一旦它尝试执行 $MergeCommand,什么也没有发生。它只是似乎要进行
进入下一行。应该发生的是,它将视频文件与音频文件合并。
没有输出(尝试回显它的结果),也没有任何错误消息。
使用exec($MergeCommand, $output, $retvalue);求返回值时,返回1。
不过,如果我复制 echo($MergeCommand); 打印出来的确切行,打开一个 cmd,粘贴
它在那里并运行它,它正是它应该做的。
现在我想知道,为什么相同的命令在常规 cmd 中有效,而在运行时却无效
通过shell_exec(); 或exec();?
不是shell_exec();根本不起作用,我得出的结论是它特别
运行该命令时发生。例如,shell_exec("echo hello world"); 有效
完全没问题。
【问题讨论】:
标签: php cmd ffmpeg shell-exec