Share

将一个长视频按照指定时间分割成小视频

import subprocess
import os

# 视频文件路径
video_path = '05242.mp4'  # 替换为你的视频文件路径
# 输出视频文件夹
output_folder = 'output_videos'
if not os.path.exists(output_folder):
    os.makedirs(output_folder)

# 视频分割的时长(秒)
clip_duration = 9.14
# 计数器
clip_number = 1

# 循环分割视频
while True:
    # 计算当前片段的结束时间
    end_time = clip_number * clip_duration
    # 如果结束时间超过了视频的总时长,就停止循环
    if end_time > round(float(subprocess.check_output(['ffprobe', '-v', '0', '-of', 'csv=p=0', '-select_streams', 'v:0', '-show_entries', 'format=duration', video_path]).strip().decode('ascii'))):
        break

    # 构建ffmpeg命令
    ffmpeg_cmd = f"ffmpeg -i {video_path} -ss {clip_number * clip_duration - clip_duration} -to {end_time} -c copy {output_folder}/output{clip_number:04d}.mp4"
    
    # 执行ffmpeg命令
    subprocess.call(ffmpeg_cmd, shell=True)
    
    # 更新计数器
    clip_number += 1