from moviepy.editor import VideoFileClip
def compress_video(input_path, output_path, target_size_mb=10):
"""
使用 moviepy 压缩视频文件到目标大小。
:param input_path: 输入视频路径
:param output_path: 输出视频路径
:param target_size_mb: 目标文件大小(MB)
"""
clip = VideoFileClip(input_path)
duration = clip.duration
target_bitrate = (target_size_mb * 8 * 1024) / duration
clip.write_videofile(
output_path,
bitrate=f"{int(target_bitrate)}k",
audio_codec='aac',
threads=4,
preset='medium'
)
print(f"视频已成功压缩并保存为 {output_path}")
if __name__ == "__main__":
input_video = "1.mp4"
output_video = "2.mp4"
compress_video(input_video, output_video, target_size_mb=20)