去年买的话说 RT AX86U Pro ,只是想翻墙用的,接上篇帖子 https://www.v2ex.com/t/1025735 想看 IPTV 试了 TVBox 等一众免费的方法,除了能看国外电视台的好处外,实在是卡的不行 按照家中的光猫型号搜了下:ZXHN F4610U 好像没有什么有用的信息,要么拿到超管密码,要么改桥接到路由器再 PPOE 拨号 但是我懒得联系联通,也不喜欢 3 个遥控器来回换(电视、机顶盒、安卓盒子),然后折腾了下,目前拓扑图是这样:
首先在华硕路由后台-内部网络(LAN)-IPTV
使用 DHCP 路由选 Microsoft
启动组播路由 选 启用
Default IGMP version 选 IGMP v3
Enable Fast Leave 选 启用
UDP 代理( Udpxy ) 我填了 23234(跟下面的 IPTV 播放地址一致)
然后找到北京联通 IPTV 组播转单播的源地址,在 github 有大佬抓到了播放地址: https://github.com/qwerttvv/Beijing-IPTV 于是乎,把家中的 Mini PC 利用起来,装好 apache ,把 m3u 拖到 web 服务目录下,再把 m3u 中的局域网 IP 改为路由器 IP:
#EXTM3U x-tvg-url="http://epg.51zmt.top:8000/e.xml.gz"
#EXTINF:-1 tvg-name="北京卫视",BRTV 北京卫视[高清]
http://192.168.123.1:23234/rtp/239.3.1.241:8000
#EXTINF:-1 tvg-name="BTV 新闻",BRTV 新闻[高清]
http://192.168.123.1:23234/rtp/239.3.1.159:8000
192.168.123.1 替换为路由器的地址
最后,电视盒子里用 Kodi ,装好 IPTV 插件,源地址选我的 Mini PC 在内网的 IP 地址/m3u 文件路径,然后就可以高速无卡顿的播放 IPTV 了,同时还支持 egp 节目单 时序图呢就是这样了:
在千兆宽带面前,播放电视节目也才占用了 1~2mb ,即便是 4k 频道也才 20~30mb ,绰绰有余啊
本以为到这就可以了,但是有点上头,节目源要更新啊,IPTV 播放地址也要更新啊 又找了 ChatGPT 写了这个 power shell 脚本,每天 7 点定时更新播放地址和节目单:
$Url = "https://raw.githubusercontent.com/qwerttvv/Beijing-IPTV/master/IPTV-Unicom.m3u"
$OutputPath = "C:\Apache24\htdocs\iptv.m3u"
$OldUrl = "http://192.168.123.1"
$NewUrl = "http://192.168.1.1"
$EpgGzUrl = "http://epg.51zmt.top:8000/e.xml.gz"
$EpgGzOutputPath = "C:\Apache24\htdocs\e.xml.gz"
$EpgOutputPath = "C:\Apache24\htdocs\e.xml"
# 下载 IPTV 文件内容并替换字符串
$Content = Invoke-WebRequest -Uri $Url -UseBasicParsing
$NewContent = $Content.Content.Replace($OldUrl, $NewUrl)
# 保存 IPTV 文件,确保使用 UTF-8 编码
$NewContent | Out-File -FilePath $OutputPath -Encoding UTF8
# 下载 EPG gzip 文件
Invoke-WebRequest -Uri $EpgGzUrl -OutFile $EpgGzOutputPath -UseBasicParsing
# 解压.gz 文件
function Decompress-Gzip($inputPath, $outputPath) {
$InputStream = [System.IO.File]::OpenRead($inputPath)
$GzipStream = New-Object System.IO.Compression.GzipStream($InputStream, [System.IO.Compression.CompressionMode]::Decompress)
$OutputStream = [System.IO.File]::Create($outputPath)
$GzipStream.CopyTo($OutputStream)
$GzipStream.Close()
$InputStream.Close()
$OutputStream.Close()
}
# 调用解压函数
Decompress-Gzip -inputPath $EpgGzOutputPath -outputPath $EpgOutputPath
Write-Host "Both IPTV and EPG updates are done."
现在基本满足了使用需要了
最后再说下华硕这个路由器,自带内网穿透、VPN 、装了梅林固件还能翻墙,是真的强