现代化自托管IPTV播放器ViniPlay

简介

什么是 ViniPlay ?

ViniPlay 是一个功能强大的自托管 IPTV 播放器,提供现代化的 Web 界面,可将 M3UEPG 文件转换为高质量的流媒体体验,并支持多用户管理、多屏观看、Chromecast 投屏、DVR 录制等功能,是一个全面的 IPTV 解决方案。

主要特点

  • 👤 多用户管理:使用专用的管理员账户保护应用程序。创建、编辑和管理标准用户账户。
  • 📺 现代电视指南 :高性能虚拟化的 EPG 网格,能够顺畅处理成千上万的频道和节目。功能包括高级搜索、频道收藏和"最近观看"类别。
  • 🖼️ 多视图 :在网格中拖动、放置和调整播放器的大小,以同时观看多个流。保存和加载自定义布局。 "沉浸式视图"将隐藏所有 UI 元素,仅保留播放器在页面上,以最大化观看体验。
  • 🖥️ Chromecast 支持 :将流直接投射到网络上的任何 Google Cast 设备。 (仅在源信号强并正确传递且没有数据包丢失的情况下工作,因 Cast 框架的限制)
  • 🔔 推送通知:设置即将到来的节目的提醒,并在浏览器中接收推送通知,即使在应用程序关闭时。
  • ⚙️ 强大的转码功能 - 甚至支持 GPU :后端使用 FFMPEG 处理流,确保与所有现代浏览器和设备的兼容性。创建自定义流配置文件以调整转码设置。支持 GPU 转码。(Nvidia, InterlQSVVaapi
  • 📂 灵活的源管理 :可以从本地文件、XC 代码和远程 URL 添加 M3UEPG 源。为基于 URL 的源设置自动刷新间隔,以保持你的指南数据最新。
  • 🚀 高性能 UI :前端以性能为核心设计,使用 UI 虚拟化技术优化指南,并有效管理状态,以确保快速和响应式的用户体验。
  • 🐳 Docker 部署 :整个应用程序打包在一个 Docker 容器中,便于使用 DockerDocker 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 存放数据库、日志文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

bash 复制代码
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8998 8998

环境

可变
SESSION_SECRET 替换为长、随机且安全的字符串

命令行安装

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

bash 复制代码
# 新建文件夹 viniplay 和 子目录
mkdir -p /volume1/docker/viniplay/data

# 进入 viniplay 目录
cd /volume1/docker/viniplay

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name viniplay \
   -p 8998:8998 \
   -v $(pwd)/data:/data \
   -e SESSION_SECRET=replace_this_with_a_very_long_random_and_secret_string \
   ardovini/viniplay:latest

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

yaml 复制代码
version: '3'

services:
  viniplay:
    image: ardovini/viniplay:latest
    container_name: viniplay
    restart: unless-stopped
    ports:
      - 8998:8998
    volumes:
      - ./data:/data
    environment:
      - SESSION_SECRET=replace_this_with_a_very_long_random_and_secret_string

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

bash 复制代码
# 新建文件夹 viniplay 和 子目录
mkdir -p /volume1/docker/viniplay/data

# 进入 viniplay 目录
cd /volume1/docker/viniplay

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

# 一键启动
docker-compose up -d

运行

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

登录成功后的主界面

Settings --> Guide Data Sources 设置您的 m3uepg来源

设置 m3uurl 地址

再设置一个 epg

添加成功后

Process Sources & View Guide

接下来还得设置一下播放器

  • Active User Agent:保持默认的 ViniPlay Default
  • Active Stream Profile:默认是 Redirect (No Transcoding),需要改为 ffmpeg (Built in),否则可能会存在跨域

进入 TV Guide

支持播放和录制

播放界面,支持画中画等

官方的动图演示

viniplay 功能演示

参考文档

ardoviniandrea/ViniPlay

地址:https://github.com/ardoviniandrea/ViniPlay

相关推荐
小锋学长生活大爆炸12 小时前
【教程】免Root在Termux上安装Docker
运维·docker·容器
进击切图仔12 小时前
常用 Docker 命令备份
运维·docker·容器
德育处主任17 小时前
『NAS』将魂斗罗马里奥塞进NAS里
前端·javascript·docker
Mr.小海18 小时前
Docker 底层解析与生产环境实战指南
java·docker·eureka
流氓也是种气质 _Cookie20 小时前
Linux上安装Docker
linux·redis·docker
小锋学长生活大爆炸20 小时前
【教程】查看docker容器的TCP连接和带宽使用情况
tcp/ip·docker·容器
ccino .21 小时前
【Drupal文件上传导致跨站脚本执行(CVE-2019-6341)】
运维·网络安全·docker·容器
江湖有缘1 天前
自托管RSS解决方案:Docker化Fusion安装教程
java·jvm·docker
sun03221 天前
【Docker】构建镜像时使用的 Dockerfile ,以及其中的 MicroDNF
运维·docker·容器
codingWhat1 天前
手把手系列之——前端的Nginx 与 Docker 部署实践
nginx·docker