基于网页的IPTV播放器nodecast-tv

简介

什么是 nodecast-tv ?

nodecast-tv 是一个自托管的 Web 应用程序,旨在让用户通过浏览器直接播放来自 Xtream CodesM3U 提供商的直播电视、电影和剧集。它的核心是提供一个高性能和流畅的用户体验,即使处理包含数千个频道的庞大播放列表也能表现出色。

主要特点

  • 📺 直播电视:快速频道切换,分类分组和搜索功能。
  • 📅 **电子节目指南 (EPG)**:互动网格指南,提供 24 小时时间轴、搜索和动态调整功能。
  • 🎬 视频点播 (VOD) 支持:针对电影和电视剧的专门区域,附带丰富的元数据、海报和季节性剧集列表。
  • ❤️ 收藏系统:统一收藏频道、电影和系列,支持即时同步。
  • 🔐 用户认证:用户登录系统,分为管理者和观众角色。
  • 高性能:针对大型播放列表(7000+频道)进行了优化,支持虚拟滚动和批量渲染。
  • ⚙️ 管理功能
    • 支持 Xtream CodesM3U 播放列表。
    • 管理隐藏的内容类别。
    • 播放偏好设置(音量记忆、自动播放)。
  • 🔊 音频转码:可选的基于 FFmpeg 的音频转码,兼容 Dolby/AC3/EAC3
  • 📦 流重封装:用于 IPTV 中间件的原始 MPEG-TS 流的轻量级 FFmpeg 重封装。
  • 🐳 Docker 支持:轻松部署容器化。

应用场景

  • 个人媒体中心:为自己或家庭搭建一个私有的、通过浏览器即可访问的 IPTV 媒体中心。
  • 家庭影音库:集中管理和播放在 M3U 源中包含的电影和剧集,打造个人影音库。
  • 社区流媒体:可作为小型社区或朋友之间共享 IPTV 资源的流媒体解决方案。

对比 neTV

nodecast-tvneTV 虽然都是基于网络的 IPTV 播放器,但是不同之处在于:

  • neTV :使用服务端转码或重新编码视频
  • nodecast-tv:视频解码是由你的浏览器处理,这意味着编解码器支持完全取决于你的浏览器能原生解码什么
Codec Chrome Firefox Safari Edge
H.264 (AVC)
H.265 (HEVC) ❌¹ ⚠️²
VP9 ⚠️³
AV1
AAC Audio
AC3/EAC3 (Dolby)
MP3 Audio

【注意】:

  1. Chrome 可能在 macOS 上通过硬件解码器支持 HEVC
  2. Edge浏览器需要从 Microsoft Store 购买付费的 HEVC视频扩展0.99 美元)
  3. SafariVP9 的支持因设备/版本而异

nodecast-tv 是一个功能强大的平台,适合个人及小型团队进行媒体流的便捷管理和播放。

安装

在群晖上以 Docker 方式安装。

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 新建文件夹 nodecast-tv 和 子目录
mkdir -p /volume1/docker/nodecast-tv/data

# 进入 nodecast-tv 目录
cd /volume1/docker/nodecast-tv

# 运行容器
docker run -d \
--restart unless-stopped \
--name nodecast-tv \
-p 3124:3000 \
-v $(pwd)/data:/app/data \
-e NODE_ENV=production \
-e PORT=3000 \
ghcr.io/technomancer702/nodecast-tv:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
services:
nodecast-tv:
image: ghcr.io/technomancer702/nodecast-tv:latest
container_name: nodecast-tv
restart: unless-stopped
ports:
- "3124:3000" # Host:Container
volumes:
- ./data:/app/data
environment:
- NODE_ENV=production
- PORT=3000 # Optional: Internal container port

然后通过 SSH 登录到您的群晖,执行下面的命令:

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 nodecast-tv 和 子目录
mkdir -p /volume1/docker/nodecast-tv/data

# 进入 nodecast-tv 目录
cd /volume1/docker/nodecast-tv

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:3124 ,第一次需要注册账号

登录成功后的主界面

进入 Setting 添加源

M3U

Add M3U 增加 m3u

可以看看 iptv-org/iptv——这是一个由社区维护的全球公开 IPTV 频道合集,但是能播的不多,而且都是些地方台

  • Name:播放列表的名称
  • URL:播放列表的地址

EPG

只是演示,未必能用

Add EPG 增加 epg

  • Name:列表的名称
  • URL:列表的地址

播放

添加完成后

进入 Live TV,选中频道即可播放

支持的流类型

nodecast-tv 针对 HLSHTTP 直播流 )进行了优化

  • ✅ **HLS (.m3u8)**:完全支持且推荐使用。最佳选择以适应自适应比特率和网络鲁棒性。
  • ✅ **MPEG-TS (.ts)**:通过设置中的强制重封装进行支持。
  • ⚠️ 高延迟/P2P:对于 Acestream 等源,建议使用 HLS 输出(.m3u8)而非原始 TS 流,以避免缓冲时超时。
  • RTMP/RTSP:浏览器本身不支持。

参考文档

technomancer702/nodecast-tv: A self-hosted web application that lets you stream Live TV, Movies, and Series from your Xtream Codes or M3U provider directly in your browser. It’s built with performance in mind and handles large libraries smoothly.
地址:https://github.com/technomancer702/nodecast-tv