Plex + TvHeadend, 在 DSM 7.2 以上版本使用 USB 电视接收棒!

DSM 7.2 版本以上移除了对 USB 电视接收棒的支持,Plex 的 Live TV + DVR 功能也无法使用了。目前网上主流的解决方案就是买个 HDHomeRun,专门用来接受电视信号。

既然手上有电视接收棒,为什么不自制一个 HDHomeRun 呢?查了一下,网上鲜有教程,于是只能自己研究了

首先,要让 USB 电视接收棒能正常使用,需要一台 Ubuntu 电脑(或者虚拟机)。我用的 Ubuntu 22.04 配合 Hauppauge 官方驱动。如果在 DSM 里面开虚拟机的话,需要将 USB 电视接收棒直通给虚拟机。

$ sudo add-apt-repository ppa:b-rad/kernel+mediatree+hauppauge
$ sudo apt update && sudo apt install linux-mediatree -y

如果驱动正确安装的话,应该能看到 /dev/dvb 设备。

$ ls /dev/dvb
adapter0

然后,Ubuntu 下面安装 TvHeadend,用来做 TV -> IP(将接收下来的电视信号桥接到本地网络)。这里直接用最简单的 Docker 镜像方式,需要事先安装 Docker 环境。

docker run -d \
  --name=tvheadend \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=America/Toronto \
  -p 9981:9981 \
  -p 9982:9982 \
  -v /appdata/tvheadend/config:/config \
  -v /appdata/tvheadend/recordings:/recordings \
  --device /dev/dvb:/dev/dvb \
  --restart unless-stopped \
  lscr.io/linuxserver/tvheadend:latest

具体 TvHeadend 的配置方法在这里不详细展开了。

由于 Plex 无法支持 TvHeadend 格式,但是可以支持 HDHomeRun 格式,所以这里需要用 Antennas 来做个桥接转换。依旧是用 Docker。这个桥接器可以放在 Ubuntu 下面,也可以放在 DSM 里面。

docker run -d \
  --name=antennas \
  -p 5004:5004 \
  -e ANTENNAS_URL=http://<local-ip>:5004 \
  -e TVHEADEND_URL=http://<tvheadend-ip>:9981 \
  --restart unless-stopped \
  thejf/antennas

http://<local-ip>:5004 看一下 Antennas 是否正常启动了,能显示出网页就表示已经正常工作了。

然后在 Plex 里面添加电视来源,需要点击“手动添加 HDHomeRun”,然后用 http://<local-ip>:5004 作为 HDHomeRun 地址。

注意:如果使用 DVA3221 需要用到 GTX1650 硬件转码的话,只能在 DSM 套件中心里面安装 Plex Media Server 并忽略掉更新提示,不能使用 Docker 版本的 PMS。

最后附一个 ATSC-T 频道频率表(仅限北美)。TvHeadend 自带的 mux 列表不完整,会导致无法接收到某些电视台,需要在 mux 设置里面手工把频道补足(只需要补足 7 到 36 频道即可),然后再搜台。

添加新评论