ビデオファイル(avi、mpeg、mp4...)の一部を指定し、特定の秒/分ごとに「スナップショット」を撮って一連の画像ファイル(jpegなど)として保存できるプログラムはありますか?たとえば、0時45分から1時00分までの映画部分を選択し、30秒ごとに「スナップショット」を撮ります。
ビデオプレーヤー(VLCなど)またはプラグインの一部である可能性があります...要点は、手動でスナップショットを撮るのではなく、自動的にスナップショットを撮る必要があることです。
また、これらの一連の画像ファイルをアニメーションGIFまたはPNGファイルに変換するのに最適なプログラムはありますか? (ドミナにスナップをアニメーションGIF / PNGとして保存するオプションがある場合は、確かに追加ボーナスになります。)
ベストアンサー1
これを行うために使用できますffmpeg
。持つffmpegのウェブサイトにはいくつかの例があります。。
以下はいくつかあります。
img001.jpg
これにより、、、、...という名前のサムネイルが毎分生成されます(img002.jpg
各サムネイルのシリアル番号は3桁の形式である必要があることを示します)。img003.jpg
%03d
$ ffmpeg -i myvideo.avi -f image2 -vf fps=fps=1/60 img%03d.jpg
thumb0001.bmp
10分ごとに、、...という名前のサムネイルが作成されますthumb0002.bmp
。thumb0003.bmp
$ ffmpeg -i test.flv -f image2 -vf fps=fps=1/600 thumb%04d.bmp
短いビデオにしたい場合は、もう一度助けを求めてくださいffmpeg
。で議論されたそのウェブサイトのこのページ。
以下はいくつかの追加例です。
ここで、各画像の持続時間は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
img001.jpg
画像に番号が付けられ、シリーズ(、、、img002.jpg
)によって並べ替えられず、ランダムな画像文字列がある場合、img003.jpg
ffmpegは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
。