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

相关推荐
vortex52 小时前
从Conda到UV:Python项目依赖管理的现代演进
python·conda·uv
林森lsjs2 小时前
队列 FIFO 原理 & 手撕两种队列实现(链表 + 循环数组)—数据结构陆
java·开发语言·数据结构·队列
何以解忧,唯有..3 小时前
Python time 模块详解:时间处理与日期操作指南
开发语言·python
梅雅达编程笔记3 小时前
Day 18 · 综合实战 B:AI 客服 Agent(专栏收官)
python·智能客服·ai agent·意图识别·ai客服·大模型应用·ai办公自动化
lisin-lee-cooper3 小时前
简单聊聊 OpenFeign 框架源码
java·微服务
测试老哥3 小时前
Pytest自动化测试框架tep环境变量、fixtures、用例三者之间的关系
自动化测试·软件测试·python·测试工具·测试用例·pytest·职场发展
Buke..3 小时前
【APP 逆向】哔哩哔哩 sign 参数逆向(下):OLLVM 混淆还原 sign 算法
java·javascript·爬虫·python·算法
JacksonMx3 小时前
Java CompletableFuture 异步编程实战:从入门到架构师避坑指南
linux·数据库·python
半生过往4 小时前
前端学 Java 课程笔记
java·前端·笔记
W_326004 小时前
Python-OpenCV HSV颜色空间与inRange颜色分割:按颜色提取目标物体
图像处理·人工智能·python·opencv·机器学习