LoginSignup
19

More than 5 years have passed since last update.

すでに存在する動画をタイムラプスっぽく変換するffmpegのシェル

Last updated at Posted at 2016-03-29

サクッと作れて中々仕上がりが良かったので共有します。

タイムラプス動画がハヤってますね!

最近facebookなどを見ているとお料理のタイムラプス動画などがよく流れてきます。
なんかカッコいいですよね。
僕も作ってみたいです。

でも、GoProとかないので、既存の動画をなんとかできないかと思った次第です。

タイムラプスの仕組み

タイムラプスの仕組みはクレイアニメと同じです。
コマ撮りの画像を繋げたパラパラ漫画ですね。

ffmpegを使って実現するには

さて、ここからが本題!
タイムラプスはクレイアニメなので、
次の手順で普通の動画をタイムラプスに変換します。

  1. 既存の動画から一定間隔でキャプチャを切り出す。
  2. 切り出したキャプチャをまた繋げる。

以上です!簡単ですね。

さっそくコマンド

まずは動画の長さを調べます。

ずらずらっと出てきますが、僕が用意したテスト用の動画は10:35でした。

$ ffmpeg -i test.MOV 

ffmpeg version 2.6.8 Copyright (c) 2000-2016 the FFmpeg developers
      〜中略〜
  Duration: 00:10:35.50, start: 0.000000, bitrate: 8675 kb/s
    Stream #0:0(eng): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuvj420p(pc, smpte170m/bt709/bt709), 640x480, 7136 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 60k tbc (default)
    Metadata:
      creation_time   : 2016-03-16 10:03:11
    Stream #0:1(eng): Audio: pcm_s16le (sowt / 0x74776F73), 48000 Hz, stereo, s16, 1536 kb/s (default)
    Metadata:
      creation_time   : 2016-03-16 10:03:11

次にこの動画から、1秒おきにキャプチャを切り出します。

for i in `seq 1 635`
do
  ffmpeg -ss $i -i test.MOV -vframes 1 -f image2 ./out/test-`printf %04d $i`.jpg
done

ffmpegのオプションは下記のようになります。

オプション 概要
i 入力ファイル指定
ss 何秒目から処理するか
vframes 何フレームを対象にするか
image2 画像として出力する

1秒目から635秒目(=10分35秒)まで、1秒おきにキャプチャを切り出し、
さらにゼロ埋めの連番をつけて保存しています。

最後に画像をくっつけて動画にします。

ffmpeg -f image2 -r 15 -i ./out/test-%04d.jpg -r 15 -an -vcodec libx264 -pix_fmt yuv420p ./video-out/test-timeLapse.mp4

ここで使っているffmpegのオプション

オプション 概要
f image2 入力がjpeg画像であることを通知
r(1つ目) 15 入力フレームレートの指定。静止画の更新を毎秒15フレームに指定。ここの数字を変更すればタイムラプス動画のフレームレートを変更できるそうです。
i ./out/test-%04d.jpg 入力ファイル。この書き方で連番で画像を読み込んでくれます
r(2つ目) 15 出力フレームレートの指定だそうですが、謎です
an オーディオ無し
vcodec libx264 エンコーダはH.264。
pix_fmt yuv420p 画像形式をYUV形式でYUV420に指定

参考

今回参考にさせていただいたサイト様
ありがとうございました。

http://blog.fumiz.me/2008/10/19/ffmpeg%E3%81%A7%E5%8B%95%E7%94%BB%E3%81%8B%E3%82%89%E7%94%BB%E5%83%8F%E3%82%92%E5%88%87%E3%82%8A%E5%87%BA%E3%81%99/
http://qiita.com/riocampos/items/2f4fe927b5cf99aff767

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19