もぐてっく

人は1つ歳をとるたび、1ビットづつ大きくなれると信じてた。

AmpacheでApple Losslessをトランスコードする

iTunes由来のm4aファイルにおいて、Ampacheで再生できる物とできない物があった。
んーっと考えて、一時期Apple Losslessを使ってたことを思い出した。

幸い、Ubuntu11.10 ServerのリポジトリApple Losslessのサーバがあったのでトランスコード出来るようにしてみた。

必要なパッケージをインストールする

# apt-get install faad alac-decoder lame

変換シェルスクリプトを作る

パスの通ったディレクトリ(ここではお行儀が悪いけれど/usr/bin)にシェルスクリプトm4a2wavを作る。

拡張子m4aのファイルにはAACApple Losslessの二種類があるため、それを判別して適切なデコーダに渡すのが目的。

#! /bin/sh

export PATH=$PATH:/usr/bin:/bin/

alac-decoder -t "$1" | grep mp4a

if [ "$?" = "0" ];then
        faad -f 2 -w "$1"
else
        alac-decoder "$1"
fi

もちろんパーミッションを与えておく。

# chmod 755 m4a2wav

Ampacheに登録

/usr/share/ampache/www/config/ampache.cfg.phpにさっきのスクリプトを登録する。

;transcode_cmd_m4a      = "faad -f 2 -w %FILE% | lame -r -b %SAMPLE% -S - -" ←コメントアウト
transcode_cmd_m4a       = "m4a2wav %FILE% | lame -r -b %SAMPLE% -S - -" ←追加

これでiTunes由来のm4aが再生できるようになった。