このコマンドを試してください:
$infile = 'anim.flv';
$outfile = 'test.jpg';
exec("/usr/local/bin/ffmpeg -i " . escapeshellarg($infile) . " -an -ss 00:00:03 -an -r 1 -vframes 1 -y " . escapeshellarg($outfile) . " 2>&1", $output, $returnValue);
if (!file_exists($outfile)) {
die("Could not generate thumbnail. ffmpeg output: \n\n" . implode("\n", $output));
}
このようにして、ffmpeg が機能しない場合に詳細な出力を得ることができます (「2>&1」は ffmpeg のエラー出力を stdout にリダイレクトします。それ以外の場合は取得できません)。
コマンドを修正する可能性のある2つの提案があります。まず、出力ファイルを指定する前に引数「-vcodec mjpeg -f rawvideo」を追加します。次に、入力と出力に絶対パスを使用します。これにより、スクリプトの現在の作業ディレクトリがどこにあるかを気にする必要がなくなります。