Ash*_*Ash 23 php shell ffmpeg shell-exec
我正在shell_exec()第一次使用.我正在尝试使用ffmpeg shell脚本在我的服务器上转换一些视频文件.
当我在浏览器中的下面的代码时,它返回NULL:
var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4"));
Run Code Online (Sandbox Code Playgroud)
但是,当我在终端中运行等效代码时:
> ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4
我收到了大量有用的信息,这些信息以错误结束 "At least one output file must be specified"
为什么这些信息没有传回我的PHP脚本,所以我可以回应它?
Dav*_*dom 44
错误数据从目标程序的STDERR流输出.您可以shell_exec()通过附加2>&1到命令(将重定向STDERR到STDOUT您当前看到的流)的命令,通过正常返回的字符串访问错误数据:
var_dump(shell_exec("ffmpeg -i /var/www/html/sitedomain/httpdocs/tmp/ebev1177.mp4 2>&1"));
Run Code Online (Sandbox Code Playgroud)
您可能还想查看proc_open()哪些内容将允许您访问STDIN,STDOUT以及STDERR作为三个单独的流,它们可以对目标程序提供更精细的控制,以及您如何处理输入和输出,包括重定向任何并且如果需要,它们都直接到日志文件.请注意,这是一个更复杂的机制,存在许多陷阱和绊倒危险.
有关标准流的更多信息,请参见此处.
| 归档时间: |
|
| 查看次数: |
17904 次 |
| 最近记录: |