ソフトウェア
 Computer >> コンピューター >  >> ソフトウェア >> ソフトウェア

VirtualDub + AviSynthでスローモーション動画を作成する方法

数週間前に、VirtualDubのフィルターを使って動画をリサイズする方法を学びました。見た目を整えたり、出力ファイルのサイズを抑えたいという目的だけであれば、リサイズはそれほど重要に思えないかもしれません。しかし、「バレットタイム」風のスローモーション動画を作りたいのに、そのためのソフトウェアが特定のフォーマットやサイズを要求してくる――そんな特殊なニーズに直面したらどうすればよいのでしょうか?

心配いりません。その障害は前回のチュートリアルですでに克服済みです。今回は、スローモーション動画の作り方をご紹介します。主役はVirtualDub。さらに、AviSynthというもう一つの優秀なツールにも登場してもらいましょう。AviSynthは動画のポストプロダクション向けの強力なユーティリティです。ただしGUI(フロントエンド)を持たないため、コマンドラインとスクリプトで操作することになります。「おっ、難しそう」と思うかもしれませんが、ご安心ください。できるだけシンプルに解説していきます。

AviSynthのインストール・準備・設定

VirtualDubを使い始める前に、まずAviSynthをセットアップしましょう。ダウンロードしてインストールするだけで、手順は非常にシンプルです。ただし、基本パッケージには含まれていない「mvtools」という追加プラグインが必要になります。これらが揃えば、AviSynthを使う準備は完了です。

AviSynthの使い方

GUIがないため、マウス操作でポチポチ進めるような手軽さはありません。とはいえ、コマンドラインを恐れる必要はありません。テキストエディタを開いてコマンドを書くか、Web上にある既製のスクリプトをコピーしてくるだけでOKです。私は専門家ではありませんが、コードを読むこととGoogle検索くらいはできます。

スローモーション用のスクリプトはNerds Centralで見つけたものを、自分用にアレンジしたものです。作者がスクリプトの動作について詳しく解説しているため、ここでコマンドを一つひとつ説明するのは省略します。ただ覚えておいてほしいのは、AviSynthは独自の構文を持つ事実上のプログラミング言語だという点です。一つの言語を理解できれば、他もすぐに飲み込めるはずです。

以下が私の作成したスクリプトです。基本的には先述のサンプルと同じ内容となっています:

LoadPlugin("Path to mvtools.dll")
source=AVISource("Path to source.avi",false)
oSource=source
source=ConvertToYV12(source)
source=AssumeFPS(source,25)
backward_vec=source.MVAnalyse(isb=true,truemotion=true,pel=2,idx=1)
forward_vec=source.MVAnalyse(isb=false,truemotion=true,pel=2,idx=1)
cropped=source.crop(4,4,-4,-4) # by half of block size 8
backward_vec2=cropped.MVAnalyse(isb=true,truemotion=true,pel=2,idx=2)
forward_vec2=cropped.MVAnalyse(isb=false,truemotion=true,pel=2,idx=2)
fSource=source.MVFlowFps2(backward_vec,forward_vec,
backward_vec2,forward_vec2,num=250,idx=1,idx2=2)
fSource=AssumeFPS(fSource,25)
return fSource

ただし、いくつか注意すべきポイントがあります。

まず、mvtools.dllとソースファイルへのパスを正しく指定する必要があります。次に、ソースをYV12形式へ変換する命令があります。ファイルがすでに適切な形式であれば、この行は編集・削除できますし、VirtualDubで事前に変換しておくことも可能です。

source=ConvertToYV12(source)

「YV12って何?なぜ必要なの?」と思うかもしれません。答えは、厳密には必須ではないものの、動画処理には好都合だということです。専門的な言葉で言うと、YV12はプラナー形式と呼ばれ、各画像の輝度データが全ピクセル分連続して格納され、その後に色差データが続く構造になっています。これは画像処理技術に理想的なフォーマットです。……まあ、この説明は忘れてもらって構いません。

どの形式がYV12に対応しているのか詳しく知りたい場合は、AviSynthのFAQが役立ちます。一般的には、XviDでエンコードされたMPEG-4であれば問題なく動作するはずです。

もし形式の指定を間違えると、スクリプトをVirtualDubで読み込んだ際にエラーが表示されます。読み込み方法そのものについては、後ほど説明しますね。

次に、ソースに対するAssumeFPSです。適切なフレームレートを設定しておけば、勘に頼らず最良の出力を得られます。フレームレートを何度も上げ下げして試行錯誤する手間が省け、思い通りの動画を効率よく作れるようになります。

クロップ(切り抜き)

ここが少し厄介な部分です。動画の幅が4で割り切れない場合、スクリプトを読み込む際にVirtualDubから計算に関するエラーが返されます。

スクリプト内のcroppedパラメータ行をコメントアウトするという対処法もあります。それでも動く可能性はありますが、スクリプトのロジックが崩れて未定義の変数が残らないよう、十分な注意が必要です。

ですが、より良い方法があります。それは、前回学んだVirtualDubのリサイズフィルターを使って、あらかじめ動画のサイズを調整しておくことです!そう、あの時リサイズを学んだ理由が、ここでようやく分かるわけですね。

MVFlowFPS2パラメータは、スロー化した動画が持つフレーム数を決定します。ただし、実際のスローの度合いは出力時のフレームレートによって決まります。つまり最終的には、出力側のAssumeFPSが動画の速さ、長さ、そしてサイズすべてを左右するということです。このパラメータは自由に試して、ベストな結果を見つけてください。

fSource=AssumeFPS(fSource,25)

VirtualDubでスクリプトを読み込む

実は、先ほど挙げたエラーの多くは、テキストファイルを「.avs」拡張子で保存し、VirtualDubで通常の動画ファイルと同じように開くまで現れません。エラーがなければ動画が正常に読み込まれ、一定の割合でフレームが挿入されます。上記の例では10倍のスローになりますが、FPS値を変更すれば2倍や5倍など、任意の倍率に調整することも可能です。

完成した結果

AviSynthを使って制作した最終映像はYouTubeで公開しています(リンク1およびリンク2)。ぜひその品質を確認してみてください。また、これらの動画を掲載したインテリアデザインギャラリーも興味があればぜひご覧ください。

動画の縁に多少のぼやけが見られることに気づくでしょう。これはフレーム間の補間によるものです。元の撮影素材はカメラによる単発フレームの集合体で、25fpsにリサンプルした後、10倍にスロー化しています。つまりソフトウェアがフレーム間の隙間をおよそ250箇所も埋めているわけで、これは決して簡単な処理ではありません。すでに動きのあるモーション映像であれば、もともと多少のぼやけが含まれているため、より自然な結果が得られますし、そういうものだと受け入れられるケースも多いはずです。

とはいえ、まずまずの出来栄えだと思います。そして今、あなたもそのやり方を身につけたわけです。

まとめ

以上、また一つマルチメディアチュートリアルが完成しました。これであなたも動画界の副料理人(スーシェフ)です。真面目な話をすると、VirtualDubは多彩なフィルターを備えた、非常に強力で拡張性の高いメディア編集ツールです。AviSynthと組み合わせれば、ホームビデオに『マトリックス』風、あるいはジョン・ウー監督作品風の印象的な演出を加え、隣人や職場の同僚を驚かせることもできるでしょう。

AviSynthはGUIを持たないため決して扱いやすい道具ではありませんが、確実に機能します。基本的な階層型アプローチを覚えておきましょう。まずVirtualDubで一次的な修正や追加処理、トランスコードを行います。次に、利用可能なフィルターで追加の効果を実現します。最後に、サードパーティ製モジュールで仕上げの調整を加えます。以上で解説は終わりです。楽しい動画ライフを!

それではまた!

  1. recordMyDesktopで魅力的なデスクトップ動画を作成しよう

    recordMyDesktopは、シンプルで扱いやすい画面録画ソフトです。高品質で印象的なデスクトップアニメーションを手軽に作成できます。筆者が約1年半前にUbuntu 7.10 Gutsy GibbonのCompizデモ動画を作成した際に使用したXvidcapにかなり近い存在で、FlashやPDF、さらには実行形式のチュートリアルまで作れるデスクトッププレゼンテーションソフト「Wink」とも相通じるものがあります。 私がrecordMyDesktopと出会ったのは、最近リリースされたPCLinuxOS 2009.1のGnome版をレビューしたときでした。このディストリビューションには優れたマ

  2. LinuxでDeVeDeを使ってDVDムービーを作成する方法【初心者向けガイド】

    前回はDVDムービーのリッピング方法を学びました。今回はその逆、DVDムービーの作成方法を解説します。特に、DVD以外のフォーマットに対応していない古いDVDプレーヤーをお持ちの方や、自作動画を含むさまざまな形式の動画が大量に溜まっている方には役立つ内容です。このチュートリアルでは、DeVeDeを使ってMPEG-4動画をDVDに変換する手順を紹介します。それでは始めましょう。DeVeDeのインストールDeVeDeは主要なLinuxディストリビューションのほとんどで公式リポジトリに含まれています。パッケージマネージャーから簡単にインストールできるため、特別な作業は必要ありません。DeVeDeの使