Hatena::ブログ(Diary)

玉虫色に染まれ! このページをアンテナに追加 RSSフィード

2008-08-24

Linuxで使える動画編集ソフト(その2)

以前書いた動画編集ソフトの紹介 の続きです。前回は kino, Avidemux, Stopmotion, PiTiVi を紹介しましたが、今回は kdenlive, OpenMovieEditor, LiVES を紹介します。

今回紹介するソフトは、前回のものとは異なり、いずれもマルチトラック編集ができるソフトです。あと、最後に動画編集ソフトではありませんが、関連する重要なライブラリの紹介もします。

kdenlive

http://www.kdenlive.org/screenshot.php

  • KDE環境用に作られたノンリニアビデオ編集ソフト
    • Gnome環境であっても動作は可能。ただし、KDE系のライブラリを幾つか必要とするので、ディストリビューションのパッケージ管理ソフト(aptやyumなど)を使って依存関係を解決させないと面倒。
  • マルチトラックに対応し、シーン切り替えの効果も複数用意されている
    • シーン切り替えの効果を付けたい場合、それぞれシーンの動画を別のトラックに、一部が時間的に重なるように配置して、その重なった部分にトランジッション効果を付加する形になる
    • タイトル文字などを重ねることもできるが、Picture in Pictureのような表現は苦手(PinPはトランジッション効果にはあるが、それを使ってしまうと「子動画へのトランジッション」とみなされて、親絵が消えたりと、変な動きをする)
  • オーディオトラックも多トラック編集可能
  • UIは癖が無く、かなり素直(さすがKDE)

感想

  • 安定性がイマイチ
    • 操作中に突然落ちることが多かった
      • 落ちても、その直前の状態をバックアップしてくれているのでデータを失なうことは少ないのです
    • 静止画などをトラックに配置する際、クリップの幅が0(もしかしたらマイナス?)として追加されてしまって、不可視で操作不能なクリップが出来てしまうことがあるという致命的な不具合に何度か遭遇しました
      • 一度こうなってしまうと、確実に有効な復帰方法はないような気がします
  • 安定性を除けば、誰にでも勧められるナンバーワンソフトなんですが……

OpenMovieEditor

http://www.openmovieeditor.org/

  • マルチトラック編集が可能な動画エディタ
    • 「複数の素材を重ねる」ことをしっかりと意識した設計
    • 動画の始め数秒にタイトル文字をかぶせる、とか、特定のタイミングで効果音を足す、といったことが直感的に実現可能
  • 入力、出力共に、扱えるフォーマットの幅が広い
  • Ubuntuリポジトリに入っている(universe: コミュニティサポート)
  • インターフェースのデザインが古臭い、というか、普通のアプリとは異なる独特な操作感。良く言えば、いかにも業務用って感じ
  • 基本マウス操作のみ
    • 数値直接入力ができない所が多い
    • 全ての操作がメニューからたどれるわけではない(というより、メニューに無い操作が殆ど)
  • 安定性は結構良い
    • 入力データに問題があった場合を除けば、試用中に落ちることは無かった。
  • 同一トラックに複数の動画を、一部が重なるように配置すると、重なった部分はクロスフェードによるシーンチェンジになる
    • シーン切り替えの効果はクロスフェードのみ。それ以外の効果はエフェクトやフィルタを駆使すれば出来るが面倒。
  • 標準で入っているエフェクトの数は少ないが、FreiOrというビデオエフェクトプラグインに対応しているため、それをインストールしておけば実用上十分なエフェクトが使える
  • オーディオトラックも複数持てる
    • Waveの波形が出るので、SEの追加もやりやすい
    • Volume Automations エフェクトを使えば、「最後の2秒でフェードアウト」などといった指定も容易

感想

  • 独特のインターフェースに慣れることが出来るなら、現状でベストの選択肢の一つ
    • 安定性が高い
    • 真っ当なマルチトラック対応をしているので、紙芝居が素直に扱えて、画像を重ねたり音を重ねたりが簡単にできる
  • UIが日本語化されてない……のは良いにしても、日本語のファイル名などが化けるのは若干困るし、タイトル等のテキストも日本語不可なのは辛い。
  • しばらく悩んだんだが、どうもカットはキーフレームでしか出来ないっぽい。元素材によっては何秒間もキーフレームが無いこともあるので注意。
  • ここ最近でも精力的に開発が進んでいるようなので、開発が進めばさらに化ける可能性アリ

今回の動画制作で使用した箇所

  • メインのツールとして使用しました
  • 背景画像を一番下のトラックに敷いて、その上に FreiOr の Scale0Tilt フィルタをかけて縮小表示した動画や、Inkscapeで作成した透明画素付きのPNG画像などのトラックを重ねています
  • Titles フィルタが使えれば文字を書くのも楽だったんですが、前述の通り日本語が使えなかったので、文字はすべて一旦PNG画像として作ってます orz

LiVES

http://lives.sourceforge.net/

特徴

  • AVI編集 兼 VJ ツール
    • VJ的に、動画を再生しながらリアルタイムに動画切り替えなどのパフォーマンスができる。また、それを記録しておいて、後から調整を加えた上で新規の動画としてエンコード、といった流れで動画制作が出来る
    • VJって何? って人はこちらをどうぞ http://jp.youtube.com/watch?v=SVf4g6v_3R8 これはLiVESで作成された動画だそうです
  • エフェクトは OpenMovieEditor と同様 FraiOr が使えます
  • もちろんAVIの編集ツールとしても一通りの物をそなえている
    • 素材動画のカット編集やトラックに素材を逐次並べて一本の動画を作ることができる

感想

  • 個人的には、「素材動画の横幅の2倍+α」以上の画面解像度じゃないとデスクトップからはみ出すUIはなんとかしてほしかったところ。
    • そのため、あんまり長時間試用してません
  • VJをやる人には事実上唯一の選択肢
    • 大方の予想通り、結構なPCスペックを要求する
  • 普通の動画編集ツールとして見ても及第点

忘れちゃいけないライブラリ

これまでに紹介してきたような動画編集ソフトは、動画の読み込みや書き出し、またエフェクト追加用に、外部のライブラリをサポートしていることがあります。動作に必須な物はインストール時に間違い無くインストールされるので良いのですが、無くても動作するようなオプショナルなライブラリだと忘れられがちです。対応フォーマットやエフェクトの数が少ないと感じたら、ライブラリのインストール忘れを疑ってみてください。

以下に、忘れられがちなライブラリを思い付く限りざっと挙げてみます。

  • ffmpeg(libavcodec, libavformat)
    • 世の中の大抵のCODECとファイルフォーマットに対応できるライブラリ
    • ちなみに、Ubuntuの標準のリポジトリに入っているlibavcodecは、リスキーな(特許などでヤバい可能性のある)codecを殺してあるライブラリなので、対応フォーマットは少なくなっています。必要がある人はMedibuntuの利用を検討しましょう。
  • libogg, libtheora, liborbis
    • OGG(OGM)動画のファイルフォーマットと定番codec
  • libfaac, libfaad
    • AAC オーディオコーデック(エンコーダとデコーダ)
  • lame
    • MP3エンコーダ
  • flac
    • Free Lossless Audio Codec
  • kinoplus
    • kinoのエフェクトプラグインパッケージ
  • FreiOr
    • OpenMovieEditorやLiVESが対応している画像エフェクトライブラリ

ちなみに、上記のライブラリの殆どは、単にライブラリを呼ぶだけのフロントエンドとなるコンソールツールがあります。特に動画を扱う上ではffmpegのお世話になることが多いでしょう。

私の場合、今回ニコニコ動画に投稿した動画はOpenMovieEditorで作成しましたが、一旦、高ビットレートのAVIで出力しておいて、以下のコマンドを使ってMP4(AVC)に変換しました。これは、ニコニコ動画のサーバーで再変換されると、文字が潰れがちになるので、その回避のためです。

$ ffmpeg -i movie.avi -vcodec h264 -r 15 -s 512x384 -b 400000 -acodec aac -ar 44100 -ab 64 movie.mp4

まとめ

結局、2回に渡って長々と色々なソフトを紹介してきました。

個人的には、完成度の点では OpenMovieEditor、UIデザイン的にはkdenliveが気に入ったのですが、いずれも完璧なソフトというわけではありません。

結局のところ、「これを使っておけば全てOK!」と言えるような決定版が無いのが、フリーのLinux界の現状のようです。

そんな現状を認識してしまうと、「動画編集ソフトを作りたい!」という衝動にかられてしまうのですが、とてもそんな時間は確保できそうにないので自重するしかありません(;;)

2008-08-18

Linuxで使える動画編集ソフト(その1)

先週ニコニコ動画に投稿した動画は、思ったより多くの人に楽しんで頂けたようで何よりです。というか、再生数やマイリスト数はもちろんですが、「wwww」だけのコメントであってもそれは「面白かった」の意思表示なわけで、凄く嬉しいもんですね。投稿してみて良かった。

さて、今日は、その動画を作成する際に検討した動画編集ソフトの紹介です。最終的に使用したOpenMovieEditor以外にも幾つも試用しましたので、軽く使ってみた感想なども添えました。

kino

http://www.kinodv.org/

特徴

  • ド定番のDV編集ソフト
  • Ubuntuの公式リポジトリに入っている
  • 動作はかなり安定している
  • 元がDV編集のためのソフトなので
    • カムコーダを接続して取り込み→編集が一貫して出来る
    • 一方、AVIやFLVの素材は直接扱えず、一旦DV形式に変換してインポートすることになる(変換は自動で行なわれるが、ファイルが沢山出来て管理が面倒)
  • マルチトラックの編集は非対応(画面切り替え効果は付加可能)
    • 複数の動画を並べて切り貼りし、ちょっとしたエフェクトを足す、といった事は簡単に出来る一方で、それ以上のことをするのは難しい

評価

  • ホームビデオの編集にはこれで十分
    • 子供の学芸会の記録、みたいな用途では、素材は基本的に全て動画のみで、必要な音は全て動画に入っているので、動画の切り貼りだけ出来れば良い
    • 簡単なタイトル文字ぐらいならエフェクトで付けられる
    • 各シーン間の繋ぎ演出も簡単に付けられる
    • 機能が絞られている分、動作は安定しているし、操作もそんなに難しくない
  • ちょっと凝ったことをしようとするとアウト。たとえば、
    • 動画にフレーム絵や字幕を付ける
    • BGMや効果音を足す
      • なので、今回制作したような紙芝居がベースの動画には不向き

Avidemux

http://fixounet.free.fr/avidemux/

特徴

  • こちらもド定番のAVI編集ソフト
  • Ubuntuの公式リポジトリに入っている
  • 動作はすごく安定している
    • 他のソフトではハングしてしまうような不正形式のデータも正常に読んでくれる
  • 対応フォーマットが幅広い
    • AVI, MPEG, MP4, ASF, QuickTime, 3GP, OGM(ogg), Matroska, flv
    • codecもlibavcodec(ffmpeg)などを取り込んでいるので大抵の物はOK
  • 直感的なカット編集ができる
    • 始点と終点を指定して切り取り
  • 動画コンテナの扱いに長けている。たとえば、以下のようなことが出来る
    • 動画から音声ストリームを分離
    • エンコード無しに動画から不要部分をカット
  • 動画や音声にフィルタをかけることもできる
    • ただし、色変換やインタレース除去、リサイズなど、動画全体に一律にかけるものが殆ど

感想

  • 編集機能は、不要部分のカットには使えるがそれ以上ではない。
  • 対応フォーマットが圧倒的に多く、不正なフォーマットも安定して読めるので、編集前の動画のしたごしらえの用途には最適
  • ビットレートで出力した自作動画を配布用に再エンコード、などといったように、単なるエンコーダのフロントエンドとして使うのもアリ

今回の動画制作での用途

  • 生の素材(下記)を、適当にカットしつつAVIに変換するといった、したごしらえのために使用
    • recordMyDesktopで録画したogg
    • ニコニコ動画に上がっている引用元flv
    • カメラで撮影したAVI
      • 私の持っているオモチャカメラ(EXEMODEのDV572ってやつ)で撮影したAVIだと、キーフレームのインデックスが壊れていて、そのまま他の動画編集ソフトに放り込むと、大抵のソフトは即死してくれますので、その回避のため

Stopmotion

http://developer.skolelinux.no/info/studentgrupper/2005-hig-stopmotion/index.php

特徴

  • その名の通り、ストップモーション(ピングーなどに代表される、コマ撮りした写真を連続再生して動画にする技法)のアニメを作成するソフト

感想

  • 本来の使い方ではないものの、紙芝居的な動画を作成するのには使えなくはないんじゃないかと思った。

PiTiVi

http://www.pitivi.org/wiki/Main_Page

特徴

  • 一言で言えば、kinoのAVI版
  • ビデオのマルチトラック編集はできないが、ビデオトラックとオーディオトラックは別になっているので、BGMや効果音を足すことはできる

感想

  • WindowsMovieMakerライクな感じ
  • これで動作が安定していれば初心者にも勧められる優良なツールなのだが、いかんせん不安定で、しばらく使っていると起動すらしない状態になってしまった

長くなっちゃったので

書き始めると結構長くなっちゃったので、続きはまた後日。

(8/24追記) 続きを書きました。→ その2: kdenlive, OpenMovieEditor, LiVES, その他のライブラリの紹介

2008-08-02

recordMyDesktop: Linuxのデスクトップ画面を動画キャプチャする

今日は、表題の通り、Linuxのデスクトップ画面をキャプチャするためのソフトであるrecordMyDesktop を紹介します。

何かのアプリの操作解説だとか、デモンストレーションだとかいった用途にしか使い道の無いソフトなので、あまり需要は無いかもしれませんが、いざ使おうと思ったときには意外と困る事が多いので、使う可能性のある人は予めインストールしておいたほうが良いかもしれません。

同種のソフトは幾つかありますが、私が試した限りでは最も安定していてコマ落ちが少なかったのでrecordMyDesktopをおすすめします。このソフトは、基本的に前のフレームからの差分を元に必要な部分だけを記録することで負荷を低減しているので、画面全体が激しく動く物でない限り非常に低負荷で動作します。

以下は、簡単な使い方の紹介です。

インストール

Ubuntuの場合、パッケージが universe リポジトリに入っているので、apt-getなりaptitudeなりでインストールしてください。

コンソール版単体の物と、GTKによるGUIフロントエンドがあります。

$ sudo apt-get install recordmydesktop gtk-recordmydesktop

手動でビルドする場合は ogg や theora-vorbis のライブラリが必要となるので若干面倒かもしれません。 (まぁ、それでも、動画を扱うアプリとしては依存が少ない方ではありますが。)

CUI版の使いかた

コマンドラインで録画するファイル名を渡して起動すれば、デスクトップ全体をキャプチャできます。

$ recordmydesktop output.ogg
X:0   Y:0    Width:2304    Height:1024
Adjusted recording window is set to:
X:0   Y:0    Width:2304    Height:1024
Your window manager appears to be Metacity

Initializing...
Buffer size adjusted to 4096 from 4096 frames.
Opened PCM device hw:0,0
Recording on device hw:0,0 is set to:
2 channels at 22050Hz
Capturing!

この状態でキャプチャは始まっているので、あとは録画したいアプリ操作などを行ない、終わったら、recordMyDesktop を Ctrl+C で停止させましょう。そうすると、その間に記録された画像データをまとめて圧縮され、指定したファイルにogg動画として出力されます。

Saved 994 frames in a total of 993 requests
Shutting down.....
Encoding started!
This may take several minutes.
Pressing Ctrl-C will cancel the procedure (resuming will not be possible, but
any portion of the video, which is already encoded won't be deleted).
Please wait...
[100%] 
Encoding finished!
Wait a moment please...
   
Done.
Written 9365081 bytes
(8294177 of which were video data and 1070904 audio data)

Cleanning up cache...
Done!!!
Goodbye!

起動時にオプションを与えることで色々な指定をすることもできます。例えば……

$ recordmydesktop --no-sound --no-cursor -x 10 -y 10 -width 640 -height 480 
(音無し、マウスカーソル無し、
左端10ドットと上端10ドットを除いて左上の640x480の部分をキャプチャ)

$ recordmydesktop -width 320 -height 240 --follow-mouse -dummy-cursor black
(キャプチャサイズは 320x240 で、
常にマウスカーソルが画面の中央に映るようにキャプチャ位置を自動スクロールする。
また、見易いように、普通のマウスカーソルのかわりに、黒いダミーカーソルを表示。)

$ recordmydesktop -windowid  0x3a0001f
(Window ID が 0x3a0001f のWindowをキャプチャ。
なお、Window ID は xwininfo というコマンドで取得できます。)

GUI版のつかいかた

GUI版のgtk-recordMyDesktopの場合でも、基本的に同じことができます。

パッケージでインストールした場合、GNOMEの「アプリケーション」メニューの「サウンドとビデオ」カテゴリの中にインストールされていますので、それを選択すれば起動します。

録画範囲の設定は、表示されている画面のサムネイルをドラッグして指定できます。もしくは、「ウインドー選択」ボタンを押してから、キャプチャしたいウインドウをクリックすることでも指定できます。

CUI版の例で示したような特殊な機能は「設定」ボタンで出るダイアログから設定できるはずです。

録画ボタンを押すと、gtk-recordMyDesktopウインドウが消え、録画が開始されます。録画中は、通知エリア(デフォルトでは画面右上にある、各種の通知アイコンがでるところ)に、見慣れない灰色の四角のアイコンが出ているかと思います。そのアイコンをクリックすれば録画を終了できます。(また、アイコンを右クリックすることで録画を一時停止することも出来ます。)

動画上に録画の痕跡を残さない方法

GUI版の場合、通知エリアにアイコンが出てしまうので、gtk-recordMyDesktopで録画したことが判ってしまいます。CUI版を普通に使う場合でも、recordMyDesktopを実行している端末は開きっぱなしにしておかなければならないので、ウィンドウ一覧などに痕跡が残ります。残っていたところで、別に何の問題も無いんですが、今日はこの痕跡を残さないテクニックもついでに紹介しておきましょう。

まずは、gnome-terminal などの端末を立ち上げ、CUI版のrecordMyDesktopで録画を開始します。ただし、その際には nohup 経由で実行します。たとえばこんなかんじです。

$ nohup recordmydesktop -width 400 -height 300 out.ogg

実行開始されたら端末は閉じてしまって構いません。裏では録画が続いていますので、普通に撮りたい動作を行なってください。

終わったら、再度端末を開いて、以下のように打ち込みます。

$ killall recordmydesktop

これで、録画が停止し、動画のエンコードが始まります。途中経過は画面には出ませんが、nohupを実行したディレクトリに生成されている nohup.out というテキストファイルに随時出力されますので、適当な時間を置いてからそのファイルを開いてみて、処理が終わっているかどうか確認してください。

あとは、出来上っがった動画の頭とお尻の、端末を開いて作業している部分を消せば、録画中の痕跡は完全に消せます。

できあがった動画の扱い

出力される動画は Ogg 形式の Theora-Vorbis 動画になります。Linuxの動画編集ソフトは、大抵の場合この形式にも対応してますので、お好きな動画編集ソフトにつっこんで編集してやってください。

もし運悪くOgg非対応のソフトがお気に入りだった場合は、ffmpegなどで一旦適当な形式に変換してから読み込む必要があるでしょう。


というわけで、次回更新は動画編集ソフトの紹介をしようかと思います。