2

私はFFmpegに少し慣れていませんが、いくつかのmysqlデータベースを学習するプロジェクトとして、ビデオアップロードサイトを作成しようとしています。

このコードでサムネイルを作成しようとすると、次のようになります。

shell_exec( "/ usr / local / bin / ffmpeg -i anim.flv -an -ss 00:00:03 -an -r 1 -vframes 1 -y test.jpg");

何も起こらず、anim.flvと同じディレクトリに画像が表示されません。コードに何か問題がありますか、それとも問題は何でしょうか。

4

3 に答える 3

1

これは私にとってはうまくいきます:ffmpeg -ss 00:00:10 -i $file -y -an -vframes 1 $dir/$name.png

于 2012-11-15T13:55:55.137 に答える
0

このコードを試してください

$flvfile = 'clock.flv';
$imagefile = 'test.jpg';
exec('ffmpeg  -i ' . $flvfile . ' -f mjpeg -vframes 1 -s 150x150 -an ' . $imagefile . '');
于 2013-08-14T11:06:51.387 に答える
0

このコマンドを試してください:

$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」を追加します。次に、入力と出力に絶対パスを使用します。これにより、スクリプトの現在の作業ディレクトリがどこにあるかを気にする必要がなくなります。

于 2012-11-15T14:02:19.913 に答える