Ubuntu Weekly Recipe

第180回KdenliveでH.264/AACなMADムービーを作る

今回はノンリニアビデオ編集ソフトウェアであるKdenliveを使い、映像圧縮にH.264(MPEG-4 Advanced Video Coding⁠⁠、音声圧縮にAAC(Advanced Audio Coding)を利用し、MP4コンテナにデータを突っ込んだビデオを作成する方法をお届けします。

ノンリニアビデオ編集とは

ノンリニアビデオ編集は、デジタル化したビデオ情報をソフトウェア的に加工していく方法です。

「ノン」というからにはリニアなものもあり、こちらはビデオ情報をテープに記録して扱う場合の編集方法です。テープを再生するためのデッキと録画するためのデッキの2台を用意し、必要な箇所だけを成果物となるテープにダビングしていきます。

ノンリニアビデオ編集のほうがより自由度の高い編集が可能ですが、映像と音声がセットとなったビデオ情報をコンピュータで扱うため、その分、ある程の性能でなければ作業効率が落ちることに注意してください。

Linuxで利用できるノンリニアビデオ編集ソフトウェアは、本連載の第104回で扱ったPiTiViUbuntuではPPAから利用可能なCinelerra2008年にプロジェクトがスタートし猛烈な勢いで開発が進んでいるOpenShot Video EditorVJ(Visual Jockey)ソフトウェアでもあるLiVESそして今回紹介するKdenliveがあります。

Kdenliveとは

KdenliveはK Desktop Environmentのソフトウェアのひとつです。データの処理にMedia Lovin' Toolkitの提供するフレームワークを利用しています。KDEソフトウェアではありますが、もちろんUbuntu標準のGNOMEデスクトップ環境でも利用することができます。

図1 kdenliveの外観
図1 kdenliveの外観

画面は、筆者が2009年に2次利用によるMADを作成した際のプロジェクトを開いたものです。素材として使用させていただいたオリジナルは、権利侵害を指摘されて削除されてしまい、もうありません。筆者はオリジナルの作者ではないですが、とても悲しかったことを覚えています。

さてkdenliveを利用するには、パッケージ「kdenlive」をインストールします。同時に、KDE由来のパッケージが複数インストールされるほか、以下のような主要機能となるパッケージがインストールされます。

  • Media Lovin' Toolkitのパッケージ「melt」
  • ビデオレンダリングとv4l2を使ったキャプチャーのためのパッケージ「ffmpeg」
  • ffmpegライブラリのひとつで、ビデオファイルのデコード/エンコードのためのパッケージ「libavcodec52」
  • DVカメラからのキャプチャーのためのパッケージ「dvgrab」
  • デスクトップ映像のキャプチャーのためのパッケージ「recordmydesktop」
  • 映像効果のためのパッケージ「frei0r-plugins」
  • 音声効果のためのLADSPAパッケージ「swf-plugins」

Kdenliveを初回起動すると、まず「Config Wizard」が起動し、現在のシステムで利用可能な機能をひと通り見ることができます。特に「Available Codecs(avformat⁠⁠」タブでは、利用可能な圧縮方法を映像/音声/コンテナ別に見ることができます。しかしH.264はありません。Ubuntuの標準状態でインストールされる「libavcodec52」では、H.264を扱えないためです。

図2 ⁠Config Wizard」ウィンドウ
図2 「Config Wizard」ウィンドウ

映像・音声周りの技術とパテント

H.264という「技術」は開発した団体がパテントを保有しており利用許諾が関係してきます。今回利用する音声圧縮方法であるAACも同様です。映像・音声関連の技術はこのように利用許諾が関係するものが多く、Ubuntuのパッケージ「libavcodec52」はこういったものに「触れない」パッケージとしてリリースされています。

筆者が許諾規定を調べてみたところこの2つの技術は、私的複製に使用するか、インターネット上で無料で配布するビデオに使う限りは問題がないことがわかりました[1]⁠。この2つの条件の下であれば、Ubuntuでも安心して使って大丈夫です。

それではUbuntuでこれらを使うにはどうしたらいいかと言うと、⁠libavcodec52」の代わりに「libavcodec-extra-52」をインストールします。⁠libavcodec-extra-52」はmultiverseリポジトリに収められているため、あらかじめ、⁠ソフトウェア・ソース」ウィンドウでmultiverseリポジトリを有効にしておいて下さい。

図3 ⁠ソフトウェア・ソース」はUbuntuのメインメニューやSynapticパッケージマネジャーから、あるいはsoftware-properties-gtkを管理者権限で実行すると表示することができる
図3 「ソフトウェア・ソース」はUbuntuのメインメニューやSynapticパッケージマネジャーから、あるいはsoftware-properties-gtkを管理者権限で実行すると表示することができる

「libavcodec-extra-52」は依存関係により、H.264のオープンソース実装を含むパッケージ「libx264-106」もインストールします。インストールが終了したら、再度設定ウィザードを実行するために、kdenliveの「Settings」メニューから「Config Wizard」を選択します。リストに「libx264」が登場します。ffmpegの状態を変化させる度にこの作業が必要となりますので、覚えておくとよいでしょう。

図4 ⁠aac」⁠libx264」⁠mp4」がそれぞれ利用可能となっている
図4 「aac」「libx264」「mp4」がそれぞれ利用可能となっている

さて、Kdenliveの一般的な使い方は以下となります。

  • 出力プロファイルの設定
  • クリップの作成
  • クリップのクリッピング
  • タイムラインにクリップを配置
  • クリップにエフェクト設定
  • トランジションでクリップ合成
  • レンダリングでデータ出力

順を追って見てみましょう。

出力プロファイルの設定

出力プロファイルというのは、作成するビデオそのものに関する設定です。メニュー「Project」の項目「Project Settings」で表示できます。プルダウンリスト「Profile」から、使用したいプロファイルを選択します。作業途中に変更するとそれまでの内容が崩れてしまうので、あらかじめ決めておくのが無難です。

図5 ⁠Project Settings」ウィンドウで設定を確認
図5 「Project Settings」ウィンドウで設定を確認

もし好みのプロファイルがなければ、自分で作成することになります。この場合は、メニュー「Settings」の項目「Manage Project Profiles」で行います。

普通のユーザにとって配慮すべき設定項目は、⁠Size⁠⁠、⁠Frame rate」となるでしょう。それ以外の設定項目は放送に関するまとまった知識を必要としますが今回は放送が目的ではないので、⁠Pixel aspect ratio」には「1/1」を、⁠Display aspect ratio」には「16:9」あるいは「4:3」を、⁠Colorspace」は標準的な色再現域sRGBのルーツとなっている「ITU-R 709」を指定し、⁠Progressive」を有効にするのがよいでしょう。

図6 筆者がニコニコ動画用にファイルを作成する際のプロファイル
図6 筆者がニコニコ動画用にファイルを作成する際のプロファイル

クリップの作成

クリップは動画編集のための素材です。⁠Project Tree」ウィンドウでビデオ/音声/画像ファイルをインポートできるほかkdenliveのプロジェクトファイルをインポートできます。⁠Record Monitor」ウィンドウではUSBカメラやDVカメラ、ビデオキャプチャーボードから映像データを取得したり、recordmydesktopを利用してデスクトップ描画をキャプチャーしてクリップを作成できます。

図7 左が「Project Tree」ウィンドウ。右の「Record Monitor」ウィンドウにはvideo4linux2ドライバが対応するウェブカメラからの映像を表示しており、録画することが可能となっている
図7 左が「Project Tree」ウィンドウ。右の「Record Monitor」ウィンドウにはvideo4linux2ドライバが対応するウェブカメラからの映像を表示しており、録画することが可能となっている

クリップのクリッピング

クリップから必要な部分だけを切り出す作業です。⁠Clip Monitor」ウィンドウでクリップを再生しながら、ボタン「[」で開始点を、ボタン「]」で終了点を指定し、⁠Clip Monitor」ウィンドウからのクリックアンドドラッグでタイムラインに配置します。

図8 ⁠Clip Monitor」ウィンドウ。ボタン「[」「]」で選択した時間帯は薄黄緑で示される。また、マウスの右クリックメニューから選択することで、赤い縦帯で示されるガイドを作成することも可能
図8 「Clip Monitor」ウィンドウ。ボタン「[」と「]」で選択した時間帯は薄黄緑で示される。また、マウスの右クリックメニューから選択することで、赤い縦帯で示されるガイドを作成することも可能

タイムラインにクリップを配置

kdenliveのタイムラインは映像・音声別のマルチトラックとなっています。タイムラインにクリップをクリックアンドドラッグして配置します。この際、配置したクリップ上の右クリックメニューで項目「Split Audio」を選択し、映像と音声を分離してトラックに配置することができます。分離したクリップの映像と音声はクリップとしてグループ化されているため、同じく右クリックメニューの項目「Ungroup Clips」で解除ができます。

図9 画面下部のタイムライン部分。映像・音声のミュートや編集ロックのほか、マウスの右クリックメニューから選択することで、青い縦線で示されているガイドを作成することができる
図9 画面下部のタイムライン部分。映像・音声のミュートや編集ロックのほか、マウスの右クリックメニューから選択することで、青い縦線で示されているガイドを作成することができる

クリップにエフェクト設定

タイムラインに配置したクリップを選択した場合に、⁠Effect Stack」ウィンドウで、選択しているクリップにエフェクトを適用することができます。適用している順番を入れ替えることで、面白い効果を出すことも可能です。

図10 ⁠Effect Stack」ウィンドウ。左下のアイコンからエフェクトを選択する
図10 「Effect Stack」ウィンドウ。左下のアイコンからエフェクトを選択する

「Effect List」ウィンドウで、一覧と簡単な説明を見ることができます。

図11 ⁠Effect List」ウィンドウ
図11 「Effect List」ウィンドウ

トランジションでクリップ合成

トランジションは聞きなれない単語ですが、クリップとクリップを合成することを意味します。GIMPやInkscapeといったグラフィック系ソフトウェアにおける、レイヤー間の加算(addition)合成や色相(Hue)合成と同じことが、クリップ間でできると考えて下さい。加えて、クリップをスライドして合成したり、クリップの移り変わりに装飾を追加するといった動きのあるトランジションを行うこともできます。

図12 クリップの下部にある半透明の帯がトランジション
図12 クリップの下部にある半透明の帯がトランジション

トランジションを加えるには、タイムライン上のクリップの左下または右下をクリックします。トランジションを選択すると、⁠Transition」ウィンドウでその詳細を設定することができます。

図13 ⁠Transition」ウィンドウ
図13 「Transition」ウィンドウ

プルダウンリスト「Type」でトランジションの種類を指定します。動きのないトランジションは先頭が小文字で、動きのあるものは先頭が大文字で始まっています。同じくプルダウンリスト「with track」で合成先のトラック番号を指定します。⁠Auto」となっている場合は自動的に下にあるクリップに合成するか、クリップがなければ黒の映像があるとして合成します。

トランジションの中にはCompositeやRegionのように、キーフレームを設定することができるものもあります。キーフレームもまた聞きなれない単語ですが、トランジションのパラメーターを時間的に変化させるための仕組みと考えて下さい。

図14 Compositeタイプはキーフレームにより、クリップ合成タイミングや度合いの細かな調整が可能
図14 Compositeタイプはキーフレームにより、クリップ合成タイミングや度合いの細かな調整が可能

レンダリングでファイル出力

「Project Monitor」ウィンドウでここまでの作業結果を見ることができます。

図15 左下が「Project Monitor」ウィンドウ。ここでは、音声や色味の監視のために、左上に「AudioSpectrum」ウィンドウを、右に「Vectorscope」を配置している。蛇足だが、筆者はこのシーンが大好きである。絵描きのキャラクターが絵筆を振り回し、様々な色で目を楽しませてくれるからである。⁠Vectorscope」ウィンドウを見ると色信号が赤から黄色まで一回転し、さまざまな色彩が出力されていることがわかる
図15 左下が「Project Monitor」ウィンドウ。ここでは、音声や色味の監視のために、左上に「AudioSpectrum」ウィンドウを、右に「Vectorscope」を配置している。蛇足だが、筆者はこのシーンが大好きである。絵描きのキャラクターが絵筆を振り回し、様々な色で目を楽しませてくれるからである。「Vectorscope」ウィンドウを見ると色信号が赤から黄色まで一回転し、さまざまな色彩が出力されていることがわかる

納得いくビデオができたら、それをファイルとして出力します。これをレンダリングと言います。

「Clip Monitor」と同じように操作して、先に「Project Monitor」ウィンドウで出力したい時間帯を指定しておきます。もちろん全体を出力することもできます。

画面上部のボタン「Render」をクリックし、⁠Rendering」ウィンドウを開きます。レンダリングはmltフレームワークを通じてffmpegに処理させるため、そのプリセットを指定します。動画共有サイトで利用可能なフォーマットをあらかじめ調べておいて下さい。すでに主要なプリセットが登録されていますが、自分専用プリセットを用意することもできます[2]⁠。

図16 ⁠Render」ウィンドウ。表示は筆者が今回用意したプリセット
図16 「Render」ウィンドウ。表示は筆者が今回用意したプリセット

メニーコアなシステムを使っている場合は、項目「Encoder threads」で利用するスレッド数を選択できます。処理を分散してレンダリングにかかる時間を短縮することができます。

「Render」ウィンドウ下部で出力時間帯を「Full project」「Selected zone」から選択したら準備完了です。ボタン「Render to file」でレンダリングを開始して下さい。ファイルはウィンドウ上部のテキストボックス「Output file」に出力されます。

図17 レンダリング中
図17 レンダリング中

こうして出力したファイルは、日本国内法とサービス提供者の規約に従い、他人の権利を侵害しない限りは動画共有サイトにもアップロードが許されます。その際、フォーマットが合わずに再エンコードの憂き目に合う場合もありますが、その場合はffmpegのマニュアルを参照してレンダリングのプリセットを変更するなどして対応して下さい。


筆者が今回使っていて感じたのは、kdenliveやmltフレームワーク、ffmpegが2009年当時から進化し、とても使いやすく高機能となっていることです。今後の発展がますます楽しみです。

おすすめ記事

記事・ニュース一覧