Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

播放大约250秒就中断 #24

Closed
fqx opened this issue Nov 26, 2022 · 7 comments
Closed

播放大约250秒就中断 #24

fqx opened this issue Nov 26, 2022 · 7 comments

Comments

@fqx
Copy link

fqx commented Nov 26, 2022

pppoe拨号,igmp proxy, udpxy都设好了。
播250秒左右就中断,没有下行数据。
udpxy已经按恩山的推荐加上了 -M 55参数。
不知道问题在哪里了。
抓包机顶盒可以看到访问125.88.98.37:9000/heartBeat,难道要模拟这个?

@aeeq
Copy link

aeeq commented Nov 28, 2022

编辑 /etc/config/udpxy 里面 mcsub_renew 对应就是 -M ,然后重启 /etc/init.d/udpxy restart

@fqx
Copy link
Author

fqx commented Nov 28, 2022

编辑 /etc/config/udpxy 里面 mcsub_renew 对应就是 -M ,然后重启 /etc/init.d/udpxy restart

你说的这是openwrt/LEDE的配置吧,我是在LAN有一台Linux Server,没有/etc/config/udpxy这个配置文件,就是命令行-M 55,已经用上了,还是会断。

@fqx
Copy link
Author

fqx commented Nov 28, 2022

2022-11-28 17 24 17

@aeeq
Copy link

aeeq commented Nov 28, 2022

我之前也试过,加了参数就可以了,你这个情况就不知道了。我现在直接在路由器上跑,不加参数都不会断,而且不会有网络风暴。你可以试一下在 openwrt 上跑

@Tzwcard
Copy link
Owner

Tzwcard commented Nov 28, 2022

你可以先看看是不是硬件问题
我以前还是200M网络的时候用的路由是EA4200v2 上面跑的openwrt然后用udpxy IPTV是pppoe拨号 然后每看3-5分钟就会断流
需要重新开始播放 大部分时间IPTV的ppp断了之后再连上组播就没了 需要光猫断电5分钟以上再开才恢复
升千兆之后光猫从原来黑色的烽火什么的换成一个小的白色光猫 主路由也换成R2S 一点问题都没有了

因为你这种情况udpxy不是直接跑在路由上 路由上IPTV链路的设置、路由的组播设置、在路由到linux机器中间的网路拓扑、linux机器的性能等等都可能是影响的因素 建议一个一个排查

@fqx
Copy link
Author

fqx commented Nov 29, 2022

我找到问题了,我路由器用的RouterOS。
IGMP-Proxy里面有个选项Quick Leave,这个选项需要开启。
因为不开启的话,udpxy的drop和join都会被路由器聪明的过滤掉。

@fqx fqx closed this as completed Nov 29, 2022
@fqx
Copy link
Author

fqx commented Nov 29, 2022

BTW,我写了个python脚本可以自动把m3u加上tag-id和台标,用xteve的应该知道有什么用。

import requests, re

tgtfile = 'iptv.m3u'
url = 'https://raw.githubusercontent.com/Tzwcard/ChinaTelecom-GuangdongIPTV-RTP-List/master/GuangdongIPTV_rtp_hd.m3u'
api = 'http://epg.51zmt.top:8000/upload/'
rtp = re.compile(r'rtp://')
repl = 'http://192.168.1.1:123/rtp/'
proxies = { }

def build_m3u(url):
    r = requests.get(url, proxies=proxies, timeout=1)
    m3u = re.sub(rtp, repl, r.text)
    # with open(tempfile, 'w') as f:
    #     f.write(m3u)
    return m3u


def get_epg(m3u):
    file = {'myfile': m3u}
    r = requests.post(api, files=file, timeout=5)
    url = re.search('http.*m3u', r.text)[0]
    r = requests.get(url, timeout=5)
    with open(tgtfile, 'w') as f:
        f.write(r.text)


if __name__ == '__main__':
    m3u = build_m3u(url)
    get_epg(m3u)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants