经常折腾 IPTV 的朋友应该知道,有本地 IPTV 组播源 + 组播转单播工具 + OpenWRT 路由器,在电脑、手机上搭配 APTV 等播放器,就可以看当地 IPTV 电视直播。而且因为走的是运营商 IPTV 网络,稳定性极高。互联网上公开能找到的直播源,平时勉强还算稳定,遇到春晚、阅兵这种大型活动基本都歇菜了。
平时大家常用的组播转单播工具有 udpxy 、msd_lite 等,这次我要介绍一下我编写的这个工具 rtp2httpd-modern ,一定是目前功能最强的。
项目地址 https://github.com/stackia/rtp2httpd (欢迎点进查看完整介绍)
这个工具除了基本的组播转单播功能,还实现了:
两个演示视频:
https://github.com/user-attachments/assets/a8c9c60f-ebc3-49a8-b374-f579f8e34d92
https://github.com/user-attachments/assets/fedc0c28-f9ac-4675-9b19-a8efdd062506
顺便附上我本地(海南电信 IPTV )的抓源脚本和 m3u8: https://github.com/stackia/hainan-telecom-iptv-updater
101
jsq2627 OP @JoeSmith 你这条应该回复在 https://www.v2ex.com/t/971817
组播转单播,是为了脱离运营商的垃圾 IPTV 盒子,用第三方播放器在手机、电脑、电视盒子上看直播,或者通过公网看直播。并不是(也不能)解决弱电箱到客厅单线复用问题。 |
102
JoeSmith 27 天前
能收组播的盒子/播放器大把吧,还是我家里的配置,在另一间房电脑上用 vlc 看也毫无问题,并不需要转单播。当然也需要 vlan 配置。
|
103
JoeSmith 27 天前
当然公网看直播这个没办法,就只能转单播了。
|
104
cbigame0205 27 天前
@JoeSmith 说实话,这条有点自作聪明,且不说这个事情跟 LZ 这个软件没关系,而且只要有 OPENWRT 的路由,完全可以不用交换机,一台路由器实现 IPTV 和网络的单线复用。哪怕是最复杂需要 AB 面认证的上海电信 IPTV 都行。
楼主这个软件的目的是抛弃机顶盒,看 IPTV ,通过 DDNS 和端口转发在外网看家里的 IPTV 也没问题 |
105
cbigame0205 27 天前
@JoeSmith 很多电信套餐都只有一路 4KIPTV 等等,家里有两台甚至多台电视机,单播当然是必要的。且不说你多搞了台交换机,请问你家有三四个房间都有电视,都要看 IPTV ,不搞单播你去买很多机顶盒
|
106
Damn 27 天前 via iPhone
@JoeSmith 还有没有一种可能,某些地方的某些运营商机顶盒它不支持 hdmi cec ,你无论如何都得用两个遥控器?然后组播转单播可以只用电视装个壳播放器就能一个遥控器通吃?
我以前就用 vlan ,因为原来运营商的机顶盒支持 hdmi cec ,电视和机顶盒开机都需要时间,只是机顶盒要多那么十几秒,也不是不能忍受,一个遥控器管所有。 后来携转,机顶盒不支持 hdmi cec ,我必须得用两个遥控器,然后我电视开关机不是红外,没有办法用机顶盒遥控器学习,这种情况你还愿意用 vlan 么? |
108
MacTavish123 27 天前
|
109
cjd6568358 27 天前
@zjwww 方便给个上海电信 fcc 吗?懒得抓包了
|
110
cjd6568358 27 天前
@zjwww 或者方便给个联系方式请教下吗?
|
111
jsq2627 OP |
113
li592677 27 天前
软路由插上 iptv 网线的网口需要设置吗?
|
114
apex8777 27 天前
好评如潮,我也要试下。有江苏电信的大哥吗?
|
115
jsq2627 OP |
116
zjwww 26 天前
@MacTavish123 那也没到 200m 啊?另外请问下您这个电子版合同是怎么下载到的?谢谢。
|
118
MacTavish123 26 天前 via Android
@zjwww #116 套餐不一样,速率不一样。我这个电子合同是联通发到我电子邮箱的。因为从一开始用联通号码的时候就填写了邮箱,所以之后我名下办理任何业务都会发邮件。
|
121
cjd6568358 26 天前
@jsq2627 感谢
|
123
sentivcn 25 天前
docker 运行配置 m3u 总是不成功,m3u 不存在
|
124
yutian12345 25 天前
装上以后还是没有 luci
配置好了不能用 只有在 ssh 下面输入一个命令比如-l 端口或者-i 上游端口这样的命令才能用 ssh 是空白状态,只要关了 ssh 就不行了 这个是怎么整 |
127
jsq2627 OP @zjwww 是的。用旁路由的话,建议光猫 itv 口直连旁路由,整个 iptv 流量不要经过主路由。
如果非要用主路由接入 iptv 网的话,涉及组播转发、fcc 端口映射,会比较麻烦 |
128
jsq2627 OP @yutian12345 用浏览器无痕模式访问后台看下有没有
|
130
jsq2627 OP @zjwww 要看时移需要能抓出 rtsp 时移源来。时移源一般是带认证信息的,需要写脚本定时更新,需要一些技巧。可以在 github issue 区或者恩山上找当地朋友交流。
|
131
yutian12345 25 天前
|
132
jsq2627 OP @yutian12345 luci 会受到浏览器缓存影响,很多人清缓存或者无痕模式访问后台就好了。
要是搞不定 luci 的话,可以手动编辑 /etc/config/rtp2httpd 文件,改好配之后运行 /etc/init.d/rtp2httpd restart 启动服务 |
133
yutian12345 25 天前
@jsq2627 可能我没说清楚
1 、luci 界面及时用无痕模式登录路由器后也看不到。不过这个无所谓 2 、通过 ssh 的 VI 命令编辑了配置文件,使用这个重启命令后,无法使用,插件的后台状态页面也无法打开 必须通过 ssh 运行一个命令比如 rtp2httpd -i 上游端口或者 rtp2httpd -l 监听端口这样的命令后才可以看电视,也可以进入插件的后台状态页面,但是此时 ssh 界面是出于空白状态,只有当有错误是会输出错误信息 使用 ctrl+C 停止这个命令或者直接关闭 ssh 程序后,就无法看电视,也无法进入插件后台状态页面了 |
134
jsq2627 OP @yutian12345 ssh 上直接运行是前台运行,断开连接后程序就退出了。任何程序都是这样的。
你需要后台运行 rtp2httpd ,方法就是我上面说的,编辑 /etc/config/rtp2httpd 配置(这是 openwrt 的 uci 配置),用 /etc/init.d/rtp2httpd restart 来后台启动服务 |
135
yutian12345 25 天前
@jsq2627 编辑 /etc/config/rtp2httpd 配置(这是 openwrt 的 uci 配置),用 /etc/init.d/rtp2httpd restart 来后台启动服务
就是这个运行完后,进不了插件后台也不能看 应该没运行成功? |
136
jsq2627 OP @yutian12345 可以开两个 ssh ,一个运行 logread -e rtp -f ,另一个运行 /etc/init.d/rtp2httpd restart ,看有没有日志输出
|
137
jsq2627 OP @yutian12345 也贴一下你编辑后的 /etc/config/rtp2httpd 看一下
|
138
yutian12345 25 天前
@jsq2627 option disabled '1'
option respawn '1' option port '7088' # option use_config_file '0' # option verbose '1' # Upstream Interface Configuration # Simple mode (default): Use one interface for all traffic option upstream_interface 'eth0' # Advanced mode: Configure separate interfaces for different traffic types # To enable advanced mode, set advanced_interface_settings to '1' in LuCI # or uncomment the specific interface options below instead of upstream_interface # option advanced_interface_settings '0' # option upstream_interface_multicast 'eth0' # option upstream_interface_fcc 'eth1' # option upstream_interface_rtsp 'eth2' # option maxclients '5' # option workers '1' # option buffer_pool_max_size '16384' # option hostname 'somehost.example.com' # option xff '0' # option status_page_path '/status' # option player_page_path '/player' # option r2h_token 'your-secret-token-here' # option external_m3u 'https://example.com/playlist.m3u' # option external_m3u_update_interval '86400' # option mcast_rejoin_interval '0' # option fcc_listen_port_range '40000-40100' # option video_snapshot '0' # option ffmpeg_path 'ffmpeg' # option ffmpeg_args '-hwaccel none' # option zerocopy_on_send '0' |
139
jsq2627 OP @yutian12345 把 option disabled '1' 改成 option disabled '0'
|
140
yutian12345 24 天前
@jsq2627
root@YutianER2260T:~# /etc/init.d/rtp2httpd restart root@YutianER2260T:~# /etc/init.d/rtp2httpd status /etc/rc.common: line 1: _procd_status: not found 好像还是不行,看起来是没启动成功 |
141
jsq2627 OP @yutian12345 这样的话那你要考虑一下土方法后台运行了。例如 ssh 后手动运行
nohup /usr/bin/rtp2httpd > /dev/null 2>&1 & 可以后台运行 把这行加入 /etc/rc.local 的 exit 0 之前,可以开机自动运行 用 killall rtp2httpd 结束后台进程 |
142
yutian12345 24 天前
@jsq2627 用这个方法可以了,我加到启动项里试试看。谢谢,我看看 FCC 行不行,主要是为了这个
|
143
yutian12345 24 天前
@jsq2627 试了一下 fcc 似乎都不成功
是路由器的 eth0 链接光猫的 iptv 口,在光猫上进行了 itv 拨号,也开启了 itv 口的 dhcp 功能 现在设置 fcc 上游端口为 eth0 ,不能够使用 显示掉落到组播 不过 fcc 列表里广东电信只有深圳和东莞,没广州的,不太确定是什么原因 |
144
jsq2627 OP @yutian12345 首先需要等有广州朋友分享本地 fcc 地址。其次 fcc 要工作,建议是在路由器上做 iptv 拨号,否则有复杂的 nat 穿透问题要解决。
|
145
yutian12345 24 天前
@jsq2627 好,我回头试试路由器拨号 itv
fcc 的话,我看看自己能不能抓 |
146
yutian12345 24 天前
@jsq2627 擦,把光猫 itv 改了桥接,然后用路由器拨号以后直接看不了了
后台界面一直显示 12:43:04 ERROR Multicast: No data received for 1 seconds, closing connection |
147
jsq2627 OP @yutian12345 是否把配置里的 upstream-interface 改过去了呢
|
148
yutian12345 24 天前 via Android
@jsq2627 光猫拨号的时候用的是 eth0 物理接口
路由器拨号是不是得用 pppoe-iptv 的虚拟接口? 改了以后似乎用 刚才的 ssh 直接执行配置部分台可以看,是不是 mac 地址没改成机顶盒的? |
149
yutian12345 24 天前 via Android
@jsq2627 如果是用你给的启动命令启动,就看不了
|
151
wske 23 天前
希望可以添加进 openwrt 的源里面
|
152
peterwillcn 15 天前
@JoeSmith 求指导 猫棒+vlan 网管交换机带 IGMP 功能和 OpenWrt 怎么配置呢?方便写个详细配置教程
|
153
cbigame0205 10 天前
感谢楼主,某个新版本之后 24.10 的 OPENWRT 服务里已经可以正常显示了
从 MSD 换到本软件,上海电信 FCC 组播用 233.18.204.xxx 那个网段,FCC 服务器用 124.75.26.151:15970 都可以顺利拉取,配合 HTTP 请求认证令牌外网 DDNS 用也没啥压力。 文档里建议写一下同时用 FCC 和令牌当中要用&连接,单独的文档里都是用的?,研究了下才搞定 感谢楼主 |
154
mafuyu 9 天前 via Android
梅林 ac68u 单文件跑起来了。-d 没有用只能用 141 楼的土办法后台运行。w1 情况下带 3 路 38m 的 4k 单核满了带不动了,比 udpxy 性能好,就是不知道为什么还是有小卡顿。不确定小卡顿后会不会跳转到同步 ovo ,还有就是有概率小卡顿后音画不同步不一确定播放器问题还是他的问题,udpxy 下没注意这个问题。谢谢楼主现在可以比较稳定的看 4k 频道了。
|
155
muhahaha 9 天前
请问有没有陕西联通的懒人直播源
|