python cut_merge video, convert video2gif, cut gif

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

相关推荐
爱学习的小可爱卢7 小时前
JavaEE进阶——SpringBoot日志从入门到精通
java·spring boot·后端
Pyeako7 小时前
机器学习--逻辑回归
人工智能·python·机器学习·逻辑回归
利刃大大7 小时前
【JavaSE】十九、JVM运行流程 && 类加载Class Loading
java·开发语言·jvm
testresultstomorrow7 小时前
GB26875消防物联网协议Java实现详解
java·物联网
巴拉巴拉~~7 小时前
Flutter 通用列表刷新加载组件 CommonRefreshList:下拉刷新 + 上拉加载 + 状态适配
前端·javascript·flutter
heartbeat..7 小时前
Java Map 详解:原理、实现与使用场景
java·map·集合
梨子同志7 小时前
Express.js 基础
前端
中年程序员一枚7 小时前
Python防止重复资源的链接mysql方法
开发语言·python·mysql
天宁7 小时前
pywebview窗口移动解决方案
python