2012-04-27 9 views
0

私はffmpegを使用してPHPでオーディオファイルを変換しようとしていますが、m4aとしてポストを介してオーディオファイルを取得し、mp3に変換します。私はこれを行うには次のようにします:PHP - exec()とshell_exec()を使用してffmpegを実行すると何もしません

$commandOutput = shell_exec('ffmpeg -i '.$filePath.' -ar 8000 -ab 16000 '.str_replace('m4a', 'mp3', $filePath)); 

しかし、何もせず、commandOutputも何も含まれていません。ファイルは正しく保存されますが、mp3に変換されません。ターミナルで同じコマンドを実行すると、ファイルが正しく変換されます。何が起きているのでしょうか?

+0

を。そうであれば、特定の実行ファイルを呼び出したり、特定のファイルパスに書き込んだりすることはできません。 – Polynomial

+0

それはどうですか?この変換は私のアプリにとって非常に重要です。 – 8vius

+0

代わりに私の答えを見てください。 – Polynomial

答えて

2

てみラッピングは次のようにコマンド:

exec($cmd." 2>&1", $out, $ret); 
if ($ret){ 
    echo "There was a problem!\n"; 
    print_r($out); 
}else{ 
    echo "Everything went better than expected!\n"; 
} 

exec()は、すべての出力をキャプチャし、終了コードを取得することができます。 2>&1を追加すると、STDERRSTDOUTにリダイレクトされるので、エラーメッセージが表示されます。

+0

これは私がこの出力を持っている問題を明らかにした:sh:ffmpeg:コマンドが見つかりません – 8vius

+0

私のPATHにffmpegを追加しようとしましたが、動作しませんでした – 8vius

+0

1)ffmpegへのフルパスを使います: ffmpeg'または何でも – Cal

1

あなたはffmpegの-PHP拡張使用することができます私は100%確実ではないんだけど、これはchroot監獄で実行されているPHP(またはApache)に何かあるかもしれないhttp://sourceforge.net/projects/ffmpeg-php/

関連する問題