2012-03-19 4 views
4

をゼロに、私はしばらくの間、デバッグ、ここで回答の多くを見て、それでもどんな答えを見つけていないしてきた...PHPのffmpegの幹部戻り、私はPHPのexec呼び出してffmpegのを実行しようとしている

は私の単純化された呼び出しである:

$cmd = 'ffmpeg 2>&1'; 

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

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

私の出力は$標準エラー= INT(1)と$ STDOUT =アレイ(0){}

でも私はNULLを返すshell_exec($cmd)を試みました。

cmd.exeにはIUSRアカウントのアクセス許可が設定されています。私は$cmd = 'dir'を実行し、ディレクトリリストの出力を見ることができます。

PHPがセーフモードで実行されていません。

ffmpeg.exeは私のphpファイルと同じディレクトリにありますが、同じ応答でffmpeg.exeファイルの絶対パスを$cmdに指定しています。

ffmpegがコマンドラインから正常に実行されています。

私はWindows XP、IIS、およびPHP 5.3を実行しています。

EDIT:

私はffmpegのは、私が1024年にPHPのメモリ制限を増加しました

を認識していることが示されなければなりませんヘルプコマンドを取得「-hのffmpeg」を実行している場合 - 運を。

+0

exec()の2番目のパラメータは 'stderr'ではなく' return value'です。戻り値1は、エラーが発生したことを意味します。私はあなたがなぜ$ stdoutにエラー出力を見ないのか分かりません。 –

+0

Robに感謝します。 –

答えて

5

私は今、この作業を持っている - 私はいくつかの問題があったかもしれないと思う:

それは$cmd = 'ffmpeg'リターンがヌルことが判明し、それは良いテストではありませんので!

はまた、上の「2> & 1」をエスケープシェルコマンドを実行すると、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の上で述べたように、メモリの豚のビットである

+0

つまり、ffmpegはstdoutの代わりにstderrに書き込むだけですか? – DanMan

+0

コマンドがnullを返さない場合は、設定が一覧表示されます。 '$ cmd = 'ffmpeg 2> &1';'でデフォルト出力を表示する – Raptor

関連する問題