现代化自托管IPTV播放器ViniPlay
简介
什么是 ViniPlay ?
ViniPlay是一个功能强大的自托管IPTV播放器,提供现代化的Web界面,可将M3U和EPG文件转换为高质量的流媒体体验,并支持多用户管理、多屏观看、Chromecast投屏、DVR录制等功能,是一个全面的IPTV解决方案。
主要特点
- 👤 多用户管理:使用专用的管理员账户保护应用程序。创建、编辑和管理标准用户账户。
- 📺 现代电视指南:高性能虚拟化的
EPG网格,能够顺畅处理成千上万的频道和节目。功能包括高级搜索、频道收藏和“最近观看”类别。 - 🖼️ 多视图:在网格中拖动、放置和调整播放器的大小,以同时观看多个流。保存和加载自定义布局。 “沉浸式视图”将隐藏所有
UI元素,仅保留播放器在页面上,以最大化观看体验。 - 🖥️ Chromecast 支持:将流直接投射到网络上的任何
Google Cast设备。 (仅在源信号强并正确传递且没有数据包丢失的情况下工作,因Cast框架的限制) - 🔔 推送通知:设置即将到来的节目的提醒,并在浏览器中接收推送通知,即使在应用程序关闭时。
- ⚙️ 强大的转码功能 - 甚至支持 GPU:后端使用
FFMPEG处理流,确保与所有现代浏览器和设备的兼容性。创建自定义流配置文件以调整转码设置。支持GPU转码。(Nvidia,InterlQSV和Vaapi) - 📂 灵活的源管理:可以从本地文件、
XC代码和远程URL添加M3U和EPG源。为基于URL的源设置自动刷新间隔,以保持你的指南数据最新。 - 🚀 高性能 UI:前端以性能为核心设计,使用
UI虚拟化技术优化指南,并有效管理状态,以确保快速和响应式的用户体验。 - 🐳 Docker 部署:整个应用程序打包在一个
Docker容器中,便于使用Docker或Docker Compose通过简单的命令进行部署。 - ▶️ 画中画:弹出播放器,以便在处理其他事务时继续观看。
- 🎥 DVR:使用
FFMPEG录制节目。通过电视指南安排录制,或轻松设置特定频道和时间。 - 📽️ 单一播放器:直接从浏览器播放
.m3u8和.ts链接,并提供详细的控制台日志和记录历史。 - 👥 管理员监控页面:实时监控用户观看流,存储历史播放记录,并向所有用户广播消息。
- 📺 VOD 支持:从提供商播放你的
VOD,在用户界面中干净地分类为可扩展网格,并为电影和系列设置过滤器和标签(重要:此功能仅适用于XC API登录)。
应用场景
- 家庭娱乐:个人用户可以通过
ViniPlay在家中享受IPTV服务,轻松管理和观看自己喜爱的节目。 - 小型广播公司或内容提供商: 适合小型公司使用,提供自定义
IPTV解决方案,满足客户需求。 - 社区项目:社区或数字图书馆可以使用
ViniPlay作为公共IPTV播放平台,为用户提供流媒体服务。 - 技术爱好者:对于喜欢实验和自托管解决方案的用户来说,
ViniPlay提供了灵活度与可定制性。

ViniPlay 为用户提供了现代和功能丰富的流媒体体验,适用于各种场景,满足个人和小型组织的需求。
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 viniplay ,选择第一个 ardovini/viniplay,版本选择 latest。
本文写作时,
latest版本对应为0.11.0;

卷
在 docker 文件夹中,创建一个新文件夹 viniplay,并在其中建一个子文件夹 data
| 文件夹 | 装载路径 | 说明 |
|---|---|---|
docker/viniplay/data |
/data |
存放数据库、日志文件等 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
1 | # 查看端口占用 |
| 本地端口 | 容器端口 |
|---|---|
8998 |
8998 |

环境
| 可变 | 值 |
|---|---|
SESSION_SECRET |
替换为长、随机且安全的字符串 |

命令行安装
如果你熟悉命令行,可能用 docker cli 更快捷
1 | # 新建文件夹 viniplay 和 子目录 |
也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
1 | version: '3' |
然后通过 SSH 登录到您的群晖,执行下面的命令:
1 | # 新建文件夹 viniplay 和 子目录 |

运行
在浏览器中输入 http://群晖IP:8998 就能看到注册界面。您将需要创建您的初始管理员帐户

登录成功后的主界面

在 Settings –> Guide Data Sources 设置您的 m3u 和 epg来源

设置 m3u 的 url 地址

再设置一个 epg

添加成功后

点 Process Sources & View Guide

接下来还得设置一下播放器
Active User Agent:保持默认的ViniPlay DefaultActive Stream Profile:默认是Redirect (No Transcoding),需要改为ffmpeg (Built in),否则可能会存在跨域

进入 TV Guide

支持播放和录制

播放界面,支持画中画等

官方的动图演示
参考文档
ardoviniandrea/ViniPlay
地址:https://github.com/ardoviniandrea/ViniPlay