能获取到IPTV地址但是无法播放
Opened this issue · 27 comments
请问这个地址是局域网资源吗?
【http://[xxx]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/32/21226231/1.m3u8】
不是,这是iptv的地址,正常来说直接播报这个地址给客户端就能播放了,但是用了您的反代后不知道为什么无法播放
我这边用手机网络(都支持ipv6)测试了下,此链接无法访问,没用反代的原始emby可以播放此直播吗?
http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226231/1.m3u8
这是iptv不是网址,这个是个推流的地址,m3u8的需要视频软件播放,我实测下来即使不开反代,原始emby也能直接使用,而且不消耗vps流量
我这边找了个直播源测试,已经修复好了,是前几天代码打日志报错了,更新下最新代码就可以了
更新完后,所有反代失效
我的问题,整体替换就好了,刚才我局部替换的
啊,不至于吧,是直播失败还是云盘的挂载内容播放失败?我这边测试没啥问题,方便提供下日志吗
2024/04/02 15:55:33 [error] 595#595: *66 js exception: Error: unhandled promise rejection: TypeError: (intermediate value)["proxyUri"] is not a function, client: 我的ip, server: default, request: "GET /emby/Users/3b9d2c6249ab47a598064c12131e5241/Items?SortBy=Random&Limit=20&Recursive=true&IncludeItemTypes=Movie%2CSeries%2CMusicVideo%2CVideo&ImageTypes=Backdrop&ParentId=54772&EnableTotalRecordCount=false&ImageTypeLimit=1&EnableImageTypes=Backdrop&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Tsukimu&X-Emby-Device-Id=Tsukimu&X-Emby-Client-Version=3.0.19-2.1&X-Emby-Token=71a791f370b642799d9cfeaf8917b713 HTTP/1.1", host: "我的域名"
2024/04/02 15:55:34 [notice] 595#595: *63 a client request body is buffered to a temporary file /var/cache/nginx/client_temp/0000000004, client: 我的ip, server: default, request: "POST /emby/Items/81718/PlaybackInfo?UserId=3b9d2c6249ab47a598064c12131e5241&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=120000000&DirectPlayProtocols=File%2CHttp%2CRtp%2CRtmp%2CRtsp%2CFtp&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=&X-Emby-Device-Id=Tsukimu&X-Emby-Client-Version=3.0.19-2.1&X-Emby-Token=71a791f370b642799d9cfeaf8917b713&reqformat=json HTTP/1.1", host: "我的域名"
2024/04/02 15:55:34 [error] 595#595: *63 js exception: Error: unhandled promise rejection: TypeError: (intermediate value)["proxyUri"] is not a function, client: 我的ip, server: default, request: "POST /emby/Items/81718/PlaybackInfo?UserId=3b9d2c6249ab47a598064c12131e5241&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=120000000&DirectPlayProtocols=File%2CHttp%2CRtp%2CRtmp%2CRtsp%2CFtp&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Tsukimu&X-Emby-Device-Id=Tsukimu&X-Emby-Client-Version=3.0.19-2.1&X-Emby-Token=71a791f370b642799d9cfeaf8917b713&reqformat=json HTTP/1.1", host: "我的域名"
153.99.231.177 - - [02/Apr/2024:15:55:34 +0000] "POST /emby/Items/81718/PlaybackInfo?UserId=3b9d2c6249ab47a598064c12131e5241&StartTimeTicks=0&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=120000000&DirectPlayProtocols=File%2CHttp%2CRtp%2CRtmp%2CRtsp%2CFtp&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Tsukimu&X-Emby-Device-Id=Tsukimu&X-Emby-Client-Version=3.0.19-2.1&X-Emby-Token=71a791f370b642799d9cfeaf8917b713&reqformat=json HTTP/1.1" 500 572 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) EmbyTheater/3.0.19-2.1 Chrome/100.0.4896.160 Electron/18.3.15 Safari/537.36" "-"
当前nginx有配https证书吗?
当前nginx有配https证书吗?
没有配呢,目前整个网站是http访问的
好吧,那不是https的问题,还有种可能是url编码的问题,把mount emby那里的链接和下边编码后的链接单独用支持直播的软件测试下
好吧,那不是https的问题,还有种可能是url编码的问题,把mount emby那里的链接和下边编码后的链接单独用支持直播的软件测试下
好的,我来试试
感觉不是很对劲啊,日志,目前新代码没对转发后的url编码这么彻底,我这边测试直播日志是这样的
2024/04/02 22:58:58 [warn] 115#115: *36221 js: cached PlaybackInfo path, will skip excess fetchEmbyFilePath
2024/04/02 22:58:58 [warn] 115#115: *36221 js: 0ms, mount emby file path: https://xxx.com:5278/zhongwenzimu/5PzEAi0h/index.m3u8
2024/04/02 22:58:58 [warn] 115#115: *36221 js: embyPathMapping: [[0,0,"/AList",""]]
2024/04/02 22:58:58 [warn] 115#115: *36221 js: mapped emby file path: https://xxx.com:5278/zhongwenzimu/5PzEAi0h/index.m3u8
2024/04/02 22:58:58 [warn] 115#115: *36221 js: redirect to: https://xxx.com:5278/zhongwenzimu/5PzEAi0h/index.m3u8
怀疑和ipv6地址上的那这个中括号被编码转义了有关,[]
怀疑和ipv6地址上的那这个中括号被编码转义了有关,[]
这个iptv我用的就是纯ip版本,没有域名。会不会是我的机子不支持ipv6的原因,我没给机子打开ipv6访问,只开了ipv4访问,但是传递过来的是地址,应该也能正常播放啊,我测试是走8096端口能直接播放而且不会走vps的流量,偏偏反代端口就无法播放,我之前用的代码倒是可以正常播放,但是没你的这么全面
emby和nginx没开v6没关系,
emby同时需要支持ipv6,播放时playbackinfo就会内部访问一次直播接口
这个v6地址是转发给客户端请求的,客户端同时需要支持ipv6。
是的,原始emby能正常的话地址应该没啥问题,我找的直播源ipv6是失效的,所以没充分测试。。。只能等明天我找个ipv6直播地址排查一下了,因为最近改的东西比较多,大概是缓存的那个路径编码影响到了
已经修复,是前几天提交的多余编码方式导致
e1f462b
emby和nginx没开v6没关系,emby同时需要支持ipv6,播放时playbackinfo就会内部访问一次直播接口 这个v6地址是转发给客户端请求的,客户端同时需要支持ipv6。是的,原始emby能正常的话地址应该没啥问题,我找的直播源ipv6是失效的,所以没充分测试。。。只能等明天我找个ipv6直播地址排查一下了,因为最近改的东西比较多,大概是缓存的那个路径编码影响到了
您的意思是服务端也需要支持ipv6吗?可是服务端的ipv6地址是我自己输入进去的,点击播放的时候正常是服务端推送直播地址给客户端,客户端得知后就可以开始播放,大佬我给你提供一个ipv6地址吧CCTV-1的:http://[2409:8087:7000:20::4]:80/dbiptv.sn.chinamobile.com/PLTV/88888888/224/3221226231/1.m3u8
已经修复,是前几天提交的多余编码方式导致 e1f462b
改动有点大,我明天试一下看看有没有问题
现在有个bug外挂字幕没有
调用第三方播放器外挂字幕没法在 302 的 URL 上传递,播放器的入参支持情况也不统一,只能用官方形式的客户端了,可以加载外挂字幕,文档里有少量相关的描述,或者使用另外那两个添加外部播放器按钮的脚本,不过前提也是对应的播放器支持传递 http 形式的字幕链接
外挂字幕是我这边的问题,我发现问题已经修复好了。还是之前的iptv问题,我替换了代码,发现还是无法正常播放iptv,虽然获取了原始链接,您可以在插件库下载一下iptv这个插件调试,也有可能是我这边的问题
2024/05/11 18:47:10 [warn] 21965#21965: *2425 js: 18ms, fetchEmbyFilePath async function cost
2024/05/11 18:47:10 [warn] 21965#21965: *2425 js: notLocal: false
2024/05/11 18:47:10 [warn] 21965#21965: *2425 js: mount emby file path: http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8
2024/05/11 18:47:10 [warn] 21965#21965: *2425 js: hit proxy, not mountPath first: ["/home"]
2024/05/11 18:47:10 [warn] 21965#21965: *2425 js: use original link
我还发现一个问题就是百度网盘直链无法读取外挂字幕,阿里云什么都可以,用的emby官方客户端
1.多谢提供日志很清晰,是我判断的问题,已经修复了
c5354c6
2.外挂字幕文件没走直链的,还是原始 emby 自己读取本地目录获取的,尝试看下直接到挂载后的路径上手动读取文件呢?或者直接 emby 详情页下边外挂字幕上右键,看下 emby 自己能不能读取到
2024/06/05 20:14:01 [warn] 7746#7746: *657 js: === redirect2Pan: /emby/videos/255081/stream.undefined, the NJS VM is destroyed ===
153.99.231.177 - - [05/Jun/2024:20:14:01 +0000] "GET /emby/videos/255081/stream.undefined?UserId=3b9d2c6249ab47a598064c12131e5241&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=120000000&DirectPlayProtocols=File,Http,Rtp,Rtmp,Rtsp,Ftp&X-Emby-Client=Emby%20Theater&X-Emby-Device-Name=Tsukimu&X-Emby-Device-Id=Tsukimu&X-Emby-Client-Version=3.0.20-3.0&X-Emby-Token=71a791f370b642799d9cfeaf8917b713&reqformat=json&MediaSourceId=5454df166ee34a6688ef9a9826921c44&PlaySessionId=c15d23fad3aa47dab89e60845b994c77&Static=true HTTP/1.1" 302 138 "-" "libmpv" "-"
2024/06/05 20:14:01 [warn] 7746#7746: *658 js: redirect2Pan, UA: libmpv
2024/06/05 20:14:01 [warn] 7746#7746: *658 js: hit cache routeL1Dict: http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8
2024/06/05 20:14:01 [warn] 7746#7746: *658 js: redirect to: http://[2409:8087:1a01:df::7005]:80/ottrrs.hl.chinamobile.com/PLTV/88888888/224/3221226559/index.m3u8
2024/06/05 20:14:01 [warn] 7746#7746: *658 js: === redirect2Pan: /emby/videos/255081/stream.undefined, the NJS VM is destroyed ===
更新代码后,直链播放成功,感谢。
新问题:ios端fileball无法通过反代端口访问资源
新问题:ios端fileball无法通过反代端口访问资源
所有都不行吗?还是只有 IPv6 的直播不行?
fileball 前段时间朋友协助简单测试过了,普通的媒体资源貌似是可以正常直链的