You need to enable JavaScript to run this app. Win10下PHP shell_exec/exec执行ffmpeg合并命令失效,手动CMD正常
优惠活动
大模型
产品
解决方案
定价
更多

Win10下PHP shell_exec/exec执行ffmpeg合并命令失效,手动CMD正常

PHP调用FFmpeg合并音视频异常问题

复现代码

$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对应的ffmpeg命令时无任何响应,直接跳转到下一行代码,未完成预期的视频与音频文件合并操作
  • 输出与报错情况:该命令执行全程无任何输出,已尝试echo打印shell_exec的返回结果,无内容返回,也没有任何报错信息
  • 返回值测试:换用exec($MergeCommand, $output, $retvalue);调试,得到的返回值为1
  • 对照测试结果:将程序echo输出的完整命令复制到CMD窗口手动运行,操作完全符合预期效果
  • 基础功能验证:shell_exec并非完全失效,仅在执行该ffmpeg命令时出现问题,例如执行shell_exec("echo hello world");可以正常运行

核心疑问

为什么同一命令在普通CMD中可以正常运行,通过PHP的shell_exec()或exec()调用却无法执行?


内容的提问来源于stack exchange,提问作者hydra-lua

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.02 06:15:02