Ubuntu上のPlexで「自分専用Netflix」を自作:ハードウェアトランスコーディングを活用して4Kをスムーズにストリーミング

Ubuntu tutorial - IT technology blog
Ubuntu tutorial - IT technology blog

なぜ外付けHDDをやめてPlexに移行したのか?

以前は、4K Remux映画(1ファイルあたり60〜80GBに達することもあります)をポータブルHDDにダウンロードして、テレビに接続していました。しかし、この方法は非常に面倒です。新しい映画を追加するたびにHDDを抜き差ししてファイルをコピーしなければなりません。さらに、テレビのインターフェースは非常に簡素で、外出先のカフェや出張中に映画の続きを見ることもできませんでした。

さまざまなソリューションを試した結果、Ubuntu上にPlex Media Serverを構築することにしました。これにより、散らかった file群が、Netflixのようなポスター、字幕、予告編を備えた洗練されたライブラリに変わります。最大のメリットは**Hardware Transcoding(ハードウェアトランスコーディング)**です。これのおかげで、非力なサーバーでもCPU使用率を100%に跳ね上げることなく、4Kファイルを軽快に処理できます。

このガイドはUbuntu 22.04 LTSで実施していますが、最新の20.04や24.04でも同様に適用可能です。

Plex Media Serverの正しいインストール方法

.debファイルを個別に手動でダウンロードしないでください。公式リポジトリを追加することをお勧めします。そうすれば、後でapt upgradeコマンド一つで簡単に更新できます。

ステップ1:システムの準備

まず、セキュリティと安定性を確保するために、基本的なパッケージを更新します:

sudo apt update && sudo apt upgrade -y
sudo apt install apt-transport-https curl wget -y

ステップ2:Plexリポジトリの追加

Plexからのインストールパッケージをシステムが認証できるように、GPGキーをインポートします:

curl https://downloads.plex.tv/plex-keys/PlexSign.key | gpg --dearmor | sudo tee /usr/share/keyrings/plex-archive-keyring.gpg > /dev/null

次に、リポジトリをシステムに登録します:

echo "deb [signed-by=/usr/share/keyrings/plex-archive-keyring.gpg] https://downloads.plex.tv/repo/deb public main" | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

ステップ3:インストールと有効化

数秒でPlexをインストールできます:

sudo apt update
sudo apt install plexmediaserver -y

インストール後、サービスが実行されているか確認します:sudo systemctl status plexmediaserver。「active (running)」と表示されれば問題ありません。

最適化:権限設定とハードウェアトランスコーディング

インストールはあくまで準備段階です。Plexを快適に動かすには、以下の2つの問題を解決する必要があります。

1. ファイルが認識されないエラーの修正(ディレクトリ権限)

最も一般的なエラーは、パスが正しいのにPlexが映画をスキャンできないことです。理由は、plexユーザーにHDDの読み取り権限がないためです。映画が/mnt/data/moviesにあると仮定して、以下のコマンドを実行します:

# 自分のグループ(例:ユーザー名が 'admin' の場合)に plex ユーザーを追加する
sudo usermod -aG admin plex

# メディアディレクトリに読み取り権限を付与する
sudo chmod -R 755 /mnt/data/movies

ヒント:外付けHDDを使用している場合は、再起動時にパスが失われないように、/etc/fstabで固定マウントされていることを確認してください。

2. ハードウェアトランスコーディングの有効化(Intel QuickSync)

Intelチップ(iGPU搭載)のサーバーを使用している場合、4G回線経由でスマートフォンに4K映画を非常にスムーズにストリーミングできます。CPUを使用してエンコード(高温になり、ラグが発生しやすい)する代わりに、Plexは内蔵グラフィックスコアを使用します。

ls -l /dev/driコマンドでiGPUドライバーを確認します。renderD128が表示されたら、Plexにハードウェアへのアクセス権限を付与します:

sudo usermod -aG video plex
sudo usermod -aG render plex
sudo systemctl restart plexmediaserver

注意: この機能を使用するにはPlex Passアカウントが必要です。安価なCeleron J4125チップでも、CPU負荷を約15〜20%に抑えながら、2〜3つの4Kストリームを同時に1080pにトランスコードできます。

3. Webインターフェース経由の設定

Ubuntu Serverには画面がないため、同じLAN内の別のコンピューターからアクセスしてください:

http://サーバーのIPアドレス:32400/web

VPSにインストールした場合は、ローカルで操作しているとPlexを「誤認」させるために、SSHトンネルを作成する必要があります:

ssh -L 8888:localhost:32400 user@ip-server

その後、ブラウザを開き http://localhost:8888/web と入力してセットアップウィザードを開始します。

実際のパフォーマンスの確認

すべてが意図通りに動作しているか確認しましょう。スマートフォンで4K映画を開き、画質を720pに下げてみてください。

Web上の**Dashboard(ダッシュボード)**に移動します。Video: Transcoding (hw) という文字が表示されていれば、設定は成功です。より詳細に監視するには、intel-gpu-toolsを使用するのがお勧めです:

sudo apt install intel-gpu-tools
sudo intel_gpu_top

グラフにGPUの負荷率が表示されます。「Video」列の数値が動いていれば、CPUの代わりにハードウェアが処理を行っていることを意味します。

Plex Serverの自作は難しくありません。重要なのは、電力とリソースを節約するためにハードウェアをいかに最適化するかです。自宅で高品質なエンターテインメントの時間を楽しんでください!

Share: