ビデオスナップショットを撮るプログラム?

ビデオスナップショットを撮るプログラム?

ビデオファイル(avi、mpeg、mp4...)の一部を指定し、特定の秒/分ごとに「スナップショット」を撮って一連の画像ファイル(jpegなど)として保存できるプログラムはありますか?たとえば、0時45分から1時00分までの映画部分を選択し、30秒ごとに「スナップショット」を撮ります。

ビデオプレーヤー(VLCなど)またはプラグインの一部である可能性があります...要点は、手動でスナップショットを撮るのではなく、自動的にスナップショットを撮る必要があることです。

また、これらの一連の画像ファイルをアニメーションGIFまたはPNGファイルに変換するのに最適なプログラムはありますか? (ドミナにスナップをアニメーションGIF / PNGとして保存するオプションがある場合は、確かに追加ボーナスになります。)

ベストアンサー1

これを行うために使用できますffmpeg。持つffmpegのウェブサイトにはいくつかの例があります。

以下はいくつかあります。

  1. img001.jpgこれにより、、、、...という名前のサムネイルが毎分生成されます(img002.jpg各サムネイルのシリアル番号は3桁の形式である必要があることを示します)。img003.jpg%03d

    $ ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg
    
  2. thumb0001.bmp10分ごとに、、...という名前のサムネイルが作成されますthumb0002.bmpthumb0003.bmp

    $ ffmpeg -i test.flv -f image2 -vf fps=fps=1/600 thumb%04d.bmp
    

短いビデオにしたい場合は、もう一度助けを求めてくださいffmpeg。で議論されたそのウェブサイトのこのページ

以下はいくつかの追加例です。

  1. ここで、各画像の持続時間は5秒です(1秒あたり1/5フレームの逆数)。 FFmpegに入力ファイルのFPSオプション(1秒あたりのフレーム数)を非常に低い値に設定するように指示することで、出力でFFmpegがフレームを繰り返すようにして、各画像を一定時間画面に表示します。

    $ ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -r 30 out.mp4
    
  2. img001.jpg画像に番号が付けられ、シリーズ(、、、img002.jpg)によって並べ替えられず、ランダムな画像文字列がある場合、img003.jpgffmpegはbashスタイルのワイルドカードもサポートします(*はすべての文字数を表します)。

    $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.jpg' -c:v libx264 out.mp4
    

またはPNG画像の場合:

    $ ffmpeg -f image2 -r 1 -pattern_type glob -i '*.png' -c:v libx264 out.mp4

結果のビデオをアニメーションGIFにするには、次のSO Q&Aで説明されている手順を使用できます。ffmpegを使ってaviからgifを生成するには?:

$ ffmpeg -i video.avi -t 10 out%02d.gif

それから:

$ gifsicle --delay=10 --loop *.gif > anim.gif

ツールへのリンクは次のとおりです。gifsicle

おすすめ記事