本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

proxylive是一款视频流转码与广播应用,可将HTTP MPEG-TS流按需转码为MPEG-TS或HLS格式并分发给多个客户端。核心价值在于实现多客户端共享单个后端连接,降低资源占用;支持按需转码以适配不同设备或带宽需求,并提供多源故障切换、EPG(电子节目指南)及用户认证功能,适用于家庭媒体中心或小型直播分发场景。
自动加载Tvheadend中的所有频道,需配置Tvheadend连接信息及频道刷新间隔。
配置示例(application.yaml):
source: tvheadendURL: [***] channels: type: tvheadend refresh: 60 # 刷新间隔(秒)
通过JSON文件定义频道信息,支持从文件/URL或Git仓库加载,配置刷新机制。
定期从指定文件路径或URL读取JSON数据。
配置示例(application.yaml):
source: channels: type: json refresh: 60 # 刷新间隔(秒) url: file:///my/disk/channels.json 或 [***]
从Git仓库读取频道数据和图标(picons),仅在检测到新提交时刷新。
配置示例(application.yaml):
source: channels: git: repository: [***] # 可选配置 user: youruser pass: yourpass branch: master type: json refresh: 60 # 刷新间隔(秒)
channels.json示例:
[ { "number" : 1, "name" : "La 1 HD", "id" : "la1hd", "epgID" : "La 1 HD", "logoFile":"/picons/la1hd.png", "logoURL": "[***]", "categories" : [ "Generales", "TDT" ], "ffmpegParameters": "额外的FFmpeg参数(可选,用于MTPS提取)", "sources" : [ { "url" : "[***]", "priority" : 1, "type" : "ffmpeg" // 强制使用FFmpeg处理原始流(适用于MTPS) }, { "url" : "udp://225.225.201.1:8008", "closeHook": "[***]{{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配置文件,主要配置项如下:
source: # 源连接重试间隔(秒),可选 reconnectTimeout: 10 # EPG配置(可选) epg: url: [***] # EPG数据URL refresh: 600 # 刷新间隔(秒,默认10分钟) channels: # 频道源配置,详见“频道源类型” # ...(根据源类型配置) # 连接后端HTTP(S)流时使用的User-Agent userAgent: "Proxylive" # 流超时时间(秒):后端无数据传输时关闭客户端连接 streamTimeout: 60
用于定义转码路径及转码配置文件(profiles):
ffmpeg: # 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 # 用户断开后保留转码的超时时间(秒)
buffers: # 单次读取流的最大字节数,默认1MB chunkSize: 1048576 # 广播缓冲区大小,默认50MB( larger buffer更稳定但延迟更高) broadcastBufferSize: 52428800
支持Plex认证(LDAP暂未实现),配置示例:
authentication: # 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
docker 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)免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429