2010年12月12日

Ubuntu でレコード音源を録音してみる

近所の電気屋が安売りをしていたので USB オーディオ・アダプタを購入して LP(レコード)からの音声の録音に挑戦してみた。


・環境設定

使用したアダプタは「DAVOXL」。音質はそれほどでもないが(量子化ビット 16 ビット, サンプリングレート入出力 48000Hz) USB バスパワー供給の安価で使いやすいアダプタ。接続してシステムが認識したら「サウンド」を開いて音声の設定。


入力をアダプタからに変更。


・録音

設定が完了したら録音開始。録音に使用するソフトウェアとして使い易い「Audacity」を使用した。まずは録音(サンプリング)のパフォーマンスを設定。


録音ボタンを押して音声録音を開始し、 LP プレーヤーの電源を ON にして再生する。これで音声が出力されるとアダプタから PC に音声が入力される。


録音が完了したらファイルの書き出し(ファイル→書き出し)。今回は MP3 の 320kbps のオーディオファイルとして書き出した。


See Also:
JACK を使用した Linux における柔軟な音声編集

2010年12月11日

PulseAudio の入力ソースを変えて Ubuntu のデスクトップをキャプチャ・録音する

Ubuntu Desktop において標準で PulseAudio サウンド・サーバを使用して音声を出力している場合、 PulseAudio の音声の入力ソースを変える事によりオーディオのソースを変更してキャプチャや録音を行う事が出来る。キャプチャや録音に際して「マイクによる入力」ではなく「モニター上の音」をキャプチャしたい場合(または逆の場合)の切り替え等に利用できる。

・「サウンド」から設定

メニューから「システム」→「設定」→「サウンド」を選択し、「プロファイル」を変えることによってこの設定は簡単に出来る。 Ubuntu Desktop における PulseAudio は、デフォルト設定で入力に利用するデバイスを選択するとその入力ソースから音声を入力する設定となり、出力のみ(Output)を選択すると入力ソースを「モニター上の音」とする設定となる。


・PulseAudio Device Chooser

「PulseAudio Device Chooser」を利用するとより詳細なデバイス設定が行える。インストールされていない場合は「padevchooser」パッケージをインストールするとメニューの「サウンドとビデオ」に登録される。起動するとシステムトレイにアイコンが表示され、ここから左クリックで PulseAudio の設定が行える。「Manager...」を選択するとサーバの状態の確認が出来る。


「Devices」を選択すると利用可能なデバイスが表示される。「Sinks」 が「出力」に利用するデバイスで、「Sources」が「入力」に利用するデバイス。


各デバイスは選択して「Properties」をクリックすると詳細が表示される。入力に利用するデバイスを変えるには「Sources」から切り替えたいものを選択して「Properties」をクリック。


システムトレイを左クリックで「Default Source」→「Other...」を選択し、入力ソースとしたいデバイスの「Name」の値を入力する(Properties の Name の値をコピーアンドペースト)。


これで入力に使用するデバイスが切り替わる。 「モニター上の音」を入力ソースとしたい場合には語尾が「monitor」のものを入力ソースとすればよい。


・キャプチャや録音

PulseAudio を介していればツール側のデバイスの変更の必要はなく、 PulseAudio のソースを変えることで入力ソースが変わる。キャプチャなら「gtk-recordMyDesktop」、録音なら「Audacity」や Ubuntu 標準の「サウンド・レコーダ」を使用してみると指定した入力ソースでキャプチャや録音が行える。

・音声のループバック

PulseAudio のループバックモジュールを使うと、「デスクトップとマイクの音を同時に録音」といった JACK のような柔軟な音声処理が可能になる。そのような処理が必要な場合は下記を参考にやってみると良いだろう(コマンドラインから PulseAudio を制御する方法)。

Ubuntu日本語フォーラム - skypeで音楽を流すには

See Also:
recordMyDesktop を使用した Linux におけるデスクトップのキャプチャ
ウェブカメラを用いる Ubuntu におけるデスクトップのキャプチャ
JACK を使用した Linux における柔軟な音声編集

2010年9月20日

Ubuntu のシステムのブートとリカバリ

Ubuntu のシステムの起動においてトラブルが発生した場合に有効な「Live CD」と「GRUB ブートローダ」を使用するシステムのリカバリ方法についてのメモ書きです。

1: Ubuntu の Live CD で起動できなくなったシステムからファイルを救出する

リカバリをする前に PC に取り残されてしまったファイルを救出する方法は様々あると思いますが、今回は簡易的な解決方法として「Ubuntu の Live CD を使用する」方法を紹介したいと思います。なお、この方法は Linux のシステムだけでなく Windows のシステムに対しても有効な方法なので、 Windows のシステムからファイルを救出する方法で紹介します。

1: Ubuntu Desktop Editon Live CD を用意する

Download Ubuntu

自分の PC のスペックにあった Ubuntu Desktop Editon の Live CD イメージを用意して CD-R に焼いておきましょう。

2: PC を起動して Ubuntu Live CD をブート

PC 起動時にインストール CD をブートします。うまくいけば Ubuntu の Live CD が起動するはずです。

3: PC に変更を加えないで Ubuntu を使ってみる

起動したメニューから「PC に変更を加えないで Ubuntu を使ってみる」を選択します。これによって PC の HDD に変更を加える事無く Ubuntu が起動します。

4: マウントされた HDD からファイルを救出

Ubuntu のデスクトップシステムが起動したら、メニューから「コンピュータ」を選びます。Windows で使用していた HDD がマウントされ、アイコンが表示されているはずです。あとは外付け HDD なり USB メモリなりを利用してファイルを救出します。


こんな感じで Windows のシステムに介入できると思います。

これだけです。簡易的な方法ですが、手っ取り早く出来るのでお薦めです。 PC の修復にメドがたたない時、ファイルの救出にまずこの方法を試してみてはいかがでしょうか。ちなみに今回使用した Ubuntu のバージョンは 8.10 です。それ以下のバージョンの Ubuntu でも出来るかどうかは確認していません。

・HDD がマウントされない場合

解決案 1: fdisk コマンドの利用

Ubuntu のデスクトップシステムを起動しても PC の HDD がマウントされていない場合、この手段を使用してファイルを救出するには HDD を手動で強制的にマウントする必要があります。この手段には若干手間が掛かります。

まず HDD が認識されていると思われるデバイスパスを探します。これにはハードディスク・パーティション設定コマンドである「fdisk」が使えます。

まず自分の PC の HDD の接続方法からデバイスパスを推測します。デバイスパスは HDD の接続方法が USB, SATA, SCSI なら「sda」、 IDE なら「hda」です。ただし、これは推測であり完全にそうというわけではありません。他に HDD があれば「sdb」かもしれないし「hdb」かもしれません。

あとは fdisk コマンドで対応するデバイスパスを打ち込みます。

$ sudo fdisk /dev/sda (これはデバイスパスが「sda」の場合)

コマンドの入力を求められるので p を入力します。

コマンド (m でヘルプ): p

認識されているデバイスのパーティションが列挙されます。システム名(ファイルシステム)などからマウントされていないと思われるパーティションを確認します。そして実際にそのデバイスのパーティションをマウントします。

$ sudo mkdir /mnt/windows

マウントポイントを作成して・・・。(ここでは仮に windows としました)

$ sudo mount -t ntfs-3g /dev/sda2 /mnt/windows -o force

マウントします。(/dev/sda2 がマウントされていないデバイスのパーティションと仮定しています)

-t ntfs-3g はファイルシステムとして NTFS フォーマットをマウントするというオプションです。Windows XP や Vista のファイルシステムならこれでいけます。その他のファイルシステムなら対応するフォーマットを指定する必要があります。 -o force オプションで「強制的」にマウントします。これで半ば強引ですがマウントできます。

しかし Ubuntu は動作が安定しているためこのような小難しい工程を践まなくてもオートマウントで自動的にマウントしてくれるはずです。また、一見マウント出来ていないようでもアイコンをクリックするとマウントしてくれる事もあります。

解決案 2: /proc の情報を利用

Linux では実行中のプロセス及びシステムの情報は /proc 下に配置されています。この情報を利用すればデバイスの特定は簡単です。パーティションの情報は「/proc/partitions」にあります。

$ cat /proc/partitions

インストールされて稼働しているシステムなら、システムが認識しているパーティションはマウントされていなくても表示されます。ただ Live CD から起動した場合に認識されるかの確認は行っていません。ですので、この方法ではもしかしたら無理かもしれません。

あくまで簡易的なファイル救出手段の一つとして、小難しく考えずにやってみるのが一番だと思います。起動するだけなら PC の HDD にはなんら影響を与えません。

※ 当然ですが、物理的に壊れている PC にこの方法は無理です。また、ウィルスに感染していると思われる Windows に対しての使用も推奨出来ません。

2: GNU GRUB ブートローダを外部メディアから起動してシステムを修復


Linux システムが立ち上げられなくなった時には、インストールされているブートローダではなく、 CD 等のメディアデバイスから GRUB ブートローダを使用してシステムを手動でブートしシステムに介入して修復を試みます。この方法が有効なのは「ブートローダ自体に問題がありシステムがブート出来ない時」です。

GRUB の起動メニューが作成されていない状態からシステムを起動するので、コマンドモードを使用して手動で起動オプションを設定します。

1. ハードディスクのパーティションを特定する

GRUB が起動したら、まず割り当てたいハードディスクのパーティションを指定するために、ハードディスクの情報を収集します。GRUB のハードディスクのデバイスは Linux とは違い IDE, SCSI 等の接続方法に関わらず「hd」で始まります。後は BIOS で認識される順番から番号が振られます。1台目は 0 です。この番号からハードディスクを指定し、次にそのパーティションを確認します。これには「cat」コマンドを使います。

grub > cat (hd0,

この例では hd0 のパーティションを確認します。ここで Tab キーを押すと入力が補完され、パーティションの一覧が表示されます。これも 0 から番号が振られているので、ファイルタイプの情報から指定したいパーティションを推測します。

grub > cat (hd0,0)/

これだ、と思ったパーティションを入力して、そのパーティションの内容を確認してみます。候補を入力して Tab キーを押すと、パーティションの内容が表示されます。こうやってハードディスクとパーティションの情報を収集します。

2. kernel ファイルを指定

起動するカーネルファイルを指定します。これは大抵の場合 /boot ディレクトリ下に存在するはずです。cat コマンドを駆使して色々探します。次にブートするシステムのルートファイルシステムのデバイス名を特定します。これは /etc/fstab に記入されている情報から推測できます。

grub > kernel (hd0,0)/vmlinuz ro root=/dev/sda1

起動するカーネル(この例では hd0,0 の /vmlinuz )と、ルートファイルシステムを指定します。(この例では /dev/sda1 )

※ GRUB 2 ではこのコマンドは linux に変更されています。 GRUB 2 へとアップデートした Ubuntu でブートを行っている場合でも GRUB 2 の起動イメージを用いれば同様のプロセスでシステムのブートが可能です。(GRUB 2 の CD ブートイメージは検索エンジンで探せばすぐに見つかります)

grub > linux (hd0,0)/vmlinuz ro root=/dev/sda1


3. initrd ファイルを指定

システムの起動時に使用する initrd イメージを指定します。これも /boot ディレクトリ下に存在するはずです。通常カーネルと同じバージョンのものを指定します。

grub > initrd (hd0,0)/initrd.img

(この例では hd0,0 の /initrd.img )

4. ブートする

grub > boot

指定した設定でシステムをブートします。うまくいけば指定通りのシステムが起動するはずです。

・Super Grub Disk を使う

Super Grub Desk

Super Grub Disk は、 GRUB の修復をする為の強力なツールです。 GRUB が壊れて起動できなくなった場合に、上記のように GRUB を使ってコマンドでシステムを立ち上げるのが面倒(困難)ならこのツールの出番です。 Super Grub Disk (CD にイメージを焼いたもの等)を PC 起動時にブートさせます。立ち上がるとメニューが表示され、「Detect any OS」を選択するとインストールされているシステムのうちどれかをブートして立ち上げてくれます。 GRUB1 と GRUB2 にそれぞれ対応するイメージがあるので、万が一に備えインストールされている GRUB のバージョンに合わせたものを用意しておくと便利です。

・ブートローダ使用時の注意

マルチユーザの Linux システムをシングルユーザーモードで使用するのはセキュリティ上危険です。しかし、ブートローダからの起動パラメータによってはシステムのシングルユーザーモードでの起動を許してしまう事があります。これを防ぐ為に「ブートローダにパスワードを設定する」方法もありますが、この方法では CD からブートされた GRUB からのシングルユーザーモードでの起動を防ぐ事は出来ません。

システムを完全に保守するには、「BIOS にパスワードを設定する」、「フロッピーや CD から起動できないようにする」設定が必要です。

2010年7月14日

Ubuntu におけるウェブカメラのキャプチャ

Ubuntu でウェブカメラをキャプチャしてみた。

使用したウェブカメラは BUFFALO の「BSW13KM02BK」。 UVC と UAC をサポートしており、 USB 接続のみで映像のキャプチャだけではなく本体に内蔵されているマイクで音声も拾うことが出来る。その準備としてまず音声デバイスの設定から始める。

・音声の設定

現行の Ubuntu なら USB を接続するだけでデバイスを認識してくれる。メニューから「システム」→「設定」→「サウンド」を選択し、「ハードウェア」でウェブカメラの入力がサポートされていれば利用可能な状態。


次にオーディオの入力と出力を制御するプロファイルを設定。入力に使用するのはウェブカメラのマイク機能なので、それのデバイス選択。正常に機能していればマイクが音を拾うと入力レベルのゲージが上がる。マイクの感度は入力の音量を調節することで制御出来る。

出力のデバイスには PC で標準で使用しているデバイスを選択。  これらの制御は PulseAudio サウンドサーバで行われており、「入力」と「出力」のデバイスの組み合わせの設定だけでも簡単な音声の制御が出来るようになっている。音声設定はこれで完了。


・ウェブカメラの映像のキャプチャ

ウェブカメラの映像をリアルタイムでデスクトップ上に出力する。これを実現するためのソフトとして今回は「VLC メディアプレイヤー」を使用した。どんなプラットフォームでも何でも再生する素晴らしいプレイヤーとして有名だが、高機能で普通の再生以外にも色々な機能を備えている。このプレイヤーに備わっている「デバイスからのキャプチャ」機能を使用してウェブカメラの映像をデスクトップ上に出力する。メニューから「メディア」→「キャプチャーデバイスを開く」を選択。


キャプチャーモードを「Video for Linux 2」、ビデオデバイスに自分の環境がデバイスとして認識したウェブカメラのものを入力。ここでは「/dev/video0」。この VLC ではオーディオのキャプチャは行わないので空欄のままにしておく。正常なら「再生」ボタンを押すとカメラの映像が VLC で再生される。


・その他ウェブカメラ映像のキャプチャや編集に使えるソフト

Cheese Webcam Booth

GNOME のシンプルなキャプチャソフト。「特殊効果」をつけての「写真の撮影」と「動画の録画」が可能。ウェブカメラを使って簡単に写真や動画を撮ったり、シェアしたい場合に便利。

WebcamStudio

ウェブカメラやその他の映像ソースをキャプチャ・編集する機能がある動画編集ソフトの一つ。ウェブカメラ映像のキャプチャや編集を行いたい時に使えるツールだが、マシンスペックによっては思うように動作しない様子。 GetDeb リポジトリの含まれているのでソースを追加している場合は APT を利用してインストール出来る。

2010年6月1日

Ubuntu 10.04 で Google 日本語入力メソッド Mozc を使ってみる

Google 日本語入力メソッドがオープンソース化され Linux でも利用できる「Mozc」として公開されている。 Ubuntu でも利用可能だが、ソースをビルドしなければならないので使用するのが多少面倒だ。

code.google.com - Mozc

だが、幸いにも Launchpad でパッケージを公開してくださっている方がいるので、そのパッケージを有り難く使用させてもらい、さっそく Mozc を導入してみた。

Launchpad - kitashi_PPA

・インストール Lucid (Launchpad PPA, 10.04 対応)

$ sudo add-apt-repository ppa:arctica0316/ppa
$ sudo apt-get update
$ sudo apt-get install mozc-server ibus-mozc mozc-utils-gui

・インストール Maverick (10.10 以降標準ディレクトリでサポート)

$ sudo apt-get install mozc-server ibus-mozc mozc-utils-gui

※ SCIM 入力メソッドで Mozc を使用する場合

$ sudo apt-get install scim-mozc

・iBus(Ubuntu 標準の入力メソッド)

「システム」→「設定」→「IBus の設定」で入力メソッドに「Mozc」を追加。

Mozc を標準設定にして念の為一旦再起動。


・使ってみた

噂に違わない驚くべき入力補完。


・SCIM(scim, scim-bridge)

メニューから「システム」→「言語サポート」で IM システムに scim(scim-bridge)を選択。scim-bridge は scim では難しい Flash での日本語入力やフォーカスから外れた入力スペースへの入力等、入力補助機能が強い。


SCIM の設定で IM エンジンの Mozc にチェックを入れて使用可能にする。


iBus とは若干異なる使い勝手だが、入力の状態を視認し易く、元から日本語入力環境に強い側面があるので、 iBus が使い辛いと感じる場合はこちらの入力メソッドを使ってみるという選択肢もある。

2010年4月28日

Ubuntu のログイン画面をカスタマイズする

(10.10)GDM2Setup でログイン画面の外観を変更

GDM2Setup

GDM2Setup を導入すると Ubuntu のログイン画面(GDM)をカスタマイズ出来る。 GDM テーマを用いてログイン画面を大幅に変更するのは面倒だが、このツールを使うと Ubuntu の「外観の変更」でサポートされている範囲でログイン画面をカスタマイズする事が可能だ。

・インストール (Launchpad PPA, 10.04 対応)


$ sudo add-apt-repository ppa:gdm2setup/gdm2setup
$ sudo apt-get update
$ sudo apt-get install python-gdm2setup

インストールすると「システム管理」に「Login Screen (GDM2Setup)」が登録される。これを選択するとログイン画面をカスタマイズ出来る。カスタマイズ出来る項目は以下の通り。

・General

ログイン設定。初めから設定出来る「ログイン設定」と大体内容は同じ。

・Wallpaper

ログイン画面の背景。ログイン画面の背景が設定した画像になる。「Blur」をクリックするとボヤかす事も出来る。

・Decoration

ログイン画面の GDM テーマをカスタマイズ出来る。変更できるのはログイン画面の「GTK テーマ」と「アイコンテーマ」。インストールしているものを含めて「外観の設定」で設定した外観と統一すると見栄えが良くなるかもしれない。


(11.04)Ubuntu Tweak でログイン画面の背景を変更

Ubuntu Tweak

Ubuntu Desktop の強力なカスタマイズツールである「Ubuntu Tweak」を導入するとログイン画面の背景の変更が出来る。なお、 Ubuntu Tweak はこれ以外にも様々な設定が簡単に行える非常に便利なツールなので、 Ubuntu のデスクトップをカスタマイズしたい際にはインストールしておいて損はない。

LiberOS - Ubuntu をインストールしたらすぐに追加したい「Ubuntu Tweak」

・インストール (Launchpad PPA, 11.04 対応)

$ sudo add-apt-repository ppa:tualatrix/ppa
$ sudo apt-get update
$ sudo apt-get install ubuntu-tweak

インストールすると「システム管理」に「Ubuntu Tweak」が登録される。実行して Ubuntu Tweak の設定項目のひとつである「スタートアップ」から「ログインの設定」を選択。変更できる外観は「ロゴ」と「背景」。



(11.10)Simple Lightdm Manager を使う

Ubuntu 11.10 ではログインが LightDM に変更されている。この画面をカスタマイズするには Simple Lightdm Manager が使えるようだ。

なんでもかんでもコンピュータ - 【Ubuntu 11.10】ログイン画面の背景とロゴをGUIで変更(カスタマイズ)するツール -- Simple-Lightdm-Manager


(12.04)ログインしようとしているユーザーの壁紙が表示される

Ubuntu 12.04 ではログインしようとしているユーザーの壁紙が表示される(ログインするユーザーを決定するとそのユーザーの壁紙が動的に表示される)。その動作性からログイン画面の背景をカスタマイズする必要性は薄れている。

見られて恥ずかしい壁紙を使っているとログインしなくても見られる点に注意が必要。

2010年4月16日

ノンリニア動画編集ソフト OpenShot による動画編集

Ubuntu 10.04 からバージョン 1.1 がリポジトリに登録される、ノンリニア動画編集ソフトの新星「OpenShot」の紹介。

OpenShot

・簡単な使い方

素材をクリップとして取り込み、それをドラッグアンドドロップでタイムラインに配置していく。配置したクリップには「トランジション」と「効果」タグから選択した効果をドラッグアンドドロップで付与する事が出来る。簡単に使う分にはこれらの操作とタイムラインの操作だけで動画編集を行える。


・OpenShot の設定

メニューから「編集」→「設定」で行えるが、非常にシンプルな構成で重要な設定は作成する動画の「ビデオ・プロファイル」の設定ぐらいしかない。ちなみにこれは「プロファイル」を選択すると自分で定義する事が可能。


・クリップに適用出来る演出効果

クリップを配置して右クリックするとそのクリップに演出効果をつける事が出来る。 OpenShot ではあらかじめこの効果として「フェード(フェードイン・アウト)」、「アニメーション効果(移動とズーム)」、「配置(クリップの大きさと配置)」のプリセットが用意されており、これを組み合わせるだけである程度の効果をつける事が出来るが、細かい設定は「属性」を選択する事で行える。


属性を選択するとこのような設定ウィンドウが開き、クリップの詳細な設定が出来る。


「一般」

クリップの「映像」と「音声」の制御(出力するかしないか)を設定出来る。

「長さ」

再生するクリップの長さ(クリップ全体の再生時間からの再生箇所の指定)を秒単位で設定出来る。

「スピード」

クリップの再生速度を指定出来る。シンプル設定では「2倍」や「2分の1」といった単位で、詳細設定では秒単位で指定できる。また、再生方法を逆再生に指定する事も出来る。

「配置」

クリップの「始点」から「終点」までのキーフレム内でのクリップの状態を設定出来る。設定できるのは「大きさ(%)」、「表示位置(%)」、「アルファ値(%)」の三つで、始点と終点でこの値を定義することによってクリップの状態が変化(アニメーション)するようになる。

「オーディオ」

クリップのオーディオ出力設定が出来る。「ボリューム」と「フェードイン・アウト」効果の使用及び効果時間の秒単位での設定が可能。

「ビデオ」

クリップのビデオ出力設定が出来る。「Stretch Full Screen(クリップをビデオ・プロファイルの大きさにストレッチして表示する)」と「Maintain Aspect Ratio(クリップのアスペクト比を維持する)」オプションと、表示の並べ方の設定、「フェードイン・アウト」効果の使用及び効果時間の秒単位での設定が可能。

「効果」

エフェクト効果を追加することが出来る。このエフェクト効果はタブの「効果」から選択してクリップにドラックアンドドロップで付与する事が出来るが、詳細な設定や削除はここから行える。

設定した効果は「プレビュー」で確認できる非常に便利な仕様になっており、特に「配置」の確認はこのプレビュー機能が非常に役に立つ。

・映像のトランジション

映像のトランジション処理には「トランジション」タグから付与したい効果を選択し、その位置にドラッグアンドドロップで付与する。


トランジションは適用する「範囲」及び「方向」を指定でき、範囲内で指定した方向にある隣接したトラックへと映像のトランジション処理が行われる。トランジション処理が行われる領域及び方向はタイムライン上に視覚的に表示される。また、トランジションは「マスク」に指定する事も出来る。こうするとトランジションはアニメーションしなくなり、指定した範囲のマスキングとして機能する。トランジション及びマスクの効果範囲を指定するには「リサイズツール」を使ってトランジションの端をつまんでリサイズしてやればよい。


これらの設定も付与したトランジションを右クリックして操作出来、また「属性」で詳細な設定が可能だ。


・タイトルクリップの作成

メニューから「タイトル」を選択するとタイトルクリップを作成出来る。様々な形のプリセットを選択し、そこからタイトルクリップを作る事が出来る。「Use Advanced Editor」を実行すると、作成したものを更に「Inkscape ベクターグラフィックスエディタ」で詳細編集する事が出来る。


作ったクリップはプロジェクトに追加され、クリップとして使用できるようになる。上手く使えばタイトルのみではなく字幕機能としても利用できそうだ。


・動画のレンダリング

「ビデオファイルの書き出し」ボタンをクリックすると動画をレンダリングする。レンダリングには「シンプル」と「詳細」を指定でき、シンプルでは一定のプリセットにおける動画のレンダリング、詳細設定では OpenShot がサポートする限りのあらゆるコーデックの組み合わせでレンダリングが可能。


簡単に触れてみたが、 OpenShot は「シンプル」と「機能性」を上手く両立させた操作感となっている。機能性に関しては現状は Kdenlive に及ぶとは思えないが、安定性に優れ十分に使い易く、便利に活用できる動画編集ソフトの一つである事には間違いない。将来的な機能面の向上が楽しみだ。

2010年3月28日

FFmpeg で HE-AAC コーデックを使う


tipok.org.ua - HE-AAC+ Codec as Shared Library

HE-AAC をサポートするライブラリ libaacplus と FFmpeg にそれを対応させるパッチを公開してくれている。これを使うと FFmepg においてライブラリである libaacplus を使用した HE-AAC(3GPP High Efficiency Advanced Audio Codec)の変換が出来るようになる。

※ 注意 - ライブラリと FFmpeg のどちらもソースからビルドをする必要がある。既に APT を用いて FFmpeg をインストールしている場合は要注意だが、 /usr/local ディレクトリ下にインストールされるので APT を使って /usr ディレクトリ下にインストールされた FFmpeg とは競合しない。

1: インストールに必要なパッケージの用意

autoconf
libaacplus のインストールは autogen.sh で行う。

subversion
パッチを当てる事が可能なリビジョンの FFmpeg のソースのチェックアウトに使用する。

patch
FFmpeg のソースにパッチを当てるのに使用する。

libx264-99 以上のバージョンの libx264
FFmpeg で libx264(H.264)を使う場合に libx264-99 以上のバージョンが必要。

2: インストール

1. libaacplus (2.0.2 new API)

ソースファイルをダウンロードして展開した後、次のコマンドでインストール。

$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

2. FFmpeg

How To では「Here is code for debian/ubuntu linux」と表記されている。ディストリビューションによっては問題が発生するかもしれない。

How To のコマンドの通りにパッチを当てても「Perhaps you used the wrong -p or --strip option?」と問われパッチが当たらない場合は、全ての項目を手動で当てる必要がある。

$ svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg -r 25711
$ cd ffmpeg
$ wget http://tipok.ath.cx/downloads/media/aac+/libaacplus-simple-sample/ffmpeg-patch/ffmpeg-aacp2.10112010.diff
$ touch libavcodec/libaacplus.c
$ patch -p7 < ffmpeg-aacp2.10112010.diff

パッチを当てようとすると次の動作を問われるので、 「working copy」の値を「File to Path」に入力する。これを7回繰り返すと完全にパッチが当たる。

can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|Index: configure
|===================================================================
|--- configure (revision 25711) 
|+++ configure (working copy) ← この太字の位置の値を
--------------------------
File to patch: configure ← ここに入力

パッチによって ./configure で libaacplus を使用するオプションの --enable-libaacplus がサポートされる。これを含めて FFmpeg を設定し、ビルド。この時に他にサポートしたいコーデックがあったら一緒に設定しておく(下の configure は一例としてメジャーな形式をサポートした単純なもの)。 選択出来るライブラリやオプションは ./configure --help コマンドで参照出来る。ソースからビルドをするのでそれぞれのデベロップメント・パッケージ(パッケージの語尾が dev のパッケージ)をインストールしておく必要がある。

$ ./configure --prefix=/usr/local --enable-shared --enable-gpl --enable-nonfree --enable-libx264 --enable-libxvid --enable-libvorbis --enable-libfaac --enable-libmp3lame --enable-libaacplus
$ make
$ sudo make install

このライブラリでは HE-AAC のデコードは出来ない。デコードには libfaad2 が対応。

・WinFF でプリセットを作成

WinFF

FFmpeg の GUI ラッパーである WinFF に HE-AAC に対応した FFmpeg のプリセットを作成しておくと便利だ。ただし、比較的新しいリビジョンの FFmpeg では若干オプションに指定するパラメータが変更されており(ビットレート指定で kb ではなく k のみ)、サポートされているバージョンの WinFF ではこれに対応しておらず、プリセットとして機能しない点に注意。


 メニューの「Edit」から「Preferences」を選択して使用する FFmpeg をインストールしたものに切り替える。上記のコマンドでビルドをすると「/usr/local/bin」ディレクトリ下にインストールされるのでそれを指定。


次に HE-AAC に対応するプリセットを作成。ここでは MP4 (H.264 AVC/HE-AAC) のプリセットを作成してみる。メニューの「Edit」から「Presets」を選択。詳細に使いこなすにはオプションを熟知する必要があるが、簡単に使用する分には元からあるプリセットを書き換えるだけでよい。ここでは「MP4 Fullscreen」のプリセットのオーディオのオプションを変更。コーデックを「-acodec libaacplus」、ビットレートの標準設定を「-ab 48k」とした。仕様上 72kbps 以上のビットレートには出来ず、指定してもエラーとなり変換出来ない。


正しく機能しているとそのプリセットで変換可能となる(音声のコーデックに libaacplus が使われているのが確認できる)。

2010年3月23日

EasyTAG を使用してオーディオファイルのタグを編集する

音声ファイルタグ編集ツール「EasyTAG」の使い方です。 EasyTAG を利用すると MP3, AAC, MP2, Ogg, FLAC 等のメジャーな形式のオーディオファイルの ID3 タグ(他各フォーマットに対応するタグ形式)編集が簡単に出来ます。

EasyTAG

1. EasyTAG の設定

EasyTAG のメニューから「設定」を選ぶと EasyTAG の設定が出来ます。

・ファイルの設定

ファイル名にある不正な文字を置き換える

このオプションを有効にすると、タグ情報に Windows ではファイル名として使用できない「?」等の文字が使用されており、その情報からスキャン機能でファイル名を更新した場合に、ファイル名へのその文字の適用を回避して他の文字に置き換えたファイル名で更新してくれます(タグ情報はファイルシステムに影響しないので置換される事はありません)。

親フォルダの更新時刻を更新する

これは「Amarok 1.4」等のフォルダの更新時刻から自動でコレクションの情報を更新する機能をもつオーディオプレイヤーで便利に使えるオプションです。


例えば Amarok 1.4 は Amarok 1.4 以外でタグを編集した場合、ファイル名に変更がないと自動更新をしてくれず、タグ情報のみを変更した場合に情報が反映されません。このオプションを有効にすると、タグ情報を変更した時にその親フォルダの更新時刻を更新し、 Amarok 1.4 の自動更新でその対象になるようにします。こうするとタグを編集しただけでも自動更新機能が働いてコレクションが更新され、すぐさま設定を反映してくれます。


See Also: iPod と連動する高機能メディアプレイヤー Amarok 1.4

・ID3 タグの設定

ID3 タグの書き込み

ID3v1 と ID3v2 のタグをつける事が出来ます。この場合 v2 タグと v1 タグは一つの MP3 ファイルに両方付与することが出来ます。 v2 タグは MP3 ファイルの先頭、 v1 タグは最後に付与され、両方のバージョンに対応出来るようになっています。 v2 タグではタグへの画像の付与、タグ情報に Unicode の使用が出来ます。一般的に使用されている「UTF-8」が汎用的です。

v2 タグは付与できる情報量が多い分 v1 よりサイズが大きい(特に画像を付けると大きくなる)点に注意が必要です。一つ一つのファイルのサイズは微々たるものでも、数が多くなってくるとそれなりに膨れ上がります。

ID3v2 タグの互換性

最新である ID3v2.4 でのタグ書き込みは下位互換に注意が必要です。タグを付ける場合にはアプリケーションによってはタグの互換性で読み込めない可能性もあることを考慮しておいた方がよいかもしれませんが、そのようなケースは稀で、現行で便利に利用できるものはほぼ間違いなくサポートされています。「古いバージョン ID3v2 タグを自動的に変換する」オプションを有効にしておくと、 ID3v2.2 より古いバージョンの ID3v2 タグを ID3v2.2 に自動変換してくれます。

ID3v2 タグの圧縮及び CRC-32 の付与

ID3v2 タグは圧縮によるサイズダウンと CRC-32 情報の付与が可能ですが、これらの情報は ID3v2 タグの存在自体を一度消して(ID3v2 タグを使用しないオプションにして情報を更新してから使用するオプションにして更新する)から付け直さないと反映されません。また、圧縮に関してはタグに画像を付与する場合以外は殆ど効果がありません。 EasyTAG においてタグに画像を付与する場合、 ID3v2 タグへの画像の付与は付与した時点で画像の為にタグのサイズが拡張され、これは画像を取り除いても元のサイズに戻りません。この場合も IDv2 タグの存在自体を消去して付け直す必要があります。


文字化けする日本語ファイルの読み込み

日本語のファイルが読み込み時に文字化けする場合は「ID3 タグ読み込み時の文字セット」オプションを有効にします。読み込み時の文字エンコードを Shift_JIS にしておけば殆どの日本語ファイルに対応できるはずです。また、 EasyTAG は文字エンコードを自動的に指定したものに変換してくれる機能を備えているので、文字化けに困っている場合は重宝します(下記「2. 基本的なタグ付与の方法」の「編集内容を保存」を参照)。


・CDDB の設定

EasyTAG は CDDB の情報を利用してタグを付ける機能がありますが、あまり便利に使えるものではありません。 EasyTAG においては手動検索での情報の検索と付与が便利に使えます。手動検索に使用する CDDB は「www.gnudb.org」が機能しています。 CDDB からの情報取得のやり方に関しては後述します。


2. 基本的なタグ付与の方法

ツリー構造からディレクトリを指定するとそのディレクトリ下に存在する対応するオーディオファイルがリストアップされます。タグ情報を付与したいファイルを選択すればそのファイルのファイル名とタグ情報を編集出来ます。

選択

タグを編集するにはまず編集したいファイルを選択する必要があります。ディレクトリ下の対応ファイル一覧(画面中央)を左シングルクリックで一つのファイルを選択、左ダブルクリックでそのファイルがあるディレクトリを一括指定、右クリックから「全ファイルの選択」でリストにあるすべてを選択が出来ます。特定のファイルのみを指定するには通常のファイル選択同様に Ctrl キーを押しながら左クリックで可能です。


入力・適用

ファイルのタグ情報は一つ一つ丁寧に入力する事も出来ますが、それだと非常に面倒です。オーディオファイルの情報には「アーティスト」や「アルバム」といった共通する項目が多く存在する為、それを柔軟かつ簡単に適用する「指定したファイルに指定した情報を適用する」為の機能が便利に使えます。タグ情報を編集する項目には情報を入力出来るボックスの横に四角いボタンがあります。このボタンをクリックすると選択している全てのファイルに入力している情報が付与されます。


例えば、アーティスト情報を全てのファイルに入力したい場合は、全てのファイルを選択してアーティストの項目に情報を入力し、横のボタンを押してやれば全てのファイルにそのアーティスト情報が適用されます。一つのファイルのタグ情報を元に複数のファイルにそれを適用したい場合は、元となる一つのファイルを選択した後に適用したいファイルを選択してボタンを押すと適用出来ます。

「トラック」情報は「トラックナンバー/トラック総数」で付与でき、トラックナンバーの「#」ボタンを押すとカレントディレクトリでのそのファイルの並び順がそのままトラックナンバーとして入力され、トラック総数の「#」を押すとカレントディレクトリに存在する音声ファイルの総数が入力される便利な機能も備えています。これも他の項目同様に横のボタンを押すとその情報を選択しているトラックに適用できます。

編集内容を保存

情報を編集したファイルはファイルブラウザにおいてデフォルトで赤色で表示され、編集されたファイルである事が視覚的に表示されます。編集が完了し、編集内容をファイルに反映させるにはメニューの「設定」の下にある「ファイルを保存」のボタンを押します。編集内容は「保存」するまでファイルの情報として反映されないので、「編集後に保存」する必要があります。特定のファイルを選択していないとリストのファイル全て、選択している場合は選択したファイルに保存が適用されます。


何も編集していないのにフォルダ内のファイルが赤く表示され、編集内容を適用するように訊かれる場合はそのファイルのタグの文字エンコードを自動で指定したものに変換してくれた場合です。この場合は適用すると文字エンコードが指定したものへと変更されます。

3. スキャナを使用するタグ編集

EasyTAG の真価は備わっている強力なタグ編集機能である「スキャナ」を使用する事で発揮されます。スキャナの基本的な機能は「ファイル名からのタグの付与」、「タグからのファイル名とフォルダの変更」、「タグフィールドの編集」の3つで、これらの組み合わせによって柔軟で便利なタグ編集が可能です。それぞれの機能と使用例を紹介したいと思います。


・タグを付与する

ファイル名からタグを付与します。ファイル名からマスクを使用してタグ要素を抽出します。例えば、この画像でのファイル名は、「アーティスト - アルバム - トラックナンバー - トラック名」となっています。


このファイル名からタグ要素を抽出するにはマスクを「%a - %b - %n - %t」と入力するとファイル名にある限りの全ての情報をタグに適用できます。タグの抽出は凡例とその組み合わせ(マスク・コード)で行い、その組み合わせによってファイル名から抽出される結果はコードの下に表示してくれます。ファイル名から抽出する情報はマスク・コードを編集する事で対応します。あらかじめ一通りのファイル名の組み合わせに対応するプリセット(マスク・エディタ)も用意されており、自分が定義したマスクコードもそこに保存出来るようになっています。


 適切なコードを入力したら、スキャナを実行します。この例の場合では全てが同じ形式のファイル名となっているので、同じコードで全てのファイルに適用出来ます。実行するとタグにコードに基づいたそれぞれの情報が適用されます。


・ファイル名とフォルダ名の変更

ファイル名とフォルダ名の変更は、タグ情報を元にして行われます。このタグ情報は編集中で保存されていない場合でも参照出来ます。先ほど付けたタグ情報を元にファイル名及びディレクトリ構造を変更してみます。「タグを付与する」やり方と同じでマスク・コードを使用して情報を抽出しますが、参照される情報はタグ情報からになります。

この例ではアーティストフォルダの直下にオーディオファイルが存在している状態を仮定とし、このスキャナ機能でファイル名の変更と同時にディレクトリの構造も整理します。入力されているタグ情報を元にコードに「%y - %b/%n - %t」と定義しました。この定義はアーティストフォルダ下に「リリース年 - アルバム名」のフォルダを作成し、その下のファイル名を「トラックナンバー - トラック」にします。ディレクトリ構造を定義する場合は Linux のディレクトリ構造を表す「/」を使用します。スキャナを実行した場合の結果も「タグを付与する」場合と同様にコードの下に表示してくれます。


スキャナを実行したら保存。変更するか尋ねられるので全て変更するように指定して保存します。ディレクトリ構造の変化を EasyTAG に認識させるには「ツリー」で変更したフォルダを右クリックし、「ツリーを更新」します。

なお、この「ツリー」表示は「保存」の右のボタンを押すとメディアプレイヤーのようにタグ情報に準拠した「アーティスト」及びその「アルバム」、「アルバム内のファイル数」を表示するモードに切り替える事が出来ます。ライブラリの状態をタグに基づいて把握出来る為、タグの編集時の入力ミスや情報の抜け落ち等の細かい修正や確認がやり易くなります。


・フィールドを編集する

「フィールドを編集する」スキャン機能は、選択したファイルのタグ情報を編集する機能です。指定したオプションを指定したタグフィールド(「フィールドの選択」においてボタンが押されている状態のタグ)に適用します。


このスキャン機能はタグの最適化に利用し、マスクを使用するスキャンの補助をします。

「ファイル名とフォルダ名の変更」の例で変更したファイル名は、整理されてはいますがスペースがあるのでコマンドラインで扱い辛いファイル名となっています。 Windows では気になりません(Linux Desktop でも今のご時世は然程気になりません)が、この機能の例としてコマンドラインでの入力に対応出来るようにスペースをアンダースコアに置換してみたいと思います。適用する範囲は「ファイル名」だけでよいので、ファイル名のみを指定してスキャンします。

スキャン後ファイル名のスペースがアンダーラインに置換されます。「保存」すればファイル名が変更されます。


フォルダ名もアンダースコアに置換する場合、スキャナ機能だけで実現するにはやや複雑や工程が必要になります。フォルダ名は「ツリー」から直接フォルダを右クリックして「フォルダ名の変更」で直接編集する事が可能です。


・CDDB からタグ情報の付与

MusicBrainz を利用する CDDB からの自動タグ情報付与機能が EasyTAG には備わってはいるのですが、この機能は Picard が本家です。

MusicBrainz Picard

EasyTag では「手動検索による CDDB からのタグ情報の付与」をします。手動検索では検索対象として単語を入力します。「アーティスト名」か「アルバム名」が効率的です。アーティスト名はアーティストによっては膨大な情報を検出し、その取得に非常に時間がかかる事がある為、そのような場合は検索対象やアルバム名との組み合わせで検索対象を絞り込みます。

マッチする検索結果は、複数の似たような検索結果がある場合は ID で一致させるのが理想的ですが、「トラック数(ボーナストラックの有無等の要素)」で絞り込む事が出来ます。トラック名やトラックナンバーが解らない場合は「トラックの再生時間」からある程度推測する事が可能です。適用する対象が検索結果のトラック順と一致しない場合は検索結果を「並び替えて」適用する事で対処可能です。