Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

113次阅读
没有评论

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

NAS上存的电影、电视剧、纪录片等资料以海报墙的形式展示,这个很容易实现,并且功能与PLEX、Emby类似。Jellyfin的优点是可以(白嫖)硬件转码。如果是PLEX需要PLEX PASS会员,Emby需要Emby Premiere会员。而Jellyfin完全免费。

 

 

通过与xteve的搭配,完美实现局域网内IPTV播放(这里指的是与jellyfin配合,当然也可直接使用openwrt的udpxy实现)。

 

 

环境方面我们选择debian10(PVE模板),之所以使用lxc,一是因为cpu不支持vt-d(穷),二是pve可以把显卡映射到lxc容器中,lxc容器拥有着和宿主机差不多的性能(?未实际测试)。

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建
你没看错,双核4G的小主机(留下了贫穷的泪水)

 

 

在PVE上咱不止跑一个debian,咱还想打点零工,跑跑CDN。当然这样的结果就是IO爆炸,yysy,我觉得体验还行,除了扫描媒体库卡点。一天两块,交个电费够了。

 

 

1. 配置CT渲染设备节点,开启硬件加速

 

 

默认情况下.LXC并不会自动映射dev目录下的设备节点文件.所以我们首先需要修改配置文件,使LXC自动映射dev下的设备文件.
首先我们需要在host(pve) shell中确认一下host设备文件的情况,标红的参数我们需要用到:

 

 

ls -l /dev/dri/

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

修改LXC的配置文件,路径为/etc/pve/lxc/{你的CT ID}.conf.

 

 

将以下内容添加到文件末尾(将对应的设备id,容器id替换成自己的,设备id就是上方划线部分):

 

 

lxc.cgroup.devices.allow = c 226:0 rwm
lxc.cgroup.devices.allow = c 226:128 rwm
lxc.autodev: 1
lxc.hook.autodev:/var/lib/lxc/容器ID/render_device_hook.sh 

 

 

CT启动的时候,会执行lxc.hook.autodev里的内容,我们需要手动创建对应的节点文件
还是一样,使用编辑器创建并打开脚本文件:

 

 

vim /var/lib/lxc/容器ID/render_device_hook.sh

 

 

将以下内容添加到文件中(一样,还是要替换成自己的设备id):

 

 

mkdir -p ${LXC_ROOTFS_MOUNT}/dev/dri
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/card0 c 226 0
mknod -m 666 ${LXC_ROOTFS_MOUNT}/dev/dri/renderD128 c 226 128

 

 

设置文件权限

 

 

chmod 755 /var/lib/lxc/容器ID/render_device_hook.sh

 

 

现在可以启动CT, 启动后,我们还需要在CT里安装VA的驱动文件,以下命令均在CT内执行:

 

 

apt-get install i965-va-driver
apt-get install vainfo

 

 

安装完成后执行vainfo命令,如果打印如下类似信息就表明硬件转码已经可用了:

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

2.在debian中安装docker compose

 

 

curl -sSL https://get.daocloud.io/docker | sh
curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

 

 

3.编写docker-compose.yml

 

 

version: "3"
services:
  filebrowser:
    image: wahyd4/aria2-ui:latest
    container_name: filebrowser
    ports:
      - "端口:80"
      - "端口:443"
    volumes:
      - 目录:/data
    environment:
      - PUID=1000
      - PGID=1000
    restart: unless-stopped
  xteve:
    image: alturismo/xteve
    container_name: xteve
    environment:
      - PUID=1000
      - PGID=1000
    volumes:
      - 目录:/config
      - 目录:/guide2go
      - 目录:/root/.xteve
    ports:
      - 端口:34400
    restart: unless-stopped
  
  ftp:
    image: stilliard/pure-ftpd
    container_name: ftp
    environment:
      - PUID=1000
      - PGID=1000
      - PASV_ADDRESS=IP地址
      - FTP_USER_NAME=用户名
      - FTP_USER_PASS=密码
      - FTP_USER_UID=1000
      - FTP_USER_GID=1000
      - FTP_USER_HOME=目录
      - FTP_MAX_CONNECTIONS=100
    volumes: 
      - 目录:/home/jay
    ports:
      - "端口:21"
      - "30000-30009:30000-30009"
    restart: unless-stopped

  jellyfin:
    image: linuxserver/jellyfin
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      - UMASK_SET=022 #optional
    devices: 
      - /dev/dri/renderD128:/dev/dri/renderD128
    volumes:
      - 目录:/config
      - 目录:/data/tvshows
      - 目录:/data/movies
      - 目录:/transcode
    ports:
      - 8096:8096
    devices:
       - /dev/dri:/dev/dri
    restart: unless-stopped
  transmisson: 
    image: linuxserver/transmission
    container_name: tr
    environment:
      - PUID=1000
      - PGID=1000
      - TRANSMISSION_WEB_HOME=/combustion-release/
    volumes:
      - 目录:/config
      - 目录:/downloads
      - 目录:/watch
    ports:
      - 端口:9091
      - 51413:51413
      - 51413:51413/udp
    restart: unless-stopped

 

 

这里使用中科大镜像源加速下载, https://mirrors.ustc.edu.cn/help/dockerhub.html

 

 

另外需要在选项中打开嵌套,才能正常启动docker

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

4.配置Jellyfin

 

 

参考 https://post.smzdm.com/p/adwlg0pz/ ,不多说。地区中华人民共和国的英文是People’s Republic of China,找不到China的话找找这个

 

 

5.配置Xteve

 

 

这里你需要一份m3u节目单,我抓包本地电信IPTV得到一份地址(已经过udpxy转换):

 

 

台州一套测试
http://192.168.2.1:4022/udp/233.50.201.157:5140

...............
       
宁波综合高清
http://192.168.2.1:4022/udp/233.50.201.168:5140

 

 

当然这里需要使用内网观看,关于如何破解DHCP鉴权,参考:

 

 

https://koolshare.cn/thread-149406-1-1.html

 

 

对IPTV抓包以及VLAN设置,参考:

 

 

https://github.com/luckyyyyy/blog/issues/44

 

 

节目单这里推荐 http://epg.51zmt.top:8000/ ,将上面的文件上传到这个网站就能自动生成一份带台标的标准m3u文件。

 

 

导入完节目和节目单,大概是这样:

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

点击Fillters,新建分组

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

点击保存

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

点击Mapping,将频道和节目单映射好,绿色就可以播放了。

 

 

红色的需要自己选择默认的节目单填充(或者你自己找到别的源

 

 

就像这样

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

处理完没红得就可以了,进入Jellyfin添加

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

扫描完成后就有频道了

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

再添加指南:

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

效果:

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

开启硬件加速:

 

 

Jellyfin+Xteve+Pureftpd+Transmisson+Aira2 基于PVE LXC虚拟化的家庭媒体中心搭建

 

 

关于其他电影资源。。上面安装了Aria2和Tr,自行下载并添加到媒体库即可。

 

 

 

 

 

 

附录:

 

 

1.解决PVE apt update报错

 

 

vim
/etc/apt/sources.list.d/pve-enterprise.list

 

 

注释掉

 

 

#deb
https://enterprise.proxmox.com/debian/pve stretch pve-enterprise

 

 

新建 /etc/apt/sources.list.d/pve-no-subscription.list,内容为:(需要根据你的Debian版本选择

 

 

deb
https://mirrors.tuna.tsinghua.edu.cn/proxmox/debian buster pve-no-subscription

正文完
 0
withero
版权声明:本站原创文章,由 withero 于2025-06-29发表,共计3855字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)
验证码