使用しているルーターにメディアサーバの機能が有り、USB HDをルーターに接続して使ってみたが、mp3やm4a(AAC)はOKだったがハイレゾのflacに対応していなかったので、raspiで何かできないかと調べたら、DLNA(UPnP)サーバー(DMS)とレンダラー(DMR)にそれぞれ対応したプログラム(minidlna, gmediarender)が有ることが分かり導入してみた。(raspi3pに導入したVolumioは対応しているのだが、IoTCAPが使えないので、raspi0のOS raspbianで稼働するものを探した)
意外とすんなり導入が完了し、iPadのDLNA対応AppをDMCとして導入したDMSとDMRを問題無く検出する事ができ、音楽もどうにか再生することができた。(Windowsのfoobar2000でもDMS、DMR検出し再生させることができた)
ただ、raspi0のDMSとDMRの組み合わせではパワー不足の所為でサンプリングレート192kHzのファイルはダメで、96kHzも曲によってはダメだった。(raspi3に同じものを導入して再生させた場合は192kHzも問題無く再生できた)
DMSは外部でDMRはraspi0の組み合わせなら192kHzも問題無く再生できた。
$ sudo mount.cifs "//(NAS Addr)/HiRes Sound" /mnt/music -o username=(name),password=(word),uid=1000,gid=1000,sec=ntlm,vers=1.0
$ sudo apt-get install -y minidlna
$ sudo nano /etc/minidlna.conf
:
:
# Specify the user name or uid to run as.
#user=minidlna
user=root ←追加(フォルダアクセスに必要)
:
:
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
# * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music)
# * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
# * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos)
# * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)
#media_dir=/var/lib/minidlna ←コメントアウト
media_dir=A,/mnt/music ←追加(マウントパス)
:
# Path to the directory that should hold the database and album art cache.
#db_dir=/var/cache/minidlna ←デフォルトのまま
# Path to the directory that should hold the log file.
#log_dir=/var/log ←取り敢えずデフォルトのまま
:
# Automatic discovery of new files in the media_dir directory.
inotify=yes ←コメント(#)を外す
:
# SSDP notify interval, in seconds.
notify_interval=895 ←コメント(#)を外す
$ sudo systemctl start minidlna
$ sudo systemctl status minidlna ←ステータスが"Running"になっていることを確認する
$ sudo systemctl stop minidlna
$ sudo systemctl restart minidlna
$ sudo apt install gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-ugly gstreamer1.0-plugins-bad gmediarender
$ uuid
aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee ←複数raspiに導入する場合に必要
$ sudo nano /etc/default/gmediarender
#Start daemon automatically? (1= yes, all other valures are "not enabled")
# defaults to "not enabled"
ENABLED=1 ←コメント(#)を外す
:
:
# Initial volume in decibel. 0.0 is 'full volume', -10 correspondents to '75' on
# the exported volume scale (Note, this does not change the ALSA volume, only
# internal to gmrender. So make sure to leave the ALSA volume always to 100%).
#INITIAL_VOLUME_DB=-10 ←コメントアウト
INITIAL_VOLUME_DB=0.0 ←追加 最大にする
# If you explicitly choose a specific ALSA device here (find them with 'aplay -L'), then
# gmediarenderer will use that ALSA device to play audio.
# Otherwise, whatever default is configured for gstreamer for the '$DAEMON_USER' is
# used.
#ALSA_DEVICE="sysdefault" ←コメントアウト
#ALSA_DEVICE="iec958" ←初期値のまま
ALSA_DEVICE="hw:1,0" ←追加 USBデバイ指定 カード:1、デバイス:0
# You can pass extra arguments to the daemon
# For example, you can specify a logfile with this line
# (though you need to ensure correct permissions for a log file yourself.)
# DAEMON_EXTRA_ARGS="--logfile /var/log/gmediarender.log"
DAEMON_EXTRA_ARGS="--uuid aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" ←追加 uuidコマンドで得た値で個別化(単体使用なら不要)
$ sudo systemctl start gmediarender
$ sudo systemctl status gmediarender ←ステータスが"Running"になっていることを確認する
$ sudo systemctl stop gmediarender
$ sudo systemctl restart gmediarender