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

相关推荐
renke33641 分钟前
写给前端的 CANN-torchtitan-npu:昇腾PyTorch Titan适配到底是啥?
前端·人工智能·pytorch·cann
云烟成雨TD2 分钟前
Spring AI Alibaba 1.x 系列【56】SAA Admin 平台功能介绍
java·人工智能·spring
Gauss松鼠会2 分钟前
GaussDB(DWS) 资源监控Topsql
java·网络·数据库·算法·oracle·性能优化·gaussdb
夏日听雨眠2 分钟前
数据结构(快速排序)
java·数据结构·算法
lihaozecq3 分钟前
Agent 开发的 skills 机制设计 - 渐进式披露
前端·agent·ai编程
2401_868534785 分钟前
论快速应用开发方法及应用
大数据·python
字节高级特工5 分钟前
C++11(一) 革新:右值引用与移动语义
java·开发语言·c++·人工智能·后端
郝学胜-神的一滴7 分钟前
系统设计 012:从用户系统出发,吃透缓存、数据库与高并发设计
java·数据库·python·缓存·php·软件构建
安生生申7 分钟前
uni-app 连接 JDY-31 蓝牙串口模块实践
c语言·前端·javascript·stm32·单片机·嵌入式硬件·uni-app
人道领域10 分钟前
【LeetCode刷题日记】654.最大二叉树:递归算法详解
java·算法·leetcode