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

それを に入れようとしても、exec()何も生成されません。-vf寸法、さまざまな形式などを引用符で囲んだり付けたりせずに試しました。試した数十の異なるコマンドから、フラグが含まれていない限り、PHPからはどれも機能するようです。コマンドラインからの実行は問題なく進行するため、サーバー上で動作することは明らかです。私がここで見逃しているばかげたことはありますか?

4

1 に答える 1

0

-vfフラグではなく、そのパラメーターscale = 480:360についてだと思います。コマンドを実行する前に、escapeshellcmd()を試してコマンドをエスケープしてください。

于 2013-01-30T14:05:32.513 に答える