1、版本说明
-
moviepy中文手册
中文使用手册 -
常用版本
– MoviePy 1.0.3
– MoviePy 2.0.0
由版本产生的问题:ModuleNotFoundError: No module named ‘moviepy.editor
原因:新老版本的项目构架不同
解决:
- 卸载:
pip uninstall moviepy
- 安装指定版本:
pip install moviepy==1.0.3
2、安装
- 环境准备:
-
- Python == 3.6 或更高版本
-
- Windows系统下需要前置:FFMpeg
python --version
- 安装指定版本
pip install moviepy==1.0.3
- 导入
from moviepy.editor import *
3、使用
详细原理及参数应用请参考大佬链接: moviepy基本参数用法大全
- 基本用法
from moviepy.editor import *
# 读取文件
clip1 = VideoFileClip("video_file_1.mp4")
clip2 = VideoFileClip("video_file_2.mp4")
# 按需剪辑
subclip1 = clip1.subclip(10, 20)
subclip2 = clip2.subclip(30, 40)
# 合并视频片段
final_clip = concatenate_videoclips([subclip1, subclip2])
# 调整视频尺寸
# 强制调整视频的帧宽、帧长
final_clip = final_clip.resize((1280, 720))
# 强制设置视频的帧速率
# VideoFileClip在moviepy中
clip = VideoFileClip(file.name).set_fps(30))
# 音频轨道设置
final_clip = final_clip.set_audio(subclip1.audio)
# 保存视频文件
final_clip.write_videofile("output.mp4")
- 视频速率调整
from moviepy.editor import *
def slow_down_video(input_path, output_path, speed_factor=0.5):
"""
减速视频——此方法适用于音频、视频同减速
参数:
input_path: 输入视频路径
output_path: 输出视频路径
speed_factor: 减速倍数 (例如 0.5 表示半速)
"""
# 加载视频
video = VideoFileClip(input_path)
# 应用速度调整
final_video = video.fx(video.speedx, speed_factor)
# 保存结果
# 保存的视频格式,编码格式:libx264;音频编码:aac
final_video.write_videofile(output_path, codec='libx264', audio_codec='aac')
# 关闭视频对象
video.close()
final_video.close()
# 使用示例
slow_down_video("input.mp4", "output_slow.mp4", speed_factor=0.5)
- 获取视频时长,音频时长
# 获取视频时长
def get_video_duration(video_path):
"""获取视频时长(秒)"""
try:
with VideoFileClip(video_path) as video:
return video.duration
except Exception as e:
print(f"获取视频时长出错: {e}")
return None
# 获取音频时长
def get_audio_duration(audio_path):
"""获取音频时长(秒)"""
try:
audio = AudioSegment.from_file(audio_path)
return len(audio) / 1000 # 转换为秒
except Exception as e:
print(f"获取音频时长出错: {e}")
return None
后续再更…