Ubuntu Weekly Recipe

第533回 多くのプラットフォームに対応するメディアサーバー「Emby」

この記事を読むのに必要な時間:およそ 3.5 分

トランスコーディング設定

Emby Serverはハードウェアを利用したトランスコーディングにも実験的ではあるものの対応しています。第532回ではLXDの中でVAAPIを使う方法を紹介しました。そこで,Emby ServerのLXDコンテナにもGPUを見せることで,VAAPIを利用したトランスコーディングに対応させてみましょう。

$ lxc config device add emby gpu gpu gid=44
デバイス gpu が emby に追加されました

これでGPUがEmby Serverからも見えるようになりました。そして,サーバー設定画面の「Transcoding」から次のように設定します。

図14 トランスコーディングの設定

画像

実際にブラウザーがサポートしていない形式の動画で試してみると良いでしょう。

UPnPの対応

PlayStation 3のようなURL入力画面のないDLNAクライアントからアクセスできるよう,EmbyはUPnP/SSDPにも対応しています。具体的には「239.255.255.250:1900/UDP」へとマルチキャストされた問い合わせに応答したり,⁠239.255.255.250:1900」へと自分自身を公告します。

LXDは3.x以降のより新しいバージョンにおいてUDPのポートマッピング(proxyデバイス)をサポートしているものの,Ubuntu 18.04 LTSに標準で提供されているLXD 3.0では未対応です。自分でiptablesなどを記述するという手もありますが,若干面倒です。そこで今回はMACアドレスの異なるネットワークサブインターフェースを作成できるmacvlanを用いて,ホストのネットワークインターフェースにサブインターフェースを追加し,それをコンテナの中で使うことにしましょう。

あらかじめ先ほど作っていたポートマッピングを削除しておきます。

$ lxc config device remove emby port8096
デバイス port8096 が emby から削除されました

次にホストのインターフェース「enp0s31f6」を親に持つサブインターフェースeth1を作成し,それをコンテナの中で見えるようにします。

$ lxc config device add emby eth1 nic name=eth1 nictype=macvlan parent=enp0s31f6
デバイス eth1 が emby に追加されました

最初の「eth1」は追加するデバイスの名前です。自由に付けてかまいません。⁠name=eth1」がコンテナの中から見える名前で,⁠nictype=macvlan」でインターフェースの種別を指定します。⁠parent=enp0s31f6」はmacvlanの場合に親となるインターフェースの名前です。各ホストで異なるため,適切な名前を選択してください。基本的に他のマシンからアクセス可能な一般的なネットワークインターフェースであれば,どれでもかまいません。

これでコンテナ側にeth1が追加されました。

$ lxc exec emby ip addr show eth1
12: eth1@if3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 00:16:3e:f9:a4:29 brd ff:ff:ff:ff:ff:ff link-netnsid 0

IPアドレスが割り振られていないので,DHCPv4でアドレスを取得するように設定しましょう。最近のUbuntuは「/etc/network/interfaces」ではなく「/etc/netplan」以下を編集して設定します。今回は「/etc/netplan/70-eth1.yaml」を作成し,次のように設定しましょう。

network:
    version: 2
    ethernets:
        eth1:
            dhcp4: true

設定結果を適用します。もちろんnetplan tryで試験的に適用する方法でもかまいません。

$ lxc exec emby netplan apply
$ lxc exec emby ip addr show eth1
12: eth1@if3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:f9:a4:29 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 192.168.0.41/24 brd 192.168.0.255 scope global dynamic eth1
       valid_lft 86366sec preferred_lft 86366sec
    inet6 fe80::216:3eff:fef9:a429/64 scope link
       valid_lft forever preferred_lft forever

無事にIPアドレスが割り振られました。ネットワーク設定が変わった場合,一度Embyを再起動する必要があります。サーバー設定画面のトップページから「Restart」ボタンを押してもいいですし,次のように直接再起動する方法もあります。

$ lxc exec emby systemctl restart emby-server.service

またサーバー設定画面の「DLNA」から「Default user」を設定してください。これを設定しておかないとDLNAクライアントによってはサーバーを見つけられないことがあります。

あとはDLNAクライアントを立ち上げるだけで,自動的にEmby Serverを検出してくれるはずです。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。