Plex + xTeVe 加载 IPTV 直播 - 自建多媒体平台

Plex + xTeVe 加载 IPTV 直播 - 自建多媒体平台
Photo by Stephen Monterroso / Unsplash

介绍

本文将介绍通过 Plex 加载 xTeVe 模拟的直播设备,加载基于 OpenWrt 全网最简双线 IPTV 接入方案 - 自建多媒体平台中介绍的 IPTV 直播源,最后通过 Plex 的客户端实现全平台的直播。

安装

docker-compose.yaml 文件

version: '3'

services:
  plex:
    image: lscr.io/linuxserver/plex:latest
    container_name: plex
    network_mode: host
    environment:
      - PUID=1000
      - PGID=100
      - TZ=Asia/Shanghai
      - VERSION=docker
    volumes:
      - /share/Container/conf/plex:/config
      # - /share/CloudDrive:/CloudDrive:shared
    devices:
      - /dev/dri:/dev/dri
    restart: unless-stopped

  xteve:
    image: alturismo/xteve
    container_name: xteve
    restart: unless-stopped
    ports:
      - "34400:34400"
      - "1901:1900" #1900 used by Plex
    environment:
      - PUID=1000
      - PGID=100
      - TZ=Asia/Shanghai
    volumes:
      - /share/Container/conf/xteve/conf:/config
      - /share/Container/conf/xteve/root:/root/.xteve
      - /share/Container/conf/xteve/tmp:/tmp/xteve

整个文件需要修改的,主要是 volumes 中的几个挂载的路径,类似 /share/Container 是在 QNAP 中使用的路径,可按需修改为 Host 用于存储配置的路径。PUIDPGID 可通过 id {loginname} 获取。
使用命令 docker compose up -d 或者 docker-compose up -d 启动。

xTeVe 配置

通过 http://ip:34400/web 打开 Web 界面进行配置

Number of tuners

xTeVe 模拟 DVR 设备的数量,决定并行播放的数量,默认可以选 1 后面可进行修改,修改后需要重启。

EPG Source

选择 XEPG,将由 xTeVe 提供 EPG (电视节目指南)数据。

M3U Playlist

因为本次使用基于 OpenWrt 全网最简双线 IPTV 接入方案 - 自建多媒体平台中介绍的组播地址,已经把修改后的cd-udp.m3u文件放入了/share/Container/conf/xteve/tmp,所以这里选择 Local path 并配置 /tmp/xteve/cd-udp.m3u。这里的地址和前面 Docker 配置的挂载位置对应 /share/Container/conf/xteve/tmp:/tmp/xteve

也可以直接使用在线的直播源(https://github.com/imDazui/Tvlist-awesome-m3u-m3u8),但是稳定性上不如 IPTV 的直播源。

XMLTV

使用以下地址 http://epg.51zmt.top:8000/e.xml ,文件中将提供 EPG 数据。

配置完成我们就能看到主界面,其中可以看到 Available Streams 里面可用流是 200,XEPG Channels 里面 197(已经做过一次 Mapping 了,实际自动匹配的只有 90 几个频道),说明有 197 个频道是有 EPG 数据的,且 Plex 只认有 EPG 的频道,所以需要进行 Mapping。

Mapping

进入后可以看到有红、绿两种颜色的频道,绿色代表 EPG 数据和频道已经适配,通过比较 m3u 文件的 tvg-id  和 XMLTV 文件的 channel id 实现自动适配。

红色代表没有 EPG 数据,需要手动进行 Mapping。

XMLTV File 选择 xTeVe Dummy
XMLTV Channel 选择 90 Minutes(90_Minutes)
选择后Active 会自动打勾,点击 Done -> Save,会发现频道已经变成绿色。

如果有大量频道需要修改,点击 Bulk Edit 勾选需要修改的频道,任意点其中一个频道,修改同样内容,点击 Done -> Save 即完成批量修改。

Plex 配置

打开http://ip:32400登录 Plex,进入 Setting -> Live TV & DVR -> SET UP PLEX DVR

点击 Don't see your HDHomeRun device? Enter its network address manually 输入 xTeVe 的地址 http://ip:34400 点击 Connect,修改下面的 COUNTRYChina 中国就不用输入邮编,点击 Next

配置 XMLTV GUIDE,地址为 http://ip:34400/xmltv/xteve.xml两次 CONTINUE,就会自动下载 EPG 数据,稍后就能在 Live TV 中查看

可以看到有两种效果:一种像 CCTV 频道是有 EPG 数据,另一种像 929 频道就是由 xTeVe 生成的假数据。

点击即可播放,Web 端效果:

Mobile 端效果:

其它

xTeVe 对频道数量有限制,如果超过 480 需要使用 Filter 进行过滤,减少频道数量。

发现在 xTeVe 的 Setting -> Streaming -> UDPxy address: 是可以设置 UDPxy 地址,具备重写 IPTV 组播地址的能力,自动追加 UDPxy 的代理地址。可以按需配置,特别是 IPTV 地址是网上自动更新的就非常有用,不用每次下载修改后再上传。