0

一直在尝试使用我上传到我的域的脚本执行 FFMPEG

<?php
$output = array();
$result = -1;
exec('../../../../../../usr/bin/ffmpeg -ab 320k -i source.wav dest320.mp3', $output, $result);
var_dump($output, $result);
?>

示例代码说除非出现错误,否则程序不应该返回 -1,但我已经指出了 FFMPEG 存储在的确切路径.....

当我从 CentOS 调用 'ffmpeg -ab 320k -i source.wav dest320.mp3' 时,它可以工作......

我迷路了,最近几个小时都在努力解决这个问题。

谢谢

CP

4

2 回答 2

0

任何时候你有一个不能在 php 中工作的 exec,你应该切换到 passthru 进行调试。

passthru('../../../../../../usr/bin/ffmpeg -ab 320k -i source.wav dest320.mp3 1 2>&1');

将 1 2>&1 附加到末尾,将您的 stderr 通过管道传输到 stout,并返回您在运行 exec 时遇到的任何错误。

于 2013-07-16T13:04:58.290 回答
0

使用它将获得 ffmpeg 的正确路径可能更安全,passthru('/usr/bin/env ffmpeg -ab 320k -i source.wav dest320.mp3 1 2>&1');而无需指定绝对/相对路径。

另外值得注意的是,如果您从 12.04 开始使用 Ubuntu,则该ffmpeg命令已重命名为avconv.

于 2013-07-16T13:07:23.903 回答