TS文件合并工具
这个工具是需要结合上篇文章中的工具进行使用的,这个也很简单,就是给文件排序然后再合并起来。
代码如下:
# ts文件合并系统
import os,re,time
print('*.* TS文件合并程序V1.2 *.*\n','\n')
save_addr = os.getcwd()
all_ts_file = []
while True:
dir_name = input('请输入文件夹地址(直接把文件夹拖进来):')
if ':' in dir_name:
film_name = dir_name.strip().split('\\')[-1]
file_list = os.listdir(dir_name)
print(film_name)
print(file_list)
if 'key.key'in file_list or f'{film_name}ts列表.txt'in file_list:
break
else:
print('\n请输入正确的文件夹地址')
else:
print('\n请输入正确的文件夹地址')
if 'key.key' in file_list:
with open(dir_name+'\\'+film_name+'.m3u8','r')as f1,open(dir_name+'\\'+film_name+'chan.m3u8','w')as f2:
m3u8 = f1.readlines()
for i in range(len(m3u8)):
if '.key'in m3u8[i]:
chan = r'URI="(.*?)"'
new_dir_name = dir_name.replace('\\','/')+'/'
new_chan = f'URI="{new_dir_name}key.key"'
new = re.sub(chan,new_chan,m3u8[i])
f2.write(new)
elif '.ts' in m3u8[i]:
a = m3u8[i].split('/')[-1].replace('\n','')
new_ts = dir_name.replace('\\','/')+'/'+a
new1 = re.sub(r'(.*?)\.ts',new_ts,m3u8[i])
f2.write(new1)
else:
f2.write(m3u8[i])
print('m3u8文件修改完毕\n十秒后进行ts文件拼接')
time.sleep(10)
new_m3u8 = dir_name+'\\'+film_name+'chan.m3u8'
print(new_m3u8)
os.system(f'ffmpeg -allowed_extensions ALL -i {new_m3u8} -c copy {film_name}.ts')
print(f'合并完成,文件保存在 {save_addr} 下')
os.system('pause')
os.system(f'start {save_addr}')
else:
for i in file_list:
if '.txt'in i:
ts_file_name = i
elif '.ts'in i:
all_ts_file.append(i)
else:
continue
ts_file_addr = dir_name+'\\'+ts_file_name
file = open(ts_file_addr,'r')
ts_all = file.read()
file.close()
ts_list = ts_all.strip().split('\n')
print('开始重命名并排序')
for ts_num in range(len(ts_list)):
for a in all_ts_file:
if a.replace('.ts','') == ts_list[ts_num]:
if 0<=ts_num<10:
os.rename(dir_name+'\\'+a,dir_name+'\\'+f'{film_name}0000{ts_num}.ts')
elif 10<=ts_num<100:
os.rename(dir_name+'\\'+a,dir_name+'\\'+f'{film_name}000{ts_num}.ts')
elif 100<=ts_num<1000:
os.rename(dir_name+'\\'+a,dir_name+'\\'+f'{film_name}00{ts_num}.ts')
elif 1000<=ts_num<10000:
os.rename(dir_name+'\\'+a,dir_name+'\\'+f'{film_name}0{ts_num}.ts')
else:
os.rename(dir_name+'\\'+a,dir_name+'\\'+f'{film_name+ts_num}.ts')
print('10秒之后开始合并文件')
time.sleep(10)
copy_ts = dir_name+'\\'+'*.ts'+f' {film_name}.ts'
os.system(f'copy /b {copy_ts}')
print(f'合并完成,文件保存在 {save_addr} 下')
os.system('pause')
os.system(f'start {save_addr}')
这个也可以用pyinstaller -F 文件名.py 来打包。
结合上一篇的工具使用!
差点忘了说了,网页会带KEY文件,这个时候就需要安装FFmpeg工具了,不然这个小工具就没法用啦。
点这里下载FFmpeg工具
下载下来后还要经过配置,配置的方法,网上有很多,大家自己搜一下哈。