1

人々がビデオをアップロードするシンプルなサイトを持っているので、アップロードされたビデオからシンプルなサムネイルを生成したいと考えています。私は多くのWebサイトからこれを行うためのあらゆるトリックと方法を試しましたが、問題なくコマンドを実行できません。

$video = $_FILES['vpopupdropin']["tmp_name"];
    $ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin";
    $image = "manu.jpg";
    $second = 12;
    $size = "150x90";
$command = "$ffmpeg -i $video -an -ss $second -s $size -vcodec mjpeg      $image";
echo $command;
    shell_exec($command);

    if(shell_exec($command)){
        echo 'okay';
        echo '<img src="'.$image.'"/ >';
        }

    else{
        echo ' Problem';
        }

私はPHPからコマンドをエコーし​​、これは私が得たものです: C:\Ffmpeg\ffmpeg-20130605-git-3289670-win64-static\bin -i C:\xampp\tmp\php27F1.tmp -an -ss 12 - ■ 150x90 -vcodec mjpeg manu.jpg 問題

上記のコマンドを取得してCmdに入力すると、このエラーが発生しました

[image2 @ 00000000000000003d87580] ファイルを開けませんでした: manu.jpg av_interleaved_write_frame(): 入出力エラー。アップロードされたファイルは、保存している場所にうまく転送され、サイトでうまく再生されます。つまり、ファイルが破損していません。しかし、サムネイルコマンドは失敗しているようです。このサイトの他の質問もチェックしましたが、正しい解決策を得ることができなかったようです. コマンドのパスは正しく、少なくとも次のことを確認しました

4

1 に答える 1

3

ffmpeg に名前を付けていませんでした :-)\\binフォルダを実行しようとしました。

$ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin";

あなたはffmpeg.exeを忘れています

$ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin\\ffmpeg";

次のコマンドで.aviに対して実行します

ffmpeg -i Echo2012.avi -r 1 -s 1024x576 -f image2 -vframes 1 foo-001.jpg

コマンドを 2 回実行しないでください。

$command = "$ffmpeg -i $video -an -ss $second -s $size -vcodec mjpeg      $image";
echo $command;
shell_exec($command);

    if(shell_exec($command)){

編集 :

コマンド文字列:

ffmpeg -i upload.tmp -an -ss 12 -s 150x90 -vcodec mjpeg     manu.jpg
  • -vcodec codec (output) : ビデオ出力コーデックを設定します。出力映像のスイッチです。画像を出力したい。
  • -an : オーディオ ストリームを無効にできます。画像にオーディオは必要ありません。
  • -ss : 位置 (入力/出力) 入力オプションとして ( -i の前に) 使用すると、この入力ファイルを位置にシークします。

私のコマンド文字列:

ffmpeg -i Echo2012.avi -r 1 -s 1024x576 -f image2 -vframes 1 foo-001.jpg
  • -r : fps (入力/出力、ストリームごと) 。フレーム レート (Hz 値、分数または省略形) を設定します。
    入力オプションとして、ファイルに保存されているタイムスタンプを無視し、代わりに一定のフレーム レート fps を想定してタイムスタンプを生成します。
  • -f image2 : 出力ファイル形式を強制しますimage2。形式は通常、出力ファイルのファイル拡張子から推測して自動検出されます。
  • -vframes number (出力) : 記録するビデオ フレームの数を設定します。
于 2013-06-18T22:05:28.127 に答える