先日Fedora 28をインストールしたIntel NUC。
Nextcloudサーバとして利用していますが、少し暇そうです。
HDDの空き容量もありますので。
Embyをインストールして、動画や音楽ファイルのストリーミング(ダウンロード不要で再生可能な)サーバにしてみようと思います。
なお自宅サーバに構築しますが、VPNや専用アプリを使うと外出先で動画や音楽を聞くこともできるようです。
目次
Embyメディア・サーバ・インストール手順 Fedora 28 docker-compose版
メディアサーバは、ストリーミングに対応しつつ、インターネット認証が不要なEmbyを使わせて頂こうと思います。
Ubuntuの場合、dpkgでインストールが可能のようですが、Fedoraはパッケージが提供されていないようです。
ここはDockerで動かしてみようと思います。
Dockerインストール
rootでログインして設定しました。sudoは省略しています。
- Fedoraの場合、dnfでDockerをインストールします。
1dnf in docker docker-compose - cockpitから管理できるように、dockerモジュールをインストールしました。
1dnf in cockpit-docker - dockerサービスを有効にします。
12systemctl enable dockersystemctl start docker
Docker-composeでembyサーバ起動
- 動作環境用のフォルダを作成します。
12mkdir -p docker/embycd docker/emby - docker-compose.yamlファイルを作成します。
1vi docker-compose.yaml
次のような内容です。
1234567891011121314version: '2'services:emby:image: emby/embyservervolumes:# SELinux :zラベルを忘れずに- ./config:/config:z- ./share1:/mnt/share1:z- ./share2:/mnt/share2:zports:- "8096:8096"- "8920:8920"- "1900:1900/udp"- "7359:7359/udp"
SELinux対応のため、Volumesにラベルを付けています。これがないとembyサーバに自動ログインできませんでした。 - embyで使用するポートのファイアウォール設定を変更します。
1234firewall-cmd --add-port=8096/tcp --permanentfirewall-cmd --add-port=8920/tcp --permanentfirewall-cmd --add-port=1900/udp --permanentfirewall-cmd --add-port=7359/udp --permanent - 初期設定中は、SELinuxを一時的に無効にしました。
1setenforce 0 - embyサーバを起動します。
1docker-compose up -d
dockerイメージが自動ダウンロードされて、embyサーバが起動します。
最初コンテナが終了してしまいましたが、もう一度起動したところ、継続的に動作するようになりました。
Embyサーバ初期設定
- Webブラウザでポート番号8096にアクセスします。
1http://<NUCのIPアドレス>:8096 - 初期設定画面が表示されます。Japaneseを選択して次へ。
- 名前を入力、オプションでEmbyアカウントも入力できます。
- メディアフォルダの設定は初期設定後に行います。
- 言語を選択して次へ。
- リモートアクセスの設定は、チェックを外すと先へ進みませんでした。そのまま次へ。
- I acceptを選択して次へ。
- 初期設定完了です。
- SELinuxの設定を戻しておきました。
1setenforce 1
メディアフォルダの追加
インストールは完了しましたが、ホーム画面は空っぽかと思います。次はフォルダを登録しようと思います。
- 右上の歯車アイコンをクリックして設定画面へ。
- Library→Add Media Libraryをクリックします。
- Content typeとして「Mixed content」を選択すると、任意の動画・音楽ファイルを認識するようです。
- Display nameに表示名を入力します。
- Foldersへフォルダを登録します。docker-compose.yamlのvolumes欄に、/mnt/share1と/mnt/share2を登録しておきましたので、そのあたりを追加します。
ファイルの転送
既にPCに動画や音声が入っていれば、そのパスをdocker-compose.yamlのVolumesに指定すれば良さそうです。
他のPCから転送したい場合、SCPやSFTP等のSSHファイル転送対応プロトコルで、NUCへファイルを転送できそうです。
Windowsの場合、WinSCP等で転送が可能のようです。
NUCの/root/docker/emby/share1へファイルを転送してみました。転送後、Emby設定画面の「Scan All Libraries」ボタンをクリックすると、転送されたファイルが認識されます。
動画・音楽のストリーミング再生
ホーム画面に戻ると、転送したファイルが認識されています。Webブラウザでストリーミング再生が可能のようです。
iPhoneの場合、Embyアプリをインストールしてサーバを登録、動画や音楽の一覧が表示されますが、アプリによるストリーミング再生は有償のようです。iPhoneのWebブラウザからEmbyサーバへアクセスする場合、問題なくストリーミング再生することができました。
DLNAにご注意?
既定の設定では、DLNAサーバ機能が有効になっているようです。
同じLANに接続された、DLNA対応のテレビやゲーム機(PS4, PS3)等で動画や音楽の一覧が表示されて再生可能になっているかと思います。
テレビでストリーミング再生ができて便利な一方、プライベートなコンテンツを置きたい場合は、ご注意されたほうが宜しいかと思います。
※試していませんが、docker版の場合、DLNAで使用するポート番号をすべて、docker-compose.yamlのports欄に書き足す必要がありそうです。
NUC再起動後にdocker-compose自動起動
Linuxのdocker-composeは、再起動すると自動でupされないのですね・・・(Docker for Mac、Docker for Windowsはコンテナも再起動してくれます)
次のようなsystemd設定を作成して、PCの再起動後にEmbyサーバが起動するようにしてみました。
1 |
vi /etc/systemd/system/docker-emby.service |
1 2 3 4 5 6 7 8 9 10 11 12 |
[Unit] Description=Docker Emby container. Requires=docker.service After=docker.service [Service] Restart=always ExecStart=/usr/bin/docker-compose -f /root/docker/emby/docker-compose.yaml up --no-recreate ExecStop=/usr/bin/docker-compose -f /root/docker/emby/docker-compose.yaml stop [Install] WantedBy=local.target |
systemdに登録することで、再起動後にembyサーバが自動起動するようになりました。
1 2 3 4 5 6 |
cd /root/docker/emby docker-compose down systemctl daemon-reload systemctl enable docker-emby systemctl start docker-emby docker-compose ps |
mp4ファイルやmkvファイルなど、ストリーミング再生や全画面表示など問題なく行えています。
動画や音楽の検索機能のほか、タイトル等のタグ編集の専用画面もあり、たいへん実用的な印象です。
手持ちの動画ファイルを入れてみましたが、Content typeに「Mixed content」を設定したせいか、無関係なタイトルやサムネイルが付加される場合がありました。
このあたりの設定を微調整すれば、機能・速度ともに十分なストリーミングサーバとして利用できそうな感じです。