1. python cut_merge video
from moviepy.editor import (
VideoFileClip,
AudioFileClip,
concatenate_videoclips,
CompositeAudioClip
)
from moviepy.audio.fx.all import audio_loop
1. 视频裁剪 + 去原音
clips = [
VideoFileClip("1.mp4").subclip(7, 14).without_audio(),
VideoFileClip("2.mp4").subclip(6, 12).without_audio(),
VideoFileClip("3.mp4").subclip(3, 121.162).without_audio(),
VideoFileClip("4.mp4").subclip(5.1, 10.1).without_audio(),
VideoFileClip("5.mp4").subclip(2.120, 54).without_audio(),
VideoFileClip("6.mp4").subclip(6, 11).without_audio(),
VideoFileClip("7.mp4").subclip(5.520, 11.5).without_audio(),
VideoFileClip("8.mp4").subclip(6.040, 12.040).without_audio(),
VideoFileClip("9.mp4").subclip(3.040, 31).without_audio(),
VideoFileClip("10.mp4").subclip(6, 14).without_audio(),
]
2. 合并视频
final_video = concatenate_videoclips(clips)
video_duration = final_video.duration
3. 音频
music = AudioFileClip("happy.mp3")
music_duration = music.duration
0 - 178s
first_part_duration = min(178, music_duration)
music_part1 = music.subclip(0, first_part_duration).set_start(0)
178s - end
remaining_duration = max(0, video_duration - 178)
music_part2 = audio_loop(music, duration=remaining_duration).set_start(178)
4. 组合音频(比 concatenate 更稳)
final_audio = CompositeAudioClip([music_part1, music_part2])
5. 设置音频
final_video = final_video.set_audio(final_audio)
6. 输出(fps 兜底)
final_video.write_videofile(
"output.mp4",
codec="libx264",
audio_codec="aac",
fps=final_video.fps or 30
)
2. convert video2gif
from moviepy.editor import VideoFileClip
读取视频
clip = VideoFileClip("high_density_adaptive_speed.mp4")
截取第 6s - 12s
clip_cut = clip.subclip(2, 8)
#clip_cut = clip_cut.resize(width=1080)
保存为 GIF(10 fps)
clip_cut.write_gif("Robot_stirring.gif", fps=10)
'''
from moviepy.editor import VideoFileClip
读取视频
clip = VideoFileClip("gif.mp4")
转换为 GIF(10 帧/秒)
clip.write_gif("output.gif", fps=10)
'''
3. Cut_gif
from moviepy.editor import VideoFileClip
clip = VideoFileClip("1.gif")
subclip = clip.subclip(30, 35)
subclip.write_gif("output.gif")