准备更新:修正部分酒店源udp的正确解析,增加ffmpeg测分辨率分类输出高清标清节目,增加txt转m3u
本次准备更新内容:修正部分酒店源udp的正确解析,增加ffmpeg测分辨率分类输出高清、标清节目,增加生成txt转m3u格式。
一、修正酒店源json文件中url为udp的正确解析
从前面我们知道酒店源的智能桌面系统关键字为iptv/live/zh_cn.js,
通过对应ip的/iptv/live/1000.json?key=txiptv位置找到节目表:
获取name为节目名称,获取http://{ip}:{port}url 为节目播放链接,即http://{ip}:{port}/tsfile/live/0001_1.m3u8。但是对于有的json文件的url为udp或者rtp,获取的节目播放链接也按此种转换规则,则会生成播放地址为:http://{ip}:{port}/udp://@224.9.2.33:5000的格式
看上去像是组播地址,如果我们改成标准的组播地址,还是不能正常播放,但是我们不难发现,json格式是一样的,每组数据格式都为type(分类编号)、typename(分类名称)、chid(节目id)、srcid(这个不清楚)、num(节目序号)、name(节目名称)、day和epg应该是回看和节目预告、url(播放地址),根据此类管理系统的播放地址格式应该都一样,因此对比前面播放地址,此类url中包含udp正确转换方式应为:
http://{ip}:{port}/tsfile/live/{chid}_{srcid}.m3u8
因此,我们在转换url包含udp的这种节目列表时,按照此种方式转换出来的节目表就可以正常播放了。我们在转换格式时在对应位置加上如下代码即可
if 'udp' in line['url'] or 'rtp' in line['url']:
program_judgment('{},{}'.format(line['name'],'http://{}/tsfile/live/{}_{}.m3u8'.format(info,line['chid'],line['srcid'])))
二、增加运行模式选择设置
#运行模式设置
hotel_search = y
multicast_search = n
hotel_search
:y,运行模式为酒店源获取,将关键字设置为酒店源关键字,搜索ip保存有效ip至hotel-ip.txt,
获取节目列表,并测试有效性。其他值不运行;
multicast_search
:y,运行模式为组播源获取,将关键字设置为组播源关键字,将有效iP保存至multicast-ip.txt
,后续再增加匹配节目表。其他值为不运行;
#生成文件名称参数设置
ip_output_file = ip.txt
output_hotel_ip = hotel-ip.txt
output_multicast_ip = multicast-ip.txt
tvlist_output_file = tvlist.txt
ip_output_file
:获取到的ip保存文件名,也是获取目标节目表的IP列output_hotel_ip
:当设置hotel_search为y时,保存有效IP的文件名;output_multicast_ip
:当设置multicast_search为y时,保存有效IP的文件名;
:获取酒店源的节目列表保存文件名。
tvlist_output_file
三、增加钟馗之眼(zoomeye)的api请求
有粉丝在问zoomeye开关的问题,虽然zoomeye的api需要收费,但是可以预留,有需要的可以直接调用,不需要的可以关闭。
zoomeye_api = F97A828c9b
zoomeye_keywords = iptv/live/zh_cn.js+subdivisions:广西
zoomeye酒店源搜索语法:
iptv/live/zh_cn.js +subdivisions:广西 +city:贵港 +port:8088
ZHGXTV +subdivisions:广西 +city:贵港 +port:8088
以上subdivisions、city和端口为可选项
四、增加节目有效性测试和分辨率归类
分为1080以上HD节目和1080以下SD节目
valid_test = y
quick_test = y
max_threads = 2000
test_file = tvlist.txt
channels_num = 1
hd_tvlist = hd.txt
sd_tvlist = sd.txt
valid_test :y 运行有效性和分辨率测试,其他值不运行;
quick_test :y 运行快速测试筛选,用urllib.request多线程请求url,响应200为有效。其他值不运行,对每一条进行分辨率测试;
max_threads :设置快速测试多线程线程数;
test_file :需测试的节目表名称;
channels_num :测试生成的节目表中同一节目名称的最大数量,如值为1,则表示测试同一节目名称已有1个1080的有效节目的时候,再次出现该节目名称时直接跳过进入下一个节目测试;
hd_tvlist :生成的高清以上节目文件名;
sd_tvlist :生成的标清节目文件名。
如需进行节目有效性和分辨率测试需要调用到ffmpeg,windows系统需安装ffmpeg并配置环境变量,如未安装将会报错:
windows安装ffmpeg并配置环境变量步骤如下:
1、下载ffmpeg,官方下载地址:
https://ffmpeg.org/download.html
选择windows平台的下载。
2、解压到文件夹,如我解压到D盘,重命名为ffmpeg,记住ffmpeg.exe的位置,如我的是D:ffmpegbin
3、进入控制面板,搜索【环境变量】,选择【编辑系统环境变量】
4、选择【高级】、【环境变量】
5、找到系统变量的【Path】,选择【编辑】
6、选择【新建】,将ffmpeg的路径(D:ffmpegbin)粘贴进去后点【确定】即完成ffmpeg的环境变量配置。
五、增加txt转m3u,方便tivimate等播放器调用
txttom3u = y
epg = https://live.fanmingming.com/e.xml
logo_path = https://live.fanmingming.com/tv/
txttom3u:y 运行txt转m3u,其他值不运行;
epg:m3u文件调用的epg 链接;
logo_path:支持台标显示的播放器调用的台标文件目录。
六、相关说明
相关还在完善中,酒店源基本完成,后续逐步更新组播的,放出后详细说明参数及使用方法
欢迎扫码本公众号,后台发消息给我,我会即时进行回复的哦。
声明:除原创内容及特别说明之外,推送稿件文字及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。