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")
 

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐