Ubuntu Weekly Recipe

第181回Avidemuxで動画の変換をする

今回は「MADを作ってみよう第2弾」ということで、動画編集に関するレシピをお届けします。

前回扱ったKdenliveは、複数のファイルを組み合わせてビデオを作成する目的には適しているのですが、ひとつの動画ファイルに対して変換や補正、抽出を行うには少々おおげさな印象を受けます。今回ご紹介するAvidemuxは動画ファイルのコンバーターであり、筆者はkdenliveで取り込むクリップの下処理に利用しています。

Avidemuxとは

AvidemuxとはLinuxではもちろん、WindowsやMac OS X、BSDでも利用可能なビデオ編集ソフトウェアです。kdenliveとは異なり、ひとつのビデオファイルに対する操作を主眼としているため、リニア編集ソフトウェアと呼ぶのがふさわしいかもしれません。

マルチプラットフォームに対応するためにさまざまなフレームワークを利用しています。音声の入出力にSDL(Simple DirectMedia Layer)を利用しているほか、操作画面のツールキットにGTK+もしくはQtのオープンソース版を利用しています。そのためGTK+版のパッケージ「avidemux」と、Qt版のパッケージ「avidemux-qt」が存在します[1]⁠。

図1 GTK+版の外観
図1 GTK+版の外観
図2 Qt版の外観
図2 Qt版の外観

バージョン2.5からはプラグインによって拡張するように設計が変更されています。オープンソースソフトウェアであるMplayerやAviSynthで使用されているフィルターも使うことができます。また、Wineを併用することで、avsproxy.exe経由でAviSynthのフレームサーバーに同期することも可能です。

Avidemuxは、同名のパッケージでインストールできます。同時にプラグインパッケージや映像や音声の圧縮に関するさまざまなパッケージをインストールします。

図3 Synapticパッケージマネジャーでインストールを指定。依存関係でたくさんのパッケージが同時にインストールされる
図3 Synapticパッケージマネジャーでインストールを指定。依存関係でたくさんのパッケージが同時にインストールされる

動画ファイルのロード・変換出力

メニュー「ファイル」の項目「開く」から動画ファイルを読み込みます。読み込んだ動画ファイルは同じく項目「プロパティ」で圧縮方法などの詳細を見ることができます。

図4 動画ファイルのプロパティ。今回は音声を持たないファイルを読み込ませている
図4 動画ファイルのプロパティ。今回は音声を持たないファイルを読み込ませている

変換して出力するには、ウィンドウの左から映像と音声それぞれの圧縮方法とそのオプション、そしてファイルの形式(コンテナ)を選択し、メニュー「ファイル」から項目「保存⁠⁠、⁠映像を保存」と進みます。ファイル名を指定して保存すると、レンダリング出力されます。

メニュー「自動」からは、各種メディアやSony社のPlayStation Portable、Apple社のiPod向けのプロファイルを自動で適用します。

映像と音声の分離

Avidemuxはその名前の通り[2]⁠、動画を映像と音声に分離する操作が簡単にできます。

例えば音声だけをファイルとして取り出す場合、動画ファイルを読み込み、メニュー「音声」から項目「保存」を指定します。この際、同じメニューの項目「エンコーダー」から、あらかじめ出力する音声ファイルのフォーマットを指定しておいてください。何も指定しない場合は「copy」となり、動画ファイルのコンテナに入っている音声データそのままのフォーマットを保存します。

図5 主音声トラックから組み合わせる音源を選択できる
図5 主音声トラックから組み合わせる音源を選択できる

音声のない映像のみのファイルとするには、メニュー「音声」から項目「主トラック」を選択して開くウィンドウにおいて、項目「音声ソース」「なし」を指定します。

また、ここで「外部AC3」「外部MP3⁠⁠、⁠外部WAV」を選択することで他の音声ファイルと組み合わせることもできますが、このような操作をする場合はkdenliveなどのノンリニアビデオ編集ソフトウェアを使うほうが簡単かと思います。

動画ファイルのクリッピングと連結

kdenliveと同様、必要な箇所だけを切り出す作業、クリッピングを行うことができます。Avidemuxの場合は、不要時間帯を削除したり、特定の時間帯を切りだして別な時間に連結する、別な動画ファイルを末尾に連結するといった操作となります。

画面下部のスライダーとA地点/B地点ボタンで操作対象となる時間帯を選択し、メニュー「編集」から「カット」⁠コピー」⁠ペースト」⁠削除」の4つの操作を行うことになります。

フィルターの適用

映像に対してフィルターを適用することで、さまざまな補正を行うことができます。フィルターは、操作画面左、映像の圧縮方法とそのオプションを選択する箇所の下で追加します。そうすると、フィルターを操作するウィンドウが開きます。

図6 映像 フィルタ マネージャ
図6 映像 フィルタ マネージャ

フィルターを適用する前後を確認するには、フィルターを適用するためのウィンドウ「映像 フィルタ マネージャ」でボタン「プレビュー」をクリックします。あるいはメインの操作画面でも可能です。操作画面上のプルダウンリストから「サイド」「トップ⁠⁠、⁠分離」を選択すると、適用前後の映像を同時に表示することができて便利です。

図7 サイドを選択した場合
図7 サイドを選択した場合

実際に作業してファイルをアップロードしてみた

筆者は今回、2009年に作成したMADをAvidemuxとKdenliveを使って再び出力しなおし、ニコニコ動画にアップロードしてみました。

ニコニコ動画:https://www.nicovideo.jp/watch/sm15004121

オリジナルの動画はサイズが320x240でしたので、Avidemuxで512x384にリサイズし、薄まった色調やコントラストをフィルターで補正、音声は差し替えるためにまるまるカットして、h.264(MPEG-4 AVC)によって映像を圧縮したクリップを作成しました。組み合わせる音声ファイルは本連載の第137回で紹介した方法でファイルを作成しました。これら3つのファイルをkdenliveで読み込み、ノンリニアビデオ編集をして出力しました。ビットレートの制限があるため、7分ほど黒い映像で埋めて対策しましたが、レンダリングプロファイルを見直す方がよりスマートな方法です。

また編集中、音声に合わせてクリップを差し替える際にどうしてもPulseAudioのレイテンシーが気になってしまったので、以下のファイルをログインユーザーのホームディレクトリに「.asoundrc」というファイル名で配置しました。これによってログインユーザーに限り、ALSAライブラリーのDefaultがPulseAudioサウンドサーバーではなく、JACKサウンドサーバーに音声を出力するようになるため、より低いレイテンシーが期待できます。

pcm.!default {
 type plug
 slave { pcm "jackplug" }
}
pcm.jackplug {
 type jack
 playback_ports {
  0 system:playback_1
  1 system:playback_2
 }
 capture_ports {
  0 system:capture_1
  1 system:capture_2
 }
}

Kdenlive側は「Settings」の項目「Configure Kdenlive」で表示できる設定画面の「Playback」から、音声の出力にALSAライブラリーのDefault設定を利用するように設定しました。

図8 Kdenlive側の設定ウィンドウ
図8 Kdenlive側の設定ウィンドウ

もちろんPulseAudioのレイテンシに関する設定を変更することでも対処できますが、筆者はJACKに慣れているためにこうしてみました。サウンドシステムに関しては、本連載の第177回が助けとなるでしょう。

ついでに、2009年の出力と今回の出力を、xjadeoを利用して比較してみました。xjadeoは映像だけを再生するソフトウェアで、JACKトランスポート機能やALSAシーケンサー機能のMTCに同期することができます。本来はJACKトランスポート対応ソフトウェアで映像に合わせて音声を作ることを目的としたソフトウェアですが、2本のビデオを同期再生し映像だけチェックするような用途にも使うことができます。

図9 2009年の出力(左)との比較。補正により青系統の色味が変化している
図9 2009年の出力(左)との比較。補正により青系統の色味が変化している
図10 2009年の出力(左)との比較。補正により赤系統の色味が変化している
図10 2009年の出力(左)との比較。補正により赤系統の色味が変化している

おすすめ記事

記事・ニュース一覧