オーディオ・ファイルを携帯音楽プレーヤー向けに変換するユーティリティー3種

 安価で大容量のハード・ディスクのお陰で、オーディオ・コレクションをFLACなど劣化のないオーディオ形式で自宅のネットワーク上に保存できるようになった。しかし、外出の際は、圧縮するタイプのオーディオ形式を使って巨大なオーディオ・ファイルを小さくしたいだろう。そこで、本記事では、オーディオ・ファイルを携帯音楽プレーヤー向けに手軽に変換できるツールを3種紹介しよう。

 ここで紹介するのは、KDEデスクトップの audiokonverter と、GNOMEデスクトップの audio-convert audio-convert-mod 。GNOME用の2つのツールは名前が似ているが、異なるプロジェクトだ。

 audiokonverterを入手するには、このツールのホームページにあるDebian、Ubuntu、openSUSE、汎用RPMディストリビューション用のパッケージを利用する。Gutsy(Ubuntu 7.10)、Fedora、openSUSE Build Serviceの各ディストリビューションのリポジトリーにはない。audio-convertは、Gutsy向けのパッケージnautilus-script-audio-convertが提供されている。audio-convert-modは、Fedoraリポジトリーにパッケージがあるが、ほかのディストリビューション用パッケージはない。本記事のための試用では、audiokonverterは汎用RPMパッケージで、audio-convertはソースから、audio-convert-modはFedoraリポジトリーから入手したものを使った。

 本記事ではOggとMP3のエンコードを扱うので、ここで、これらのエンコーディングのオプションについて簡単に説明しておこう。Ogg形式の場合、オーディオをエンコードする際に音質レベルを選択することができる。レベルは1から10まであり、デフォルトは3。Vorbis FAQによると、このレベルは128kbpsでエンコードしたMP3に相当するという。もし私がOggを使うならこれより上、おそらくは6にする。再びVorbis FAQを見ると、このレベルはCDの音質に近いとある。また、MP3形式の場合は、私なら192kbpsでエンコードする。このレベルは、これ以上音質レベルを高くしても携帯音楽プレーヤーに搭載されているオーディオ出力回路と移動中に使うイヤホンによる音質低下の方が大きいだろうという上限だ。

audiokonverter

converter1_thumb.png
audiokonverter

 audiokonverterは、Ogg、MP3、AAC、M4A、FLAC、WMA、RealAudio、Musepack、Wavpack、WAV、ムービーのオーディ・ファイルをMP3、Ogg、FLAC、iPodsのM4Aに変換する。オーディ・ファイルの変換中、その進行状況をターミナル・ウィンドウで確認することができる(スクリーンショット参照)。

 インストールには、このツールのホームページにあるパッケージを利用する。オーディオ形式を変換するときは、まず、変換したいオーディオ・ファイルを右クリックしてコンテキスト・メニューを開く。そして、このツールをインストールすると追加される「convert to」サブメニューで変換先のオーディオ形式を指定する。次に、元のオーディオ・ファイルを保存するかと聞いてくるのでいずれかを指定する。さらに、出力形式がOggの場合は音質レベルとステレオ/モノラル、MP3の場合は、出力ディレクトリーとVBRビットレートとステレオ/モノラルも指定する。

 出力ディレクトリー、音質レベル、ステレオ/モノラルといった設定は1つまたは複数のオーディオ・ファイルを変換するたびに指示する必要があるので、ちょっと面倒だ。しかし、コンテキスト・メニューからツールを実行する際に使われるオプションを保持しているデスクトップ・メタデータ・ファイル「/usr/share/apps/konqueror/servicemenus/audioconvert.desktop」に設定しておくことで、この手間を省くことはできる。Oggで出力する場合であれば、「-q 4」を追加すれば出力音質を毎回指定する必要がなくなる。また、デスクトップ・ファイルのショートカットに「-dontask」を追加すれば、出力ファイルのディレクトリーの設定ステップは省かれ音質やVBRレベルにはデフォルトが使われるようになる。残念ながら、出力ディレクトリーに必ずデフォルトを用いるようにすることはできない。また、コマンドラインで圧縮品質を明示的に設定することもできない。

 audioconvert.desktopの設定例を以下に示す。これは、出力形式がOggの場合、エンコードの音質を設定するステップを省き、常にレベル4を適用するようにする例だ。

[Desktop Action ogg]
Name=OGG
Icon=sound
Exec=konsole -e audioconvert -t o -q 4 %F

audio-convert

converter2.png
audio-convert

 audio-convertはbashスクリプトだ。Zenityを使ってGTKダイアログを表示し利用者と対話するのだが、少々多弁だ。次々にウィンドウを開いて質問してくる。しかも、デフォルト・オプションのないものや(変換先のオーディ形式など)、普通期待するのとは逆のデフォルトを持つものがある。後で示すように、この2つの問題については対処はきわめて容易だ。

 付属しているスクリプトaudio-convert-installはこのツールをNautilusから使えるようにホーム・ディレクトリーにインストールするためのもので、本体のbashスクリプトが「/usr/bin/audio-convert」にインストールされていることを前提にしている。インストール後Nautilusを再起動すると、オーディオ・ファイルの右クリックでaudio-convertスクリプトが使えるようになる。

 試しに、オーディオ・ファイルを選択しaudio-convertを起動してみた。ところが、ファイルを選択したにもかかわらず、ファイルを少なくとも1つ選択せよという趣旨のダイアログが表示される。そこで、Nautilusスクリプトに関する資料Questions and Answersを参照しながらデバッグ用のスクリプトを作って調べてみた。その結果、私が使っていたNautilusバージョン2.20.0-6.fc8は、選択されているファイル名を環境変数にセットするが、コマンドライン・パラメーターとしてスクリプトに渡していないことがわかった。そこで、再び同資料を参照しながら以下に示すスクリプトを作り、実行可能ファイルとして~/.gnome2/nautilus-scriptsディレクトリーに置いた。これにより、Nautilusスクリプト・メニューから、期待通り、オーディオ・ファイルの変換ができるようになった。

#!/bin/bash

quoted=$(echo -e "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" | awk 'BEGIN {
FS = "\n" } { printf "\"%s\" ", $1 }' | sed -e s#\"\"##)

eval "~/audio-convert-0.3.1/audio-convert $quoted"

 対応している出力形式はOgg、MP3、FLAC、AAC。出力形式をOggとした場合、オーディオ・ファイルのタグの継承と出力ファイルの音質レベルを設定することができる。出力ファイルはデフォルトでは入力オーディオ・ファイルと同じディレクトリーに保存される。タグ継承オプションのデフォルトはオフだが、これは不便だ。ファイルに関する情報はできるだけ継承したいと考えるのが普通だ。特にメタデータは圧縮したオーディオ・ファイルに比べてわずかな大きさにしかならないだろうから継承してほしいところだ。

 アーティストや曲名など埋め込まれているメタデータをデフォルトで継承するようにするには、以下のように、audio-convertスクリプトにあるask_to_pass_metatags関数のFALSEをTRUEに変更すればよい。

ask_to_pass_metatags ()
{
        #zenity --question --text="$ask_to_pass"
        #pass_metatags=$?
        questions=(TRUE "$ask_to_pass")
}

 これで、ファイルの変換のたびに指定する必要があるのはオーディオ形式だけになる。さらに、変換先のオーディオ形式にデフォルトを設定することもできる。 audio-convertスクリプトの数行を次に示すように変更すればよい。まず、すべてのオプションをFALSEにしたchecklistdepformat変数を作り、次の行で、そのOggオプションをTRUEに変更する。このオプションがオンの状態でダイアログが開くようにするためだ。次に、今変更した書式データに基づきZenityを使ってカラムが2つあるダイアログを作る。下に示したコードにはフランス語のコメントがあるが、これは元々あったもので、編集の際に該当位置が見つけやすいように一部を残してある。

######## .... principale ########

checklistdepformat=$(echo $depformat| sed -r 's/(\w+)/FALSE \1/g')
checklistdepformat=$(echo $checklistdepformat|sed 's/FALSE ogg/TRUE ogg/')

while [ ! "$formatout" ] # ....pas fait de choix
do

        # this is the new dialog
        formatout=`zenity --title "$title" --list --checklist --column y --column="Format" $checklistdepformat --text "$choix"`
        # comment out the old dailog
        ###formatout=`zenity --title "$title" --list --column="Format" $depformat --text "$choix"`

        ###### Choix -> Sortie boucle ######
        ...

audio-convert-mod

converter3_thumb.png
audio-convert-mod

 audio-convert-modは実際に変換を実行するまでの設定を2つのウィザードで案内してくれる。だから、変換処理に辿り着くまで立て続けにウィンドウが表示されるということがない。変換に関するオプションは2番目のウィザードにまとめられ、設定内容をデフォルトとして保存することもできる。本記事で紹介している3つのユーティリティーの中では、変換に関する設定が最も容易だ。設定したオプションをデフォルトとして残せるし、付属するトレイ・アイコンが変換の完了を知らせてくれる。何かの作業の真っ最中にポップアップ・ウィンドウが突然現れて閉口するということがない。

 Nautilusに組み込むためのスクリプトは付属していないため、オーディオ・ファイルを右クリックしてもスクリプトのサブメニューは表示されない。ファイルタイプとアプリケーションを関連づけるという通常の方法で、audio-convert-modの使用をNautilusに教える必要がある。オーディオ・ファイルを変換するときは、Nautilusでファイルを選択し、「Open with Other Application…」を選び、ダイアログの「Use a custom command」にaudio-convert-modの実行形式へのパス(/usr/bin/audio-convert-mod)を入力する。このツールのサイトには、システムへのインストールを完了するにはファイルをインストールした後ログインし直す必要があると書かれている。しかし、インストール後、別のユーザーでログインしてみたが、「Other Applications」のリストに「audio-convert-mod」はなかった。ただし、これは些細な問題だ。一度「Open with Other Application」ダイアログにaudio-convert-modのパスを自分で入力すれば、それ以降は表示されるようになる。

 ツールを起動すると、変換対象として指定したファイルとディレクトリーがウィザード風のウィンドウに表示される。「Next」をクリックすると、変換に関する設定画面になる。ここで、出力形式(今回の試用ではMP3、Ogg、AAC、AC3、WV、WAV、FLACが利用可能だった)、変換後のビットレート、出力ファイルの保存場所、出力ファイルの名前の付け方、埋め込まれているメタデータの扱い方を設定する。そして、この画面には非常に便利な機能がある。現在の設定をデフォルトとして保存することができるのだ。これを利用すれば、次回から設定の手間を省いて「Next」をクリックするだけで済む。

 次の画面に進むと、実際の変換が始まり進行状況が表示される。変換が終わると小さなトレイ・アイコンも点滅する。つまり、ウィザードを最小化しておいても、変換の完了がわかるというわけだ。変換が終わったら「Next」をクリックする。変換を続けることも、終了することもできる。この最終ウィンドウでNextボタンが淡色表示されているところを終了オプションにした方がよかっただろう。現状で終了するにはマウスをNextボタンからQuitボタンまで移動させる必要がある。

 試用中に深刻なバグに遭遇した。メタデータの継承を選択したところ、OggとMP3ファイルへの変換は何事もなく終了したが、出力ファイルには元ファイルに埋め込まれていたメタデータがまったく継承されていなかったのだ。GUIにあるオプション「Manually enter metadata/tags」も試してみたが、エラーは表示されないものの出力ファイルにメタデータを入力する場面もない。この問題はプロジェクトのBugzillaに託すことにした。

まとめ

 audiokonverterもaudio-convertもきわめて高機能なオーディオ変換ツールだ。どちらもカスタマイズでき、変換手順を簡略化できる。とは言え、私はaudio-convert-modを選びたい。変換に関する設定が多く、すべての設定をデフォルトとして次回のために保存できるからだ。メタデータの保存ができないという大きなバグはあるが、遠からず解消されるだろう。

 ツールの選択時に考慮すべき観点がもう一つある。audio-convertでは、オーディオ・ファイルごとにダイアログが新たに2つ開く点だ。ダイアログが開く際、以前のダイアログは閉じるが、こうしてダイアログが現れたり消えたりするのは、オーディオ・ファイルを変換しながらほかの作業をしたいときにはうっとうしいかもしれない。

Ben Martin 10年以上にわたってファイルシステムを研究。博士課程を修了し、現在、libferris、ファイルシステム、検索ソリューションを中心にコンサルティングをしている。

Linux.com 原文