6

shell_execまたはexecを使用してPHPからffmpegを実行しようとしていますが、失敗します。なぜこれができるのですか?コマンド/usr/bin/ffmpegは端末から動作するので、試してみました

<?php
$cmd = "/usr/bin/ffmpeg";
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";
}
?>

そして私は取得し続けます

There was a problem! Array ( [0] => sh: /usr/bin/ffmpeg: not found )

どんな助けでも大歓迎です。

実行可能ファイルのアクセス許可は

-rwxr-xr-x  1 root   root      106552 Jun 12 09:53 ffmpeg

$ cmdを実行which /usr/local/bin/ffmpegすると、空の配列が返されます。

4

2 に答える 2

6

あなたの質問への答えは予想よりも簡単かもしれません。/usr/local/bin との両方を チェックインしています/usr/bin。これには複数の解決策があります。

  1. あなたは走っ$ whereis ffmpegて、あなたが得るものを見ることができます。結果に基づいて、$cmd変数を変更します。whereis何も返さない場合、システムはそれがどこにあるかを知りません。$PATHこれを環境変数に追加して、再試行できます。

  2. $ find /usr -name "ffmpeg"実行するか、同様のものを試すことができます。このプログラムがインストールされていることを確認することにより、これをより迅速に解決するのに役立ちます。

  3. apacheがffmpegにアクセス/使用する機能を拒否する何らかの制限がある場合は、いつでもドキュメントルート内のbinフォルダーに保存できます。(/ path / to / doc / root / bin / ffmpegのようなもの)私は以前にこれを行ったことがあるので、それが機能することを知っています。


ffmpegが実際ににあることがわかった場合は、次のように/usr/local/bin変更してみてください$cmd

$cmd = '/usr/local/bin/ffmpeg';
于 2012-11-06T04:07:22.283 に答える
-2

問題がありました!

Array (
  [0]  => FFmpeg version 0.6.5, Copyright (c) 2000-2010 the FFmpeg developers
  [1]  => built on Jan 29 2012 17:52:15 with gcc 4.4.5 20110214 (Red Hat 4.4.5-6)
  [2]  => configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64
          --mandir=/usr/share/man --incdir=/usr/include --disable-avisynth
          --extra-cflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions
          -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -fPIC'
          --enable-avfilter --enable-avfilter-lavf --enable-libdc1394 --enable-libdirac
          --enable-libfaac --enable-libfaad --enable-libfaadbin --enable-libgsm
          --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb
          --enable-librtmp --enable-libschroedinger --enable-libspeex --enable-libtheora
          --enable-libx264 --enable-gpl --enable-nonfree --enable-postproc --enable-pthreads
         --enable-shared --enable-swscale --enable-vdpau --enable-version3 --enable-x11grab
  [3]  => libavutil 50.15. 1 / 50.15. 1
  [4]  => libavcodec 52.72. 2 / 52.72. 2
  [5]  => libavformat 52.64. 2 / 52.64. 2
  [6]  => libavdevice 52. 2. 0 / 52. 2. 0
  [7]  => libavfilter 1.19. 0 / 1.19. 0
  [8]  => libswscale 0.11. 0 / 0.11. 0
  [9]  => libpostproc 51. 2. 0 / 51. 2. 0
  [10] => Use -h to get full help or, even better, run 'man ffmpeg'
  [11] => Hyper fast Audio and Video encoder
  [12] => usage: ffmpeg [options] [[infile options] -i infile]...
          {[outfile options] outfile}...
  [13] =>
)
于 2016-01-22T16:05:48.007 に答える