python_视频切分
方法一:使用MoviePy,速度非常慢,但是视频不会卡顿或者画音不同步,可以选择
# 将时间格式 "00:03:51,410" 转换为秒
# 格式说明:时:分:秒,毫秒 → 转换为总秒数
def time_to_seconds(time_str):time_str = time_str.replace(',', '.') # 将逗号改为点,统一格式h, m, s = map(float, time_str.split(':'))return h * 3600 + m * 60 + s#使用moviepy切分视频
from moviepy.editor import VideoFileClip
def cut_video(input_path, output_path, start_str, end_str):start_time=time_to_seconds(start_str)end_time=time_to_seconds(end_str)with VideoFileClip(input_path) as video:# 裁剪指定时间段的视频cut_video = video.subclip(start_time, end_time)# 保存裁剪后的视频(保持原格式)cut_video.write_videofile(output_path, codec="libx264", audio_codec="aac")
方法二:使用FFmpeg,速度飞快,但是会卡顿,或者不同步,不推荐
import osdef split_video_ffmpeg(video_path, start_time, duration, output_path):"""使用FFmpeg分割视频:param video_path: 输入视频路径:param start_time: 开始时间,格式 '00:01:20':param duration: 持续时间,格式 '00:02:00':param output_path: 输出视频路径"""# 使用-c copy复制流,避免重新编码,速度飞快command = f'ffmpeg -ss {start_time} -i "{video_path}" -t {duration} -c copy "{output_path}"'os.system(command)print(f"片段已保存至: {output_path}")input_video = r'D:\Desktop\10月13日.mp4' # 输入视频文件
start_time = '00:01:20'
duration = '00:02:00'
output_video = r'D:\Desktop\10月13日_片段.mp4'# 使用示例:从第1分20秒开始,截取2分钟的视频
split_video_ffmpeg(input_video, start_time, duration, output_video)