動画配信サービス — Jellyfin 検証メモ
// VIDEO SERVICE / 初回構築 2026-03-23 / 最終更新: 2026-05-14 (構成棚卸し)
構想/休眠 2026-03-23 にR640上で Jellyfin 検証稼働。 その後の R640 再構築 (2026-05-14 OS fresh install) で停止中。 将来の VOD サービス化向けの設計メモとして保管。
構想の背景
Nextcloud 上での MV (Music Video) 直接再生はトランスコード/ストリーム制御が弱く、 モバイル/TV 再生で安定しなかった。 これを解決するために専用配信サーバー Jellyfin を導入し、 NC のデータ領域をライブラリとしてマウントする構成を検証した。
2026-03 試験構成 (履歴)
Docker 上で稼働 (当時 R640)
└─ Jellyfin (port 8096)
└─ /media/music_video
└─ NC データ領域 (music video ディレクトリ) を read-only マウント
実施した手順 (記録として保存):
# 1. ffmpeg 同居 (NC側コンテナ)
docker exec -u root nextcloud-stack-app-1 apt-get update
docker exec -u root nextcloud-stack-app-1 apt-get install -y ffmpeg
# 2. compose.yml にJellyfin追加
jellyfin:
image: jellyfin/jellyfin
restart: unless-stopped
ports:
- "8096:8096"
volumes:
- jellyfin-config:/config
- jellyfin-cache:/cache
- "/path/to/music video:/media/music_video:ro"
volumes:
jellyfin-config:
jellyfin-cache:
# 3. 起動
docker compose up -d jellyfin
# 4. 初期セットアップ
# - サーバー名: k2-o.net
# - ライブラリ: ミュージックビデオ → /media/music_video
# - ffmpeg パス設定済み
当時のローカルアクセス: http://<ホストIP>:8096 (内部LANのみ)
現状 (2026-05-14)
| 項目 | 状態 |
|---|---|
| Jellyfin コンテナ | 停止 (R640 OS再インストール時に消失) |
| NC データ領域 | maguro /srv/storage/nextcloud-data/ に移行済 |
| Music Video データ | NC 内に保持 |
| 再起動方針 | 必要が出たら maguro 上で再構築 (NC データと同居なら NFS マウント不要) |
方針変更: 当初は「R640 で Jellyfin + NC データを NFS マウント」だったが、 2026-05-14 の構成変更で
NC本体と NCデータがどちらも maguro に集約された。 Jellyfin を再起動する場合は maguro上のDocker で立てるのが自然 (NFSマウント不要、 ローカル volume mount で完結)。
NC本体と NCデータがどちらも maguro に集約された。 Jellyfin を再起動する場合は maguro上のDocker で立てるのが自然 (NFSマウント不要、 ローカル volume mount で完結)。
将来の VOD サービス化 (構想)
- 外部公開は R640 nginx SNI passthrough 経由 (専用FQDN 例:
video.k2-o.net) で maguro:8096 へ - または WireGuard 経由のみ (顧客VPN
wg-clientsから) - 顧客ポータル (mikyun-portal) と Jellyfin アカウント連動 (SSO 検討)
- 将来: PX-W3U4 + Mirakurun + EPGStation での TV録画配信を追加
[将来構想] TV録画基盤
darkhero (PX-W3U4 + Mirakurun + EPGStation)
↓ 録画ファイル
maguro /srv/storage (NC ↔ Jellyfin で参照)
↓
Jellyfin (maguro Docker)
↓ WG 経由 / または R640 SNI 経由
↓
顧客 (スマホ / TV / ブラウザ)
2026-03 検証で得たノウハウ: NC データ領域を Jellyfin で直接マウントすると ffmpeg トランスコードが必要な動画の再生が安定する。 NC との同居が必須ではないので、 ストレージ近接ホスト (= maguro) に立てるのが正解。 再構築時は本ページの compose 定義を再利用。