上海电信 IPTV 组播转单播

最近搞了一套NAS,搭建了在家里的影音库EMBY,发现可以支持播放电视节目,正好家里的IPTV机顶盒坏了,于是就折腾了一下 UDPXY 来实现单播任意设备观看IPTV。

秉承在多年IDC行业工作的经验,网络架构尽可能简单,不要使用各种二层Bridge。因此本篇文章会使用 ROSv7 新特性 Docker来实现目标。

准备材料:

  1. Mikrotik RouterOSv7 (开启Container)
  2. udpxy 的包
  3. 上海电信节目单

开始操作:

桥接 VLAN85

我这边是用 RouterOS进行拨号的,在IPTV光猫中把VLAN85继承给LAN口1

在ROS上配置 VLAN85

配置Docker,veth

将 veth 加入到 Bridge 中

配置 IP 在 Bridge上

新建Docker

udpxy

开启 IGMP Proxy

在 Routing -> IGMP Proxy 下新建两个 Interface

vlan85的 Alternative Subnets 需要填写 0.0.0.0/0

运行 Docker 后,查看 udpxy 的status

下载上海电信的 M3U 替换成单播地址

格式如下:

http://单播地址:4022/udp/组播地址

举例说明:

#EXTINF: -1 tvg-id="cctv-1" tvg-name="CCTV-1(综合)" group-title="央视频道", CCTV-综合「高清」
rtp://239.45.3.145:5140

转换成

#EXTINF: -1 tvg-id="cctv-1" tvg-name="CCTV-1(综合)" group-title="央视频道", CCTV-综合「高清」
http://192.168.201.2:4022/udp/239.45.3.145:5140

这个时候就可以用内网中任意一台设备观看上海电信 IPTV 了

使用 Mikrotik 解锁本地限定流媒体/网站

目前来看,这套方案整体稳定性不佳,我目前只用来解锁AbemaTV的流视频,而其他的流媒体或者网站类似 DMM,Netflix之类的因为封锁不算非常严格,因此可以通过购买一些特殊的服务器来解决。

在操作之前,请先确保你对 Mikrotik RouterOS这个系统有一定了解,并且需要精通 Linux 系统中路由表这一块。

阅读全文→