1

ターミナルを使用して連続して実行されるavconvを使用してflvファイルをmpgに変換したいと思います。私の問題は、phpスクリプトを使用してコマンドを実行することです。コードを書きましたが、結果が得られませんでした。私のコードは次のとおりです

<?php
$cmd="avconv -i http://localhost/test3/a.flv http://localhost/test3/intermediate1.mpg";
$results = shell_exec($cmd.'2>&1');
?>  

私も次のコードを試しましたが、運がありません

<?php
$cmd="avconv -i /home/elby/workspace/test3/a.flv /home/elby/workspace/test3/intermediate1.mpg";
$results = shell_exec($cmd.'2>&1');
echo $results;
?>
4

2 に答える 2

3

まず第一に、最初の実行例は意味がありません.manualによると、2avconvつのパラメータを取ります:

avconv [global options] [[infile options][-i infile]]... {[outfile options] outfile}...

httpそして、そのようなプロトコルにファイルを保存するようにプログラムに指示することはできません。

2 番目の呼び出し...これにはいくつかの問題が考えられます。

  • Web または CLI からスクリプトを実行していますか? Web サーバーは、フォルダーへのアクセス権を持たない別のユーザーを使用する可能性があります (おそらくそうするでしょう)。
  • PHP スクリプトにはタイムアウト (デフォルトは 30 秒)があり、ビデオの変換にはさらに多くの時間がかかります
  • PHPがshell_exec無効になっている可能性があります
  • PHPがsafe_mode有効になっている可能性があります
  • PHP のPATH環境変数に問題がある可能性があります。絶対パスを使用してみてください
  • 無効error_reportingにすると、すでにエラーがログに記録されている可能性がありますが、表示されません
于 2012-12-03T10:45:39.230 に答える
0
$cmd="avconv -i /home/elby/workspace/test3/a.flv /home/elby/workspace/test3/intermediate1.mpg";
$results = shell_exec($cmd.' 2>&1');
echo $results;

avconv への絶対パスを使用します。

于 2012-12-03T11:02:36.983 に答える