前言
对于我看IPTV只能用各种客户端来看的事实(虽然基本没看过),我心里是有点小不爽的,如果我哪一天在外面忽然想看IPTV但是又没带手机,没有带ipad,没带macbook呢?好吧,这种可能性太小,我主要是想搞个网页版的IPTV播放方案,这样任何人都可以通过网页直接看我家里的电信IPTV(估计有法律风险)。所以找了半天,找到了IPTVnator这个跨平台IPTV播放器,因为其有个网页版是通过docker来部署的,所以我想尝试下这个播放器的网页版能否满足我小小的要求。
IPTVnator特性简介:
- M3u 和 M3u8 播放列表支持
- 从文件系统上传播放列表
- 通过 URL 添加远程播放列表
- 播放列表自动更新功能
- 从文件系统打开播放列表
- 搜索频道
- EPG 支持(电视指南)及详细信息
- 电视档案/追看/时移
- 基于组的频道列表
- 将频道保存为收藏夹
- 从所有播放列表汇总的全球最爱
- 支持 HTML video player 视频播放器或基于 Video.js 的播放器
- 国际化,目前支持 7 种语言(en、ru、de、ko、es、zh、fr)
- 为播放列表设置自定义“用户代理”标头
- 重新获取/自动更新播放列表
- 浅色与黑暗的主题
"M3u 和 M3u8 播放列表支持"和"EPG 支持(电视指南)及详细信息"这两点都是我需要的,所以我就开始了下面的科研尝试之旅。
部署
IPTVnator由前端(对外web端)和后端2部分组成。
后端部署:
后端docker run命令如下:
docker run --name iptvnator-backend -d --restart=always \
-p 7333:3000 \
-e CLIENT_URL=http://localhost:4333 \
4gray/iptvnator-backend:latest
关键参数解释:
-p 7333:3000
映射宿主机的7333端口到容器的3000端口
`-e CLIENT_URL=http://localhost:4333
指定前端的地址和端口
注意:这个4333是下面前端配置的宿主机映射端口,需要根据实际环境中配置的宿主机IP和前端映射端口修改,因为这个试验环境是前端后后端是同一个宿主机下的容器,所以可以用localhost来通信。如果是不同的宿主机容器环境,请根据前端的实际参数进行修改
前端部署:
前端docker run命令如下:
docker run --name iptvnator-web -d --restart=always --network=public-net \
-p 4333:80 \
-e BACKEND_URL=http://宿主机IP:7333 \
4gray/iptvnator:latest
关键参数解释:
-p 4333:80
映射宿主机的4333端口到容器的80端口
-e BACKEND_URL=http://宿主机IP:7333
指定后端的地址和端口,注意:这里配置后端所在宿主机的内网IP地址,至于为什么这么指定,我也有点懵,算是尊重官方说明吧。
github上的docker-compose.yml地址如下:https://github.com/4gray/iptvnator/blob/electron/docker/docker-compose.yml
如果打不开github,docker-compose.yml具体内容如下:
version: '3'
services:
backend:
image: 4gray/iptvnator-backend:latest
ports:
- "7333:3000"
environment:
- CLIENT_URL=http://localhost:4333 #this one should match with the address and port in frontend CLIENT_URL env
frontend:
image: 4gray/iptvnator:latest
ports:
- "4333:80"
environment:
- BACKEND_URL=http://192.168.172.67:7333 # this one should match with the address of the backend service
初始配置及使用
修改语言为中文
使用http://宿主机ip:4333访问前端页面,点击右边红框按钮:
选择Settings:
添加播放列表
这里可以选择不同的添加方式添加播放列表:从文件添加、从URL添加以及从文本添加3种方式:
大家根据自己的实际情况选择方式,我在网上搜了一下直播源的m3u8试了一下:
结论
IPTVnator的定位是跨平台IPTV播放器,所以其有mac、win、linux、安卓的客户端,不过对于我而言,本地的播放客户端能用的太多了(VLC、MPV、APTV等等),我真正想要的是基于web且支持频道列表及EPG的网页播放器,这样才能完全摆脱客户端的束缚,所以看上了IPTVnator的网页版。但是实际测试下来,在国内特色的上网环境下,那些来自网络的IPTV直播源的播放效果非常的差强人意(本来直播源就不稳定,更别说可能还需要科学),而最关键的问题,是我原本搭建这个的初衷,是播放成都电信IPTV的m3u文件(前因后果参见:爱快软路由系列 实现电信IPTV全媒体播放),从而让我的全媒体播放解决方案真正完美,但是遗憾的是,系统自带的2个播放器:
HTML5 Video Player和VideoJs Player都无法正常播放爱快使用udpxy代理转换成来的http地址,前端最新的v15.0版本倒是多了MPV Player和VLS两个选项,可以通过指定本地安装这2个播放器的路径来实现播放,但是,这个就没有意义了呀,那我还不如直接用本地播放器来放了。为了验证是否只是docker版无法播放,我还直接安装了mac版的客户端,但是结果还是无法播放,所以就排除了只是docker版的问题。
所以我不得不承认,这次尝试没有达到我真正想要的效果,只能等以后前端升级之后再来尝试了。
IPTVnator提供了体验的地址,大家可以先去尝试一下:
IPTV体验站点地址