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

相关推荐
折哥的程序人生 · 物流技术专研2 小时前
第4篇:Lambda 简化策略模式(Java 8+)
java·设计模式·策略模式·函数式编程·lambda·代码简化·扩充系列
researcher-Jiang2 小时前
高性能计算之OpenMP——超算习堂学习1
android·java·学习
夜雪一千2 小时前
Python enumerate() 函数完整详解:遍历同时获取索引,告别手动计数
服务器·windows·python
能有时光3 小时前
PyTorch KernelAgent 源码解读 ---(4)--- ExtractorAgent
人工智能·pytorch·python
随风一样自由3 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
_Jimmy_3 小时前
Python 协程库如何使用以及有哪些使用场景
python
IMPYLH4 小时前
HTML 的 <data> 元素
前端·html
aqi004 小时前
15天学会AI应用开发(十七)使用LangGraph实现会话记忆功能
人工智能·python·大模型·ai编程·ai应用
西门吹-禅4 小时前
java springboot N+1问题
java·开发语言·spring boot
YHHLAI4 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试