视频文件合并(可用于合并ts文件Slow speed)

直接上代码

from moviepy.editor import VideoFileClip
import os
from moviepy.video.compositing.concatenate import concatenate_videoclips


# 使用前修改名称,1.MP4 2.MP3 3.MP4.....1.ts 2.ts 3.ts....

# 文件夹路径
folder_path = 'E:/Videos/新建文件夹/'

# 获取文件夹中的文件列表
file_list = os.listdir(folder_path)

# 统计文件数量
l1 = len(file_list)

print('文件数', l1)

x = 0
y = 1
# 所有文件路径
input_files = []

u = 1000000000  # 同时合并100个,占用内存超过20G,越多ts占用内存非常多  u=?? 自行修改
for e in range(l1):
    if x + u <= l1:  # 留出部分,防止下面添加不存在的文件路径  x
        for i in range(u):  # 设置夸张数字启用2个ts同时合并
            input_files.append(f'E:\Videos\新建文件夹\{x}.ts')  # 定义输入的TS视频文件路径列表 .ts按文件名修改
            x += y
        print(input_files)
    else:  # 剩下的这里一个一个合并进去
        input_files.append(f'E:\Videos\新建文件夹\{x}.ts')   # 定义输入的TS视频文件路径列表 .ts按文件名修改
        x += y
        print(input_files)
    if len(input_files) > 1:
        # 创建VideoFileClip对象来读取每个TS视频文件
        clips = [VideoFileClip(file) for file in input_files]

        # 将所有视频片段连接起来
        final_clip = concatenate_videoclips([clip for clip in clips])

        # 设置输出文件名及格式(如果需要)
        output_filename = '少女斗恶龙.ts'
        # 导出为MP4格式
        final_clip.write_videofile(output_filename, codec='libx264')
        list.clear(input_files)  # 清空列表,下面添加一个路径元素,清理掉已经合并过的元素
        input_files.append(f'E:\pyide\{output_filename}')  # 添加已合并的MP4文件,和剩下的合并,防止重复合并拉低速度
    if x == l1:
        break
print('合并结束')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值