moviepy视频剪辑总结学习笔记

获取视频切片

clip = VideoFileClip("myHolidays.mp4").subclip(50,60)#切片视频文件,subclip截取时间

txt_clip = TextClip("My Holidays 2013",fontsize=70,color='white')# 生成字幕切片

  • VideoFileClip 视频文件剪辑
  • ImageClip 图片剪辑
  • ColorClip 颜色剪辑
  • TextClip 文字剪辑

设置字幕切片的位置,设置视频前10秒

txt_clip = txt_clip.set_pos('center').set_duration(10)

把视频切片合成

video = CompositeVideoClip([clip, txt_clip],site=(720,460))多个切片合成

final_clip = concatenate_videoclips([clip1,clip2,clip3]),多个切片首尾连接起来合成

final_clip = clips_array([[clip1, clip2],

[clip3, clip4]]) 对剪辑切片进行堆叠合成

clip = ImageSequenceClip(images_list, fps=25)一系列图片组合成剪辑切片,images_list为列表图片地址

输出视频

video.write_videofile("myHolidays_edited.webm")

animation.write_gif("my_animation.gif", fps=24) # usually slower保存成动态图片输出

my_clip.save_frame("frame.png", t=2)保存第2秒时候一帧

clip.get_frame()方法输出一个HxWx3的numpy数组来表示剪辑在时间t时的一帧

预览视频,需安装pygame

my_clip.show() # shows the first frame of the clip展示一帧

my_clip.show(10.5) # shows the frame of the clip at t=10.5s 展示10.5s时候的一帧消失

my_clip.show(10.5, interactive = True)展示10.5s时候的一帧不消失,esc按键取消点击可获取位置和颜色

my_clip.preview() # 预览一直显示

my_clip.preview(fps=25) #帧率25设置预览一直显示

my_clip.preview(fps=15, audio=False) # don't generate/play the audio.

my_audio_clip.preview(fps=22000) 一直显示esc按键取消,点击可获取位置和颜色

实时预览,需要在Jupyter Notebook中运行

my_video_clip.ipython_display()

my_video_clip.ipython_display(t=15) 只预览15s的快照

ipython_display(my_clip, width=400) 预览设置长度

ipython_display(my_clip, autoplay=1, loop=1)一直循环预览

切片控制

clip = clip.volumex(0.8)#设置切片声音0.8倍

.subclip(50,60)切片截取时间段

clip.resize(width="360")更改切片的长度

.margin(10)增加切片的边框10像素

clip2 = clip1.fx( vfx.mirror_x),左右翻转

clip3 = clip1.fx( vfx.mirror_y),上下翻转

.set_duration(10)设置切片出现的时间段,前10秒

clip1 = clip1.set_start(5)从第5秒开始播放

clip2.set_start(5).crossfadein(1)视频合成时候,两个视频衔接设置一秒淡入

.set_pos('center')设置切片位置,中间

clip2.set_pos((45,150)设置切片的位置,如果clip2,都比clip1小的话

clip2.set_pos(("center","top"))clip2水平居中,位于图片顶部

clip2.set_pos(("left","center"))clip2垂直居中,位于图片左侧

clip2.set_pos((0.4,0.7), relative=True)#clip2是屏幕宽度的40%,高度的70%:

clip2.set_pos(lambda t: ('center', 50+t) )clip2的位置水平居中,向下移动!

音频合成

concat = concatenate_audioclips([aclip1, aclip2, aclip3])

compo = CompositeAudioClip([aclip1.volumex(1.2),

aclip2.set_start(5), # start at t=5s

aclip3.set_start(9)])

提取音频从音频和视频中提取

audioclip = AudioFileClip("some_audiofile.mp3")从音频中获取

audioclip = AudioFileClip("some_video.avi")从视频文件中获取

videoclip = VideoFileClip("some_video.avi")从一个视频切片中获取音频

audioclip = videoclip.audio

从数据和函数中获取音频切片

clip = AudioArrayClip(numpy_array, fps=44100) # from a numerical array

clip = AudioClip(make_frame, duration=3) # uses a function make_frame(t)

导出音频

videoclip2 = videoclip.set_audio(my_audioclip)

音频控制

.audio_fadein(1)音频淡入

.audio_fadeout(1)音频淡出

其他:

自定义动画,感觉不实用

matplotlib

clip = mpy.VideoClip(make_frame, duration=2) # 2 seconds通过函数生成切片

你需要做的只是定义一个make_frame(t)函数,使它返回一个HxWx3的numpy数组(8位整数)来代表时间t时的帧。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值