准备更新:修正部分酒店源udp的正确解析,增加ffmpeg测分辨率分类输出高清标清节目,增加txt转m3u

准备更新:修正部分酒店源udp的正确解析,增加ffmpeg测分辨率分类输出高清标清节目,增加txt转m3u

cqshushu 医工学习日志 2024-05-17 20:50

本次准备更新内容:修正部分酒店源udp的正确解析,增加ffmpeg测分辨率分类输出高清、标清节目,增加生成txt转m3u格式。

一、修正酒店源json文件中url为udp的正确解析

从前面我们知道酒店源的智能桌面系统关键字为iptv/live/zh_cn.js

如何利用钟馗之眼(zoomeye)手动获取酒店节目源

通过对应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:支持台标显示的播放器调用的台标文件目录。

六、相关说明
相关还在完善中,酒店源基本完成,后续逐步更新组播的,放出后详细说明参数及使用方法

欢迎扫码本公众号,后台发消息给我,我会即时进行回复的哦。

准备更新:修正部分酒店源udp的正确解析,增加ffmpeg测分辨率分类输出高清标清节目,增加txt转m3u

编辑:树树
声明:除原创内容及特别说明之外,推送稿件文字及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部