收起左侧

IPTV 频道发现、线路整理和生成播放列表

0
回复
48
查看
[ 复制链接 ]

2

主题

5

回帖

0

牛值

江湖小虾

找了好多都要自己抓包,所以做了个相对**一点的。

交换机1口插光猫iptv口,2口插iptv,3口插飞牛闲置口。

交换机设置3口镜像2口。

容器网络 host。抓包需要 NET_RAW,实验性 IPTV 认证和接口路由调整需要 NET_ADMIN。 FNOS 中这两个权限在容器编辑页的「高级设置 → 功能」项目里勾选:NET_RAWNET_ADMIN

已知问题:回看和时移正在调试。

有问题可以github或者这里提交,我尽快修复。

IPTV Sniffer Web 1.2.0

完整使用流程

  1. 搭建镜像拓扑
    在管理型交换机中把机顶盒端口设为镜像源,把 Docker 宿主机网口设为镜像目标。容器使用 --network host。抓包需要 NET_RAW,实验性 IPTV 认证和接口路由调整需要 NET_ADMIN。 FNOS 中这两个权限在容器编辑页的「高级设置 → 功能」项目里勾选:NET_RAWNET_ADMIN
  2. 运营商频道发现
    打开「运营商频道」,填写机顶盒 IP,选择镜像口,点击「开始捕获」,然后重启机顶盒。捕获完成后导入频道列表。
  3. 查看 IPTV 认证信息
    打开「IPTV 认证」。抓包得到的 STB MAC、Hostname、IPTV IP、网关、Option60、UserToken、FCC 记录会集中显示在这里。
  4. 频道使用与导出
    打开「频道线路」,确认主源和备选线路。导出:
    • channels-best.m3u:每个频道组只导出主源(需填写 rtp2httpd 地址);
    • channels-all.m3u:导出全部线路(需填写 rtp2httpd 地址);
    • channels-fnos-hls.m3u:飞牛影视 HLS(浏览器可直接播放,地址指向本机 HLS 转封装端点);
    • channels-rtp2httpd-best.m3u:给 rtp2httpd external-m3u 使用的主源文件;
    • channels-rtp2httpd-all.m3u:给 rtp2httpd 使用的全部线路源文件。
  5. IPTV 认证(需要主动播放时)
    在「IPTV 认证」中填写接口、MAC、Hostname 等参数,点击「实验性一键认证」。执行前会备份初始 MAC、IPv4 和路由,并提供恢复按钮。FNOS 容器必须在「高级设置 → 功能」勾选 NET_ADMINNET_RAW
  6. 播放诊断
    打开「播放诊断」,填写 rtp2httpd 地址和一个频道地址。诊断会检查 rtp2httpd 是否可访问、是否匹配 M3U、FCC 是否超时、是否发出 IGMP、是否收到 239.x UDP。

参考与致谢:

核心特性

功能 说明
运营商频道发现 通过交换机镜像口捕获机顶盒开机流量,解析频道表、组播地址、FCC/FEC、DHCP 认证信息
IPTV 认证助手 集中展示 MAC / Hostname / IPTV IP / 网关 / Option60 / UserToken / FCC 摘要;提供实验性一键认证与恢复;支持导出/导入接口初始状态备份;可检测并临时解除选定网口 egress BPF 组播拦截,并支持定时自动修复开关
频道线路组 同名频道自动归组,按播放可用性、FCC/FEC、包数和人工主源标记选择主源,保留备选线路
播放链路诊断 检测 rtp2httpd 可达性、配置、FCC、IGMP、组播回流和镜像口误判
五档导出 channels-best.m3u / channels-all.m3u / channels-fnos-hls.m3u(浏览器 HLS)/ channels-rtp2httpd-best.m3u / channels-rtp2httpd-all.m3u
飞牛影视 HLS 支持 按需 FFmpeg HLS 转封装,浏览器直接播放组播流;空闲 60 秒自动停止
EPG & 台标 XMLTV EPG + TVlogo 缓存匹配;可在频道线路标签勾选启用/禁用;支持一键重新匹配

唯一推荐拓扑:交换机镜像口

光猫 IPTV 口 → 交换机
  **─ 机顶盒端口(被镜像源)
  **─ Docker 宿主机网口(镜像目标)

这种方式用于 捕获机顶盒开机流量

  • 可以捕获机顶盒开机流量;
  • 可以解析频道表、组播地址、FCC/FEC、Option60 等认证信息;
  • 可以生成频道线路和 rtp2httpd 源文件;
  • 不能证明宿主机可以主动播放,因为镜像口不能主动向 IPTV 上游发送 IGMP/FCC 请求。

如果要让 rtp2httpd 主动播放,必须让某个设备完成 IPTV DHCP 认证并具备主动访问 IPTV 上游的能力。项目中的 IPTV 认证助手 用于辅助完成这一步。

IPTV 认证助手说明

实验性一键认证要求:

network_mode: host
cap_add: NET_ADMIN, NET_RAW
容器以 root 运行

在 FNOS 图形界面中编辑容器时,进入「高级设置 → 功能」,勾选:

  • NET_RAW:允许 tcpdump 抓包和原始网络访问;
  • NET_ADMIN:允许实验性认证助手修改选定网口的 MAC、IPv4、路由并执行 DHCP 认证。

强提醒:

  • 执行前断开机顶盒 IPTV 线,避免 STB MAC 冲突;
  • 确认 Web 管理页面通过另一张网卡访问;
  • 默认路由不会被项目主动替换,只会按页面选择写入 IPTV 相关路由。
收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则