ErsatzTV – 将本地视频搭建成自己的电视直播频道

ErsatzTV 是一款能将我们的媒体库变成直播电视频道,回到以前传统的电视体验的开源工具。通过读取本地媒体文件或连接 Plex、Jellyfin 等媒体服务器,然后创建自定义的电视频道,支持 IPTV 和 HDHomeRun 模拟。除此之外,还能灵活进行节目编排,按集合、时间排序等方式排播,甚至可以设置片头片尾、中场广告内容。项目提供了详细的使用文档,按照教程安装配置即可使用,有兴趣的同学可以看一下。

J.Cling 推荐拓展:

主要功能特点

  • 自定义频道:创建和安排你自己的直播电视频道。
  • IPTV & EPG:支持 IPTV 和电子节目指南的流媒体。
  • 硬件转码:通过硬件加速实现高性能流媒体。
  • 媒体服务器集成:连接 Plex、Jellyfin、Emby 等。
  • 音乐与字幕:混合音乐视频并享受字幕支持。
  • 开源:免费、开放且由社区驱动项目。

官方使用说明

https://ersatztv.org/docs

更新日志

v25.6.0

Added

  • 经典计划:允许在计划项目中选择多个图形元素
  • 区块计划:允许在装饰中选择多个图形元素
  • 添加频道 Playout Source 设置
    • Generated: 默认/现有行为,频道必须有自己的播放
    • Mirror: 频道将播放指定 Mirror Source Channel 的播放内容
      • 这允许在不同频道上使用相同的内容,但具有不同的频道设置
      • 播放偏移可用于将计划播放项目的播放时间与镜像源频道进行偏移
        • 例如 -2 小时之前 将导致镜像频道播放镜像源频道 2 小时之前 的内容
  • 添加对 .aif.aifc.aiff 歌曲文件的支持
  • 经典计划:添加播放顺序  马拉松
    • 这可以与集合和智能集合一起使用
    • 来自收藏的物品将根据 Marathon Group By 设置进行分组: 艺术家 专辑 季度节目
    • 组的顺序可以可选地打乱
    • 每个组中的项目顺序可以可选地打乱(否则  季, 集  或  按时间顺序  根据情况使用)
    • 一次可以设置批次大小来限制每次从每个组中安排的项目数量
      • 空或零批次大小意味着在前进之前播放每个组中的所有项目
      • 任何其他值意味着在前进到下一组之前播放指定数量的项目
  • 当 Request Logging Minimum Log Level 设置为 Debug 时记录日志 API 请求
  • 为每个播放列表项目添加  数量  设置
    • 之前,当 Play All 未被选中时,这默认为 1
    • 现在,播放列表可以播放集合中的特定数量项,然后再移至下一个播放列表项
  • 经典计划:添加 Shuffle Playlist Items 设置来随机排序播放列表项
    • 打乱顺序发生在初始时(在播放重置时),和所有来自 整个播放列表 的项目都已播放后
  • 通过添加播放详情行着色@peterdey
    • 填充项具有独特的行颜色
    • 未安排的间隙现在显示,并具有独特的行颜色
  • 使用 scriban 处理整个图形元素 YAML 文件
    • 这允许根据 MediaItem_ContentRating(电影)或 MediaItem_ShowContentRating(剧集)等条件使用不同的图片
  • 播放列表:为集合和智能集合添加播放顺序 Shuffle In Order

Fixed

  • 修复带有 bt709/pc 色彩元数据的转码内容
  • 修复创建或编辑播放列表时的脚本计划验证(文件存在)
  • 修复向空播放列表中添加单个剧集、电影、季度、节目
  • 修复以非超级用户身份使用 MySql 启动
    • 使用 MySQL 时需要 local_infile=ON(用于构建播放列表时的批量插入)
    • ETV 在获得权限时会自动设置
    • 当 ETV 没有权限时,启动会失败,并记录配置 MySql 的说明
  • 修复在不用点作为小数分隔符的地区(例如 ,)缩放变形内容的问题
  • 节目单:修复当空集合使用随机播放顺序时播放构建崩溃的问题
  • 修复由中段填充分隔的主要内容上的水印和图形元素
  • 当 Scaling Behavior 为 Crop 时修复水印和图形元素
  • 修复移动设备上的硬件加速健康检查消息
  • 修复装饰选择逻辑
  • 修复低效的数据库迁移,这会导致数据库初始化卡住
  • 经典计划:修复当洪水项在灵活固定开始项之前时的调度行为
    • 有时洪水项不会安排任何内容
  • 通过生成假 EPG 数据来修复某些文本图形元素的故障排除

Changed

  • 重大变更 :改变了 Scripted Schedule 系统的工作方式
    • 不再使用嵌入式 python(IronPython);改为使用 HTTP API
    • 在 /openapi/scripted-schedule.json 中添加了 OpenAPI 描述
      • 这允许从多种语言进行脚本化调度
    • 脚本计划文件现在必须是可直接执行的(尽管可以使用包装器来加载 venv)
    • 脚本计划文件将按顺序传递以下参数:
      • API 主机(例如 http://localhost:8409
      • 构建 ID(一个 UUID 字符串,所有 API 调用都需要)
      • 播放构建模式(例如  重置  或  继续 ,通常仅在重置播放时用于特定逻辑)
    • 自定义参数可以包含在播放列表编辑器中的 Scripted Schedule 字段中
      • 自定义参数将在必需参数之后传递
      • 例如,一个 Scripted Schedule 为 /home/jason/schedule.sh "party central" 23 的执行方式为
        • /home/jason/schedule.sh http://localhost:8409 00000000-0000...0000 reset "party central" 23
      • 这允许在多个脚本计划中重用包装脚本
    • API 参考位于 /docs
    • Docker 镜像包含预生成的 python api 客户端和入口脚本
      • 入口脚本位于 /app/scripted-schedules/entrypoint.py
      • 脚本文件夹应该挂载到 /app/scripted-schedules/scripts
      • 播放列表应该使用脚本计划 /app/scripted-schedules/entrypoint.py script-name 创建(不要有尾随的 .py
  • 在使用  季,集  播放顺序时自动忽略 Specials/Season 0

获取方式

官方网站

https://github.com/ErsatzTV/ErsatzTV

https://ersatztv.org

网盘下载

https://pan.quark.cn/s/428608b1c570

更多媒体影音请访问:

https://www.gewuzhizhi.vip/favorites/multimedia

© 版权声明

相关文章