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

相关推荐
「QT(C++)开发工程师」1 小时前
C++ 观察者模式
java·c++·观察者模式
2301_765703141 小时前
Python数据库操作:SQLAlchemy ORM指南
jvm·数据库·python
Stuomasi_xiaoxin1 小时前
Windows 安装 OpenCode 完全指南:从 npm 踩坑到 Chocolatey 完美部署
python·ai编程·opencode
可问春风_ren1 小时前
Vue3 入门详解:从基础到实战
开发语言·前端·javascript·vue.js·前端框架·ecmascript·edge浏览器
2301_790300961 小时前
深入理解Python的if __name__ == ‘__main__‘
jvm·数据库·python
我的xiaodoujiao1 小时前
使用 Python 语言 从 0 到 1 搭建完整 Web UI自动化测试学习系列 45--生成项目需要的requirements.txt依赖文件
python·学习·测试工具·pytest
一起养小猫1 小时前
Flutter for OpenHarmony 实战:从零开发一款五子棋游戏
android·前端·javascript·flutter·游戏·harmonyos
helloworldandy1 小时前
趣味项目与综合实战
jvm·数据库·python
ctyshr1 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
晚霞的不甘1 小时前
Flutter for OpenHarmony全面升级「今日运势」 应用的视觉与交互革新
前端·学习·flutter·前端框架·交互