ffmpeg によるバイク走行動画のスタビライズ(手ぶれ補正)

アクションカメラ

アクションカメラで運転中の動画を撮影するととても楽しいです。

僕が一昨年購入したのは中華製ですが、安価といえど立派に撮影できます。マウント用のアタッチメントが最初からたくさん付属していて、防水ケースも付属。この手のものは他にもいくつも出ていますが、僕が購入したアクションカメラは、防水ケースに入れたまま USB で給電・撮影ができるもので重宝しています。

ただ、ハードウェアはもとよりソフトウェアでの手ぶれ補正(スタビライズ)機能がついていないため、撮れた動画はかなり「ガタガタ」しています。(Go Pro のような、ちゃんとしたアクションカムは補正機能があるのかなぁ)

振動が気になる

出来るだけ振動が少なく、実際に見ている視点と同じような画にするため、僕はヘルメットのチン部分にカメラをしばりつけています。それでも振動が気になる。エンジンや車体の振動というより、走行している路面そのもののガタつきの影響のようです。

比較的、路面がキレイな国道でこんな感じ。

体が振動して視点位置が細かくズレても人間の目は優秀で、注視点をトレースしてモノを見ます。そのため、実際にはもっと滑らかな動きとして目に映っています。

Youtube の手ぶれ補正

Youtube に手ぶれ補正機能があったな。と思って調べてみると、動画をアップロードする際に設定ができたクイック加工の「スタビライズ」は、2018年8月頃に使えなくなったみたいです。残念。

なお、最近は Youtube Studio (β)なるものが出てきて、ブラウザ上で簡単な編集ができるみたいです。あくまでも、まだ「簡単な」編集だけのようですが、今後に期待。

ffmpeg の vid.stab プラグイン

動画で困った時の駆け込み寺、ffmpeg でのスタビライズについて調べてみると、とても強力な vid.stab というプラグインがある事が分かりました。

公式のデモビデオがスゴい!

左側の元動画はこれだけブレブレなのに、右側の補正後の動画はとても滑らか。

さっそく手元の ffmpeg でも使えるか見てみます

$ ffmpeg 2>&1 | grep -o enable-libvidstab
enable-libvidstab

コンパイルオプションに –enable-libvidstab が入っています。わあい、使えるようです。こちらのページを参考に元動画 rec.mp4 に補正をかけて out.mp4 として保存します。

ffmpeg -i rec.mp4 -vf vidstabdetect -an -f null - && \
ffmpeg -i rec.mp4 -vf vidstabtransform -y out.mp4

最初のコマンドで手ぶれを検知して transforms.trf という情報ファイルを生成し、次のコマンドでその手ぶれ情報を用いて補正をかけるようです。補正できた動画がこちら。

おおー、良い塩梅!

画面右下にある日時表示が動いているのが、映像を主体にして手ぶれ補正されている証拠。もっと細かなオプションもあるようなので、さらに調整するとヌイヌイと進む映像になりそうです。

投稿者:

dyama

佐世保のシステムエンジニアです。詳しいプロフィールやこのブログについてはこちらをご覧ください。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください