本帖最后由 10467106 于 2019-10-14 16:42 编辑
先感谢 https://www.right.com.cn/forum/thread-556517-1-1.html 楼主 @ccbcfan 及各楼大神们的研究。
感谢 @supzhang 大佬在 https://www.right.com.cn/forum/thread-396149-1-1.html 帖子中提供的 EPG。
IPTV 配置可直接参考 @ccbcfan 楼主的帖子,rtsp 需注意使用 pipe 及 ffmpeg 转发,tvhead 无法直接处理。
参考 60L、61L、68L、79L 内容及 https://freetoairamerica.wordpress.com/2014/12/03/some-hints-for-getting-free-to-air-satellite-channels-into-the-electronic-program-guide-in-kodi-or-xbmc-or-another-frontend/ ,得知:
1、xmltv EPG 输出到 Tvheadend 有两种方式,外部 EPG 抓取器(xmltv.sock)和内部 EPG 抓取器(tv_grab_file);
2、socket 方式是更推荐的方法。
因此决定采用 socket 方式进行 EPG 数据传输,数据更新使用 crontab 进行。
根据 blog内容,进程间 socket 通信可以使用 socat、nc 或 curl。
我的使用环境为黑群晖 DSM 6.2.2,自带 curl,经测试发现 curl 并不能完成数据发送,因此使用 opkg 安装 entware-ng 中的 socat 或 ncat(netcat 无socket 通信支持)。
从 Tvheadend 中找到 Configuration → Channel/EPG → EPG Grab Modules,取消勾选所有 Over-the-air 系列的 Enabled,并勾选 External: XMLTV 的 Enabled,记录 socket 文件的路径,SSH 到群晖,sudo -i 进入 root 权限,给 socket 文件及相应上级目录 777/755 权限。
参考 socat 帮助信息,EPG 更新脚本 epg.sh 如下- #!/bin/sh
- . /opt/etc/profile
- wget -O /volume1/iptv/Tvhead/epg.xmltv http://epg.51zmt.top:8000/e.xml
- /opt/bin/socat open:/volume1/iptv/Tvhead/epg.xmltv UNIX-CONNECT:/volume1/@appstore/tvheadend/var/epggrab/xmltv.sock
复制代码 脚本给执行权限,群晖在控制面板→计划任务中设置计划任务,每天运行脚本,其他 Linux 设备设置 crontab,即可完成 EPG 自动更新。
群晖需注意,eog.sh 中, socat 必须为完整路径,否则会报错。
发帖注意事项
请勿胡乱发帖:https://www.right.com.cn/forum/thread-8307840-1-1.html
账户手机验证:https://www.right.com.cn/forum/home.php?mod=spacecp&ac=plugin&id=jzsjiale_sms:home
|