0

我的问题很简单:我可以从命令行在我的服务器上完美地运行 ffmpeg 命令,但是当我尝试从 PHP 脚本执行它们时,其中一些命令会遇到问题。

例如,以下在命令行中起作用:

ffmpeg -i cat.mpeg cat.avi

在我的 PHP 脚本中,它也可以作为:

exec("/usr/local/bin/ffmpeg -i cat.mpeg cat.avi", $output);

正如我所说,这很好用。但是,此行在命令行中有效,但在 PHP 脚本中无效:

ffmpeg -i cat.mpeg -vf scale=480:360 cat2.mpeg

试图将其放入 aexec()不会产生任何结果。我已经尝试过在尺寸、不同格式等周围加/不加引号。从我尝试过的几十个不同的命令来看,只要它们不包含-vf标志,似乎任何命令都可以在 PHP 中工作。显然它可以在服务器上运行,因为从命令行执行没有问题;我在这里想念什么愚蠢的东西吗?

4

1 回答 1

0

我相信这不是关于 -vf 标志,而是关于它的参数 scale=480:360。在执行命令之前尝试使用 escapeshellcmd() 转义命令。

于 2013-01-30T14:05:32.513 回答