如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Tvheadend 是一款运行于Linux、FreeBSD和Android系统的TV流媒体服务器和录制器,支持DVB-S、DVB-S2、DVB-C、DVB-T、ATSC、ISDB-T、IPTV、SAT>IP和HDHomeRun作为输入源,提供HTTP(VLC、MPlayer)、HTSP(Kodi、Movian)和SAT>IP流媒体服务,并支持多种EPG源(包括空中DVB和ATSC、XMLTV、PyXML等)。
!https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/tvheadend-big.png
该镜像利用Docker manifest实现多平台支持,拉取 lscr.io/linuxserver/tvheadend:latest 即可自动获取对应架构的镜像,也可通过标签指定特定架构:
| 架构 | 支持情况 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
| armhf | ❌ |
设置步骤取决于使用稳定版标签还是latest标签。latest版本包含设置向导,使用更简单。
首次登录时会自动弹出设置向导,若未弹出,可在Configuration --> General --> Base中点击Start Wizard,按照向导完成基本设置。
tv_grab_ 开头的部分,替换以下命令中的 for_you_to_fill_out:
bashdocker exec -it -u abc tvheadend /usr/bin/for_you_to_fill_out --configure
/config 卷映射的 .xmltv 文件夹(不存在则创建)。容器内置Comskip用于录制内容的广告标记,需在Tvheadend录制配置中添加:
bash/usr/bin/comskip --ini=/config/comskip/comskip.ini "%f"
comskip.ini 位于 /config/comskip 目录,可参考 Comskip 官网调整参数。FFmpeg已安装在 /usr/bin/,可用于管道处理。
若有XML格式的EPG数据,可放入 /config 卷映射的 data 文件夹(不存在则创建),文件需命名为 guide.xml。在Configuration --> Channel/EPG --> EPG Grabber Modules中选择相应的XML文件抓取器(如WebGrab+Plus则选择WebGrab+Plus XML文件抓取器)。
容器内置 https://github.com/picons/picons 图标集,路径为 /picons。在Configuration --> General --> Base中设置Channel icon path即可启用,需将视图级别设为至少advanced。
高级设置详见 Tvheadend官方文档。
可通过 RUN_OPTS 环境变量添加额外启动参数(如调试或反向代理webroot设置),需确保参数正确,错误参数可能导致容器无法启动。
yaml--- version: "2.1" services: tvheadend: image: lscr.io/linuxserver/tvheadend:latest container_name: tvheadend environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC - RUN_OPTS= #可选 volumes: - /path/to/data:/config - /path/to/recordings:/recordings ports: - 9981:9981 - 9982:9982 devices: - /dev/dri:/dev/dri #可选,用于硬件加速 - /dev/dvb:/dev/dvb #可选,用于DVB卡直通 restart: unless-stopped
bashdocker run -d \ --name=tvheadend \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -e RUN_OPTS= `#可选` \ -p 9981:9981 \ -p 9982:9982 \ -v /path/to/data:/config \ -v /path/to/recordings:/recordings \ --device /dev/dri:/dev/dri `#可选` \ --device /dev/dvb:/dev/dvb `#可选` \ --restart unless-stopped \ lscr.io/linuxserver/tvheadend:latest
Host与Bridge网络模式
若使用IPTV、SAT>IP或HDHomeRun,需使用 --net=host 创建容器并移除 -p 端口映射,因为这些服务需要多播地址 239.255.255.250 和UDP端口 1900,目前Docker bridge模式不支持。若主机存在其他多播服务(如SSDP/DLNA/Emby),可能需通过macvlan为Tvheadend分配独立IP解决稳定性问题。
| 参数 | 功能 |
|---|---|
-p 9981 | WebUI端口 |
-p 9982 | HTSP服务器端口 |
-e PUID=1000 | 用户ID(详见下方说明) |
-e PGID=1000 | 组ID(详见下方说明) |
-e TZ=Etc/UTC | 时区设置,参考 时区列表 |
-e RUN_OPTS= | 额外启动参数(见额外运行参数) |
-v /config | Tvheadend配置文件存储路径 |
-v /recordings | 录制文件存储路径 |
--device /dev/dri | AMD/Intel GPU硬件加速(vaapi),可选 |
--device /dev/dvb | DVB卡直通,使用IPTV或HDHomeRun时可省略,可选 |
可通过 FILE__ 前缀从文件中设置环境变量,例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
将从 /run/secrets/mysecretvariable 文件内容设置 MYVAR 环境变量。
可通过 -e UMASK=022 覆盖容器内服务的默认umask设置,umask通过减法调整权限,详见 umask说明。
使用卷映射时,可通过 PUID 和 PGID 避免主机与容器间的权限问题。确保主机卷目录所有者与指定的 PUID/PGID 一致。通过 id your_user 命令获取当前用户的ID:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=tvheadend&query=%24.mods%5B%27tvheadend%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml]([] https://img.shields.io/badge/dynamic/yaml?color=94398d&labelColor=555555&logoColor=ffffff&style=for-the-badge&label=universal&query=%24.mods%5B%27universal%27%5D.mod_count&url=https%3A%2F%2Fraw.githubusercontent.com%2Flinuxserver%2Fdocker-mods%2Fmaster%2Fmod-list.yml]([]
通过 https://github.com/linuxserver/docker-mods 扩展容器功能,上述徽章链接可查看可用Mods。
容器运行中进入shell:
bashdocker exec -it tvheadend /bin/bash
实时查看容器日志:
bashdocker logs -f tvheadend
查看容器版本:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' tvheadend
查看镜像版本:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/tvheadend:latest
bash# 所有镜像 docker-compose pull # 单个镜像 docker-compose pull tvheadend
bash# 所有容器 docker-compose up -d # 单个容器 docker-compose up -d tvheadend
bashdocker image prune
bashdocker pull lscr.io/linuxserver/tvheadend:latest
bashdocker stop tvheadend docker rm tvheadend
bashdocker image prune
bashdocker run --rm \ -v /var/run/docker.sock:/var/run/docker.sock \ containrrr/watchtower \ --run-once tvheadend
清理旧镜像:docker image prune
警告:不建议使用Watchtower作为容器自动更新工具,长期推荐使用 Docker Compose。
推荐使用 Diun 接收更新通知,不建议使用自动更新容器的工具。
bashgit clone https://github.com/linuxserver/docker-tvheadend.git cd docker-tvheadend docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/tvheadend:latest .
在x86_64硬件上构建ARM变体需使用 multiarch/qemu-user-static:
bashdocker run --rm --privileged multiarch/qemu-user-static:register --reset
然后使用 -f Dockerfile.aarch64 指定架构Dockerfile。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务