TS文件合并,这里提供了一点小思路。

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工具
下载下来后还要经过配置,配置的方法,网上有很多,大家自己搜一下哈。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值