SubSonic を使用した音楽ストリーミングサーバ構築 & スマホで再生

筆者は音楽プレイヤーとしてworkmanを利用していますが、曲を機器にインポートする時、まあだるいわけです。CDやらファイルをライブラリにインポートして、デバイスをパソコンに接続して、曲を転送して、、等々もろもろ作業します。そもそも持ち歩くデバイスが増えますし、本当にすぐ聞きたい曲は、結局workmanを介さず、YouTube等で聞いてしまうんですよね…。

SubSonicを利用することで、リモートサーバに設置されている音楽ファイルをインターネット経由でストリーミング再生することが可能です。(スマホは専用の有料アプリが必要です。)音声ファイルはFTPやら、SFTPでアップロードしなきゃですが、外出先でもできるので回線さえ確保できれば大分楽できます。加えて、SubSonicは豊富な設定項目を備えているので、以下のようなことも実現できます。

・専用アカウントを複数作成できる。
・wifi,Celler環境によって転送ビットレートを変える。
・ローカルに指定した曲をダウンロードする。
・指定容量をキャッシュし、無駄な通信を防ぐ。

今回は一部有償のソフトではありますが、SubSonicを利用して音楽ファイルをストリーミング再生できるようにしていきます。インストール作業も比較的簡単なため、是非試してみてはいかがでしょうか。

SubSonicのインストール

1.Javaをインストール

SubSonicはJavaで動作します。まずjava-1.7.0-openjdkをyumでインストールします。

[root@tagutagu-test ~]# yum install java-1.7.0-openjdk
[root@tagutagu-test ~]# java -version
java version "1.7.0_101"
OpenJDK Runtime Environment (rhel-2.6.6.1.el6_7-x86_64 u101-b00)
OpenJDK 64-Bit Server VM (build 24.95-b01, mixed mode)

2.公式サイトからrpmファイルをダウンロード

公式ダウンロードページ にアクセスし、RedHat/Fedoraのrpmパッケージをダウンロードします。ダウンロードしたファイルは、FTP,SFTP等でサーバ上にアップロードしておきます。

subsonic-6.0-download1

[root@tagutagu-test ~]# ll | grep sub
-rw-r--r-- 1 root root 59724284 May 4 01:04 subsonic-6.0.rpm

3.インストール実行

2でアップロードをしたrpmファイルを使ってインストールを行います。

[root@tagutagu-test ~]# rpm -ivh subsonic-6.0.rpm
Preparing... ########################################### [100%]
1:subsonic ########################################### [100%]
Starting subsonic ...

起動していることを確認します。

[root@tagutagu-test ~]# /etc/init.d/subsonic status
subsonic (pid 1634) is running...

[root@tagutagu-test ~]# ps auxwwwf | grep sub
root 1691 0.0 0.0 6440 704 pts/0 S+ 10:18 0:00 \_ grep sub
root 1634 31.2 9.7 1670100 187684 pts/0 Sl 10:17 0:19 java -Xmx150m -Dsubsonic.home=/var/subsonic -Dsubsonic.host=0.0.0.0 -Dsubsonic.port=4040 -Dsubsonic.httpsPort=0 -Dsubsonic.contextPath=/ -Dsubsonic.defaultMusicFolder=/var/music -Dsubsonic.defaultPodcastFolder=/var/music/Podcast -Dsubsonic.defaultPlaylistFolder=/var/playlists -Djava.awt.headless=true -verbose:gc -jar subsonic-booter-jar-with-dependencies.jar

4.接続解放(環境に応じて)

Subsonicはクライアントとの通信にTCP4040ポートを利用します。リッスンしているか確認します。iptablesやF/W、ブロードバンドルータで4040ポートの通信をフォワードするように設定を行います。当方の環境ではNTT-PR200にて、静的IPマスカレードで許可設定を行いました。

※当方の環境は多段フォワードしているので、サーバのIPは10セグメントですが192セグメントにフォワードしています。通常は4040宛を4040宛にフォワードすればよいはずです。

Buffaro-54040

NTT-54040

[root@tagutagu-test ~]# netstat -tlnpu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1309/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1388/master
tcp 0 0 ::ffff:10.24.96.212:47774 :::* LISTEN 1634/java
tcp 0 0 :::9412 :::* LISTEN 1634/java
tcp 0 0 :::4040 :::* LISTEN 1634/java
tcp 0 0 :::47854 :::* LISTEN 1634/java
tcp 0 0 :::22 :::* LISTEN 1309/sshd
tcp 0 0 ::1:25 :::* LISTEN 1388/master
udp 0 0 ::ffff:10.24.96.212:49717 :::* 1634/java
udp 0 0 :::1900 :::* 1634/java

5.音楽ファイルをsubsonic用のディレクトリに準備

音楽ファイルを準備します。ディレクトリを併せて作成しておきます。

[root@tagutagu-test ~]# ll /var/music/bump_of_chicken/
total 22608
-rw-r--r-- 1 root root 10237421 May 7 10:24 02-Hello,World.3gp
-rw-r--r-- 1 root root 12907952 May 7 10:24 03-ray.3gp

6.初期設定を実施(パスワード・言語設定・拡張子)

管理画面にアクセスし、admin,adminでログインします。

subsonic-6.0-start1

ログイン後、Settingから言語をJapaneseに変更し、adminのパスワードを変更し、音声ファイルの拡張子を追加します。
※今回準備したファイルは3gpなので、3gpを追加しました。

subsonic-6.0-langauage

7.音楽ファイルをスキャン

「音楽フォルダ」から4で準備したファイルを追加し、データベーススキャンを行います。完了すると「設定を保存しました」メッセージが出力されます。

subsonic-6.0-folder-add

8.「索引き」を確認し、曲が表示されることを確認

スキャン後にインデックスが反映されていることを確認します。この段階でPCから再生ができればひとまずインストールは成功です。

subsonic-6.0-view

9.一般ユーザを作成

管理者権限を持たないユーザを作成することも可能です。「設定」→「ユーザ」から設定します。ビットレート設定などもここから行うことができます。

subsonic-6.0-useradd

10.iPhone上でストリーミング再生できることを確認

AppleStoreからiSub(600円)をインストールし、サーバへのログイン情報を入力します。

isub

高い…。起動すると、はじめにサーバ情報を入力を促されます。

isub3

エラーがなければ認証は成功です。

isub2

無事表示されました!しかし再生してみると…スマホからはモノラル…?ステレオできないのか…?判明したら追記しようと思います。

2016-09-03 追加

スマホで再生した場合にモノラル再生となっていまう問題ですが、スマホのサウンド設定が「モノラル」になっていただけでした…。お恥ずかしい…

以上

Copyright © 2021 たぐたぐ.com. All rights reserved.