ServiioをDockerで簡単に構築!~DLNAサーバを構築して自宅のAV環境を充実させよう!その①~

ServiioをDockerで簡単に構築!~DLNAサーバを構築して自宅のAV環境を充実させよう!~ 自宅サーバー
ServiioをDockerで簡単に構築!~DLNAサーバを構築して自宅のAV環境を充実させよう!~
ServiioをDockerで簡単に構築!~DLNAサーバを構築して自宅のAV環境を充実させよう!~

皆さんは自宅で番組したテレビ番組をどのように再生していますか?普通はHDDレコーダーで番組録画して、HDDレコーダーで再生すると思います。

でも、複数テレビを持っている家庭だと、HDDレコーダーが無い部屋(テレビ)で録画番組を再生したいと思ったことは無いでしょうか?

Aさん
Aさん

HDDレコーダーはリビングのテレビに繋がってるんだよね。
リビングのテレビは家族が占有してるし、今日は録画番組を見るのを諦めるしかないなー(自分の部屋でゲームでもしよ)。

Bさん
Bさん

高価なDLNA対応機器を購入しないと見れないね。諦めよう(自分の部屋でゲームでもしよ)。

こんな気持ちになった方。自宅サーバを構築しましょう

そして、自宅サーバでテレビ番組録画とDLNA配信システムを構築しましょう。DLNAの再生機器はPS3/PS4、液晶テレビ、Raspberry pi、Apple TV、Android TV、Fire TV Stick、Kodi等で代用できます!

本記事ではServiioをDockerで構築する方法をご紹介します(Serviioの使い方について解説しません) 。「 Dockerで構築する」というのがミソです。Dockerで構築することによって、サーバ環境を汚さずにDLNAサーバを構築できます。また、将来別サーバに移行する際もカンタンにスイッチできるのでおススメです。

DLNAとは

ServiioをDockerで簡単に構築!~DLNAサーバを構築して自宅のAV環境を充実させよう!~

Digital Living Network Alliance(略称:DLNA(ディーエルエヌエイ))は、家電、モバイル、およびパーソナルコンピュータ産業における異メーカー間の機器の相互接続を容易にするために2003年6月に結成された非営利業界団体(米国、オレゴン州)であり、同団体が提唱するガイドラインである。結成当初はDigital Home Working Group(略称:DHWG)と名乗っていたが、2004年6月に現在の名称に変更された。

Wikipediaより

要するに、テレビやHDDレコーダー等のAV家電、パソコンやサーバー、NAS、あるいはスマホ / タブレット端末等に保存されているデジタルコンテンツを、異なるメーカー/機器で共有できるようにするためのガイドラインです。DLNAを使えば、ネットワークを通じて音楽・動画・写真を機器を問わず楽しむことができます。

そのため、DLNAサーバを構築することで、サーバ内の録画番組を別の機器(例えば、PS3/PS4、液晶テレビ、Raspberry pi、Apple TV、Android TV、Fire TV Stick、Kodi等)で視聴することが可能になります

DLNAサーバアプリとしては、Serviio以外にも有名どころとしてPLEXやps3 media serverがあります。

インストール手順

ServiioをDockerで簡単に構築!~DLNAサーバを構築して自宅のAV環境を充実させよう!~

前提

git、dockerおよびdocker-composeがインストールされていることが前提です。
もし、まだインストールしていない場合はこちらを参照してインストールしましょう。

私と同じ環境で構築される場合、構築で躓いた際にサポートできると思います。メモリ8GB以上を選択すればエンコード等しても性能的に問題はないと思います。Windows10マシンですが、私はUbuntuを上書きインストールして自宅サーバを構築しています。

ECS Windows 10 Home Sモードを搭載した小型デスクトップパソコン LIVAZ-16/120-W10S(N4200)TS メモリ16GB ストレージ120GB+64GB

GitHubリポジトリからファイルのクローンを作成

GitHubリポジトリから以下のコマンドでServiio関連の資材をダウンロードします。

すると、 docker-serviioというディレクトリができます 。

docker-compose.yml

docker-compose.ymlを作成します。

以下の内容をdocker-compose.ymlファイルにコピー&ペーストします。

オリジナルのdocker-compose.ymlでも良いですが、私は少し修正しています。

volumes

15行目はメディアが格納されているライブラリを指定します。
私の環境では、/media/tv_recordに録画ファイルが格納されています。サーバ環境に合わせて修正してください。

environment

17行目と18行目の環境変数は、コンテナ内での実行ユーザIDとグループIDを指定します。これを設定しないとコンテナ内のrootユーザでのファイルが出来上がるので、ファイルを消す際にてこずります。Dockerを操作するユーザIDとグループIDを確認して指定しておきます。

19行目はタイムゾーンの設定です。

コンテナ起動

以下のコマンドでコンテナを起動します。

1~2分待って、 https://<IPaddress>:23423/console にブラウザでアクセスし、管理画面が表示されれば成功です。

使い方はインターネットでぐぐってもらえればたくさん出てきます。

まとめ

ServiioをDockerで簡単に構築!~DLNAサーバを構築して自宅のAV環境を充実させよう!~

DockerでServiioを構築する方法について紹介しました。録画システムと組み合わせるとLAN内ならいつでもどこでも録画番組が見れるため、非常に便利になります。もちろん、DLNAアプリをインストールすればスマホでも再生可能です。

これでまた便利になりました!

他にもいろいろなサービス導入方法をご紹介しています。よかったら参考にしてください。

ECS Windows 10 Home Sモードを搭載した小型デスクトップパソコン LIVAZ-16/120-W10S(N4200)TS メモリ16GB ストレージ120GB+64GB

コメント

  1. nukino より:

    ここの自宅サーバーの情報を元に私が以前より構築したかった環境(EPGStation+VPN+vaapiエンコード+DLNAサーバー)を実現することが出来ました。

    分かりやすい情報の提供ありがとうございます。

    ところでこのページのdocker-compose.ymlですが、コンテナ起動すると
    “neither an image nor a build context specified”
    のようなメッセージが表示されました。

    image: riftbit/serviio

    のような一文がdocker-compose.ymlに必要かと思うので御確認下さい。

    また、私の環境だとServiioコンソールにはアクセス出来るけどDLNAサーバーとして動作しなかったので、下記も併せて実施しました。
    – docker-compose.ymlに「image: riftbit/serviio」を追加
    – Serviioコンソールの状態→ネットワーク設定で実デバイス(eno1)指定

    dockerのバージョンは下記です。
    – Docker version 20.10.2, build 20.10.2-0ubuntu1~20.04.2
    – docker-compose version 1.25.0, build unknown

    誰かのお役に立てれば幸いです。

  2. こもね より:

    >nukinoさん
    ご報告ありがとうございます!
    私の記事が参考になって、嬉しく思います。

    さて、ご指摘の部分ですが、確認したところdocker-compose.ymlの記載のミスがありましたm_ _m
    記事を修正しましたので、もし機会があれば再度お試しくださいませ。

    ちなみに、デバイス指定は私の環境では不要でした。
    情報提供ありがとうございます:)

    たまに記事作成時のコピペミスがあるので、見つけたらコメントして貰えると助かります>_<

  3. nukino より:

    こもね様

    返信&記事の修正ありがとうございます。

    修正されたdocker-compose.ymlで試してみましたが、コンテナ起動しようとしても、そんなbuild pathはないというエラーになります。

    DockerのComposeファイル・リファレンスを軽く見た感じ、buildのcontextオプションはDockerfileのパスを指定するぽいので

    context : .

    と指定しないとダメでした。
    (記載のGitHubレポジトリではdocker-compose.ymlとDockerfileは同じ階層に居てるので…)

    ただ、上記でやってもServiioコンソールにはアクセス出来るけどDLNAサーバーとして動作しない状況に変化はありませんでした(^^ゞ
    そういえば、先の対策は誤記がありまして

    – docker-compose.ymlに「network_mode: “host”」を追加
    – Serviioコンソールの状態→ネットワーク設定で実デバイス(eno1)指定

    です。

    ウチの環境ではDockerのブリッジネットワークドライバが上手く動作しない場合があるようです(T.T)

  4. こもね より:

    contextはDockerfileの相対パスを記述します。
    手元のログだとこれでできてるんですが、リポジトリの構成が変わったのかもしれませんね。

    現在のリポジトリの構成に合わせて、docker-compose.ymlの方も修正しておきました。
    image指定でも同じ結果なので、お好きな方でどうぞ:)

タイトルとURLをコピーしました