import os,time ,random, shutil
loop_times = 10
mySortArr = [] path = r"D:\XXX\视频ts文件夹" for file in os.listdir(path): if file.endswith('.ts'): mySortArr.append(file)
maxFileNum = 4 def find_all_index(arr, item): return [i for i, a in enumerate(arr) if a == item] randomListMax = len(mySortArr)*100 def sortA(filelist): tempGroupList = [] groupList = [] tempGroupLIst = [] tempGroupAppendIndex=0 while tempGroupAppendIndex < randomListMax+1: groupList.append(0) tempGroupAppendIndex += 1 i = 0 countNum = 0 for files in filelist: i = i + 1 countNum +=1 tempGroupList.append(files) randomIndex = random.randint(0,randomListMax) hasPlaceholder = find_all_index(groupList,tempGroupLIst) while (len(hasPlaceholder)!=0): randomIndex = random.randint(0,randomListMax)
if countNum >= maxFileNum : countNum = 0 rIndex = 0 for tempItem in tempGroupList: rIndex+=1 groupList[randomIndex+rIndex] = tempItem tempItemR = reversed(tempGroupList) for tempItem in tempItemR: groupList[randomIndex+rIndex+len(tempGroupLIst)] = tempItem rIndex+=1 tempItemR = [] tempGroupList = []
removeGroupList = groupList listRes = [] for groupItemOld in removeGroupList: if(groupItemOld!=0): listRes.append(groupItemOld) return listRes
mySortArr = sortA(mySortArr)
for i in range(1, loop_times + 1): with open(f"{i}.txt", 'w', encoding='utf-8') as f: for content in mySortArr: f.write(f"file '{content}'\n")
os.system('copy /B ?*.txt output.txt') print("合并txt文件成功!")
for i in range(1, loop_times + 1): os.remove(f"{i}.txt") print("i.txt 文件删除成功!")
os.system('ffmpeg -f concat -safe 0 -i output.txt -c copy 合成视频.mp4') print("ffmpeg合并成功!")
print("ok")
os.remove('output.txt') print("output.txt 文件删除成功!")
for filename in os.listdir('.'): if filename.endswith('.ts'): os.remove(filename) print(".ts格式 文件删除成功!")
for foldername in os.listdir('.'): if foldername.startswith('images_'): shutil.rmtree(foldername)
print("images_ 文件删除成功!")
|