
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
proxylive是一款视频流转码与广播应用,可将HTTP MPEG-TS流按需转码为MPEG-TS或HLS格式并分发给多个客户端。核心价值在于实现多客户端共享单个后端连接,降低资源占用;支持按需转码以适配不同设备或带宽需求,并提供多源故障切换、EPG(电子节目指南)及用户认证功能,适用于家庭媒体中心或小型直播分发场景。
自动加载Tvheadend中的所有频道,需配置Tvheadend连接信息及频道刷新间隔。
配置示例(application.yaml):
yamlsource: tvheadendURL: http://user:password@your.tvheadend.com:9981 channels: type: tvheadend refresh: 60 # 刷新间隔(秒)
通过JSON文件定义频道信息,支持从文件/URL或Git仓库加载,配置刷新机制。
文件/URL方式
定期从指定文件路径或URL读取JSON数据。
配置示例(application.yaml):
yamlsource: channels: type: json refresh: 60 # 刷新间隔(秒) url: file:///my/disk/channels.json 或 http://my.server.com/channels.json
Git方式
从Git仓库读取频道数据和图标(picons),仅在检测到新提交时刷新。
配置示例(application.yaml):
yamlsource: channels: git: repository: https://github.com/user/repo.git # 可选配置 user: youruser pass: yourpass branch: master type: json refresh: 60 # 刷新间隔(秒)
channels.json示例:
json[ { "number" : 1, "name" : "La 1 HD", "id" : "la1hd", "epgID" : "La 1 HD", "logoFile":"/picons/la1hd.png", "logoURL": "http://server.com/logo.png", "categories" : [ "Generales", "TDT" ], "ffmpegParameters": "额外的FFmpeg参数(可选,用于MTPS提取)", "sources" : [ { "url" : "http://your/server/stream", "priority" : 1, "type" : "ffmpeg" // 强制使用FFmpeg处理原始流(适用于MTPS) }, { "url" : "udp://225.225.201.1:8008", "closeHook": "http://myServer/hook?myChannel={{channel}}&date={{now}}", "priority" : 2 }, { "url" : "rtp://200.100.1500:1001", "priority" : 3 }, { "url" : "hlss://my.server/my/stream.m3u8", // hls或hlss(TLS加密) "closeHook": "pipe://echo \"Closed channel {{channel}} when {{now}}\" > example.txt", "priority" : 4 }, { "url" : "dashs://my.server/my/stream.m3u8", // dash或dashs(TLS加密) "priority" : 5 }, { "url" : "rtmp://my.server/rtmp/live", "priority" : 6 }, { "url" : "pipe://raspivid -o - -t 0 -fps 25 -g 50 -rot 180 -n -a 12 -b 6000000", // 处理进程输入流 "priority" : 7 } ] } ]
图标说明:图标可通过
logoFile(本地路径)或logoURL(远程URL)指定,logoURL会被缓存,客户端将从proxylive请求图标。使用Git源时,图标需存放于仓库根目录。
需在运行目录(Docker环境下为/app/)创建application.yaml配置文件,主要配置项如下:
yamlsource: # 源连接重试间隔(秒),可选 reconnectTimeout: 10 # EPG配置(可选) epg: url: http://tvheadend:9981/xmltv/channels # EPG数据URL refresh: 600 # 刷新间隔(秒,默认10分钟) channels: # 频道源配置,详见“频道源类型” # ...(根据源类型配置) # 连接后端HTTP(S)流时使用的User-Agent userAgent: "Proxylive" # 流超时时间(秒):后端无数据传输时关闭客户端连接 streamTimeout: 60
用于定义转码路径及转码配置文件(profiles):
yamlffmpeg: # FFmpeg可执行文件路径 path: '/usr/bin/ffmpeg' # 转码配置文件(profiles),alias用于URL中的profile参数 profiles: - alias: "aac" # 音频转码示例 parameters: "-i {input} {channelParameters} -sn -ac 2 -c:a aac -b:a 320k -c:v copy" - alias: "240p" # 240p视频转码示例 parameters: "-i {input} {channelParameters} -sn -c:a:0 aac -ac 2 -b:a 64k -c:v libx264 -tune zerolatency -g 10 -vprofile high -level 4.0 -crf 18 -movflags +faststart -bufsize 15000k -maxrate 300k -preset veryslow -vf scale=-1:244,yadif=0" # 更多配置文件(360p、480p、720p、1080p等)... # MPEG-TS输出参数(非“raw”配置文件时生效) mpegTS: parameters: "-threads 0 -f mpegts -mpegts_m2ts_mode 1 -mpegts_copyts 1 -mpegts_flags +resend_headers" # HLS输出配置(默认禁用) hls: enabled: false # 是否启用HLS tempPath: "/tmp" # HLS分片文件存储路径 parameters: "-flags -global_header -avoid_negative_ts disabled -map_metadata -1 -start_at_zero -copyts -flags -global_header -vsync cfr -y -nostats -f hls -hls_time 2 -hls_list_size 10 -hls_wrap 20 -hls_allow_cache 0 -hls_flags +append_list -hls_flags +discont_start -hls_flags +delete_segments" timeout: 30 # 用户断开后保留转码的超时时间(秒)
yamlbuffers: # 单次读取流的最大字节数,默认1MB chunkSize: 1048576 # 广播缓冲区大小,默认50MB( larger buffer更稳定但延迟更高) broadcastBufferSize: 52428800
支持Plex认证(LDAP暂未实现),配置示例:
yamlauthentication: # Plex认证 plex: refresh: 10800 # 用户列表刷新间隔(秒,默认3小时) adminUser: "plexOwnerUser" # Plex管理员用户名 adminPass: "plexOwnerPass" # Plex管理员密码 serverName: "MyPlexServerName" # Plex服务器名称(仅允许管理员授权的用户访问) # LDAP认证(未实现) # ldap: # server: "ldap://server:389" # username: "user" # pass: "pass" # searchBase: "dc=ad,dc=my-domain,dc=com"
客户端连接示例(带认证参数):
http://localhost:8080/channel/list/mpeg/1080p?user=myplexuser&pass=myplexpass
http://{server}:8080/view/{profile}/{channelID}
server:proxylive服务IP/域名profile:转码配置文件别名(如1080p、aac,定义于ffmpeg.profiles)channelID:频道唯一标识(Tvheadend源为streamID,自定义JSON源为id字段)http://{server}:8080/channel/list/{format}/{profile}?user={user}&pass={pass} # 带认证 http://{server}:8080/channel/list/{format}/{profile} # 无认证
format:输出格式,支持mpeg(MPEG-TS)或hls(HLS)http://{server}:8080/epg
bashdocker run --name=proxylive -p 8080:8080 --restart=always -d -v /path/to/your/application.yml:/app/application.yml:ro segator/proxylive
-p 8080:8080:映射服务端口(容器内默认8080)-v /path/to/your/application.yml:/app/application.yml:ro:挂载本地配置文件(只读)--restart=always:容器退出时自动重启application.yaml配置文件java -jar proxylive.jar(需JRE 8+及FFmpeg)您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务