话不多说,直接上代码
from moviepy.editor import VideoFileClip, vfx
import os
INPUT_VIDEO = "你的视频的路径"
OUTPUT_VIDEO = "output_speed.mp4"
SPEED_FACTOR = 4.0
if not os.path.exists(INPUT_VIDEO):
print(f"错误:输入视频文件 '{INPUT_VIDEO}' 不存在!")
exit(1)
print(f"开始处理: 将 {INPUT_VIDEO} 加速 {SPEED_FACTOR}倍")
try:
clip = VideoFileClip(INPUT_VIDEO)
print(f"原始视频信息:")
print(f" 时长: {clip.duration:.2f}秒")
print(f" 分辨率: {clip.size[0]}x{clip.size[1]}")
print(f" 帧率: {clip.fps:.2f} FPS")
accelerated_clip = clip.fx(vfx.speedx, SPEED_FACTOR)
print(f"加速后视频信息:")
print(f" 时长: {accelerated_clip.duration:.2f}秒")
print(f" 目标帧率: {clip.fps * SPEED_FACTOR:.2f} FPS (推荐)")
export_params = {
"codec": "libx264",
"audio_codec": "aac",
"fps": clip.fps,
"bitrate": "4000k",
"threads": 4,
"preset": "medium",
}
print("正在导出加速后的视频,请稍候...")
accelerated_clip.write_videofile(OUTPUT_VIDEO, **export_params)
print(f"处理完成!输出视频已保存到: {OUTPUT_VIDEO}")
print(f"加速前时长: {clip.duration:.2f}秒")
print(f"加速后时长: {accelerated_clip.duration:.2f}秒")
except Exception as e:
print(f"处理过程中出错: {str(e)}")
finally:
if 'clip' in locals():
clip.close()
if 'accelerated_clip' in locals():
accelerated_clip.close()