PHP ffmpeg exec 返回 null

标签 php ffmpeg exec

我正在尝试通过 PHP exec 调用运行 ffmpeg,我已经调试了一段时间并查看了这里的很多响应,但仍然没有找到任何答案...

我的简化调用是:

$cmd = 'ffmpeg 2>&1';

exec(escapeshellcmd($cmd), $stdout, $stderr);

var_dump($stderr);
var_dump($stdout);
var_dump($cmd);
exit;

我的输出是 $stderr = int(1) 和 $stdout = array(0) { }

我还尝试了返回 NULLshell_exec($cmd)

cmd.exe 具有为 IUSR 帐户设置的权限 - 例如我可以运行 $cmd = 'dir' 并查看目录列表输出。

PHP 未在安全模式下运行。

ffmpeg.exe 与我的 php 文件位于同一目录中,但我有相同的响应,在 $cmd 中给出了 ffmpeg.exe 文件的绝对路径。

ffmpeg 在命令行中执行良好。

我正在运行 Windows XP、IIS 和 PHP 5.3。

编辑:

如果我运行“ffmpeg -h”,我会得到帮助命令,它必须表明 ffmpeg 已被识别

我已将 PHP 内存限制增加到 1024 - 运气不好。

最佳答案

我现在已经开始工作了 - 我认为可能存在几个问题:

事实证明,$cmd = 'ffmpeg' 返回 null,所以这不是一个好的测试!

还在 '2>&1' 上运行 escape shell 命令回显 2^>^&1"- 我认为这是我最初的问题。

我现在已经设法使用“ffmpeg -i SAMPLE.AVI 2>&1”重新测试文件。

工作代码:

$cmd = 'ffmpeg -i SAMPLE.AVI 2>&1';

exec($cmd, $output, $value);

var_dump($output);
var_dump($value);
var_dump($cmd);
exit;

如上所述,ffmpeg 有点占用内存,因此也值得检查内存。

关于PHP ffmpeg exec 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9770173/

相关文章:

c++ - FFMPEG API : decode MPEG to YUV frames and change these frames

c - 使用 execl 运行多个 ssh 命令

c - 如何在 exec 期间处理 C shell 程序中的输入

php - 无法缩短 php 和 mysql 中的文本

php - Laravel 扩展 Blade 并将数组作为参数传递

ffmpeg - 使用 Git 升级 FFmpeg

java - 如何在JAVA中向进程发送ctrl+c信号

php - Laravel `with` 问题

php - session 如何工作?

ffmpeg - 使用ffmpeg从mp4中提取字幕