2014年11月11日火曜日

forked-daapdを導入して玄箱をジュークボックスにする

iTunesにはDAAPとDACPという仕組みがあり、他の端末からライブラリを閲覧して再生したり、再生させたりすることが出来る。

DAAP (Digital Audio Access Protocol)

DAAPサーバはライブラリの曲リストを提供し、クライアントがリクエストした曲をストリーミングし、クライアント側で再生することが出来る。

DACP (Digital Audio Control Protocol)

DACPサーバはライブラリの曲リストを提供し、クライアントがリクエストした曲をサーバ側で再生し、クライアントにリモコンのような機能を提供する。

forked-daapdはLinuxにDAAPサーバとDACPサーバの機能を提供する。

リポジトリの追加とインストール

wheezyではi386とamd64のバイナリしか用意されていないので、"/etc/apt/sources.list"に"wheezy-backports"を追加する。
ついでにmultimediaリポジトリも追加しておく。
/etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ wheezy main deb http://security.debian.org/ wheezy/updates main # multimedia deb http://www.deb-multimedia.org wheezy main non-free #deb-src http://www.deb-multimedia.org wheezy main non-free # backports deb http://ftp.jp.debian.org/debian/ wheezy-backports main contrib non-free
パッケージリストを更新し、GPGエラーが出る場合は公開鍵をインストールする。
# sudo aptitude update
# sudo aptitude install deb-multimedia-keyring
forked-daapdをインストールする。入れていない場合はalsa-baseなども。
# sudo aptitude install forked-daapd alsa-base

設定ファイルを編集する

DAAPとしての設定はオーディオファイルの場所を指定するだけでほぼ問題ない。
/etc/forked-daapd.conf
# Directories to index directories = { "/mnt/share/music" }
DACPとして玄箱に繋げたUSBオーディオから曲を再生する場合は音源の設定をする。
# Local audio output
audio {
        # Name - used in the speaker list in Remote
        nickname = "Computer"
        # Audio device name for local audio output
        card = "default"
        # Mixer channel to use for volume control - ALSA/Linux only
        # If not set, PCM will be used if available, otherwise Master.
#       mixer = ""
}
設定を完了したらdaemonを再起動する。
# sudo /etc/init.d/forked-daapd restart
HDDからカリカリと音をさせオーディオファイルのタグを読みに行ってデータベースを生成してくれる。

DAAPサーバ確認

PCからiTunesを起動する。

左上の家のアイコンをクリックして玄箱のライブラリが見えたら成功。
ちなみにforked-daapdがファイルスキャン中に曲を再生しようとしたりすると、クライアント側のiTunesのアルバムアートのキャッシュがまれによくぶっ壊れておかしいことになることがある。一応手動でキャッシュを削除すると治る。

DACPサーバ確認

Windows用のクライアントTunesRemoteSEを使ってみる。
起動するとDACPサーバが見える。初回起動時はクライアントごとにペアリングをする必要がある。
"pair"ボタンを押すと4桁の数字のパスコードが表示されるのでメモする。

サーバ側の"/var/log/forked-daapd.log"を開くと
/var/log/forked-daapd.log
[2014-1-1 00:00:00] remote: Discovered remote 'TunesRemote SE@192.168.1.20' (id 77903C....
クライアントの名前が確認できる。(この例では'TunesRemote SE@192.168.1.20')
次に"/etc/forked-daapd.conf"で設定したオーディオファイルの場所を指定したパスに(どこでもいい)、拡張子"remote"で適当な名前で("pokotan.remote"とか)テキストファイルを作り、一行目にクライアントの名前、二行目にパスコードを記して保存する。
(例) /mnt/share/music/pokotan.remote
TunesRemote SE@192.168.1.20 3772
うまく行けばこうなる。

他のクライアントでも同じような手続きでペアリングが出来る。
正常に動いていればdaapdの動いてる玄箱から音楽が再生される。

ちなみに確認のため何度かパッケージを入れて試してみたところ、それでも再生出来ないことがあった。
その時はユーザー"daapd"が"audio"グループに追加されておらず、グループに追加したところ正常に再生されるようになった。
# sudo gpasswd -a daapd audio
ユーザ daapd をグループ audio に追加

0 件のコメント:

コメントを投稿