2019-12-12

MoviePy-视频编辑库

文档:https://pypi.org/project/moviepy/

Gihub:https://github.com/Zulko/moviepy

工作流

0安装MoviePy

from moviepy.editor import *

1添加文件

打开一个视频文件,在t = 50s和t = 60s之间选择子剪辑,在屏幕中心添加一个标题,并将结果写入一个新文件:


video=VideoFileClip("myHolidays.mp4").subclip(50,60)

txt_clip=(TextClip("My Holidays 2013",fontsize=70,color='white')

                      .set_position('center')

                      .set_duration(10))

result=CompositeVideoClip([video,txt_clip])

videoresult.write_videofile("myHolidays_edited.webm",fps=25)


2.导入

# 视频导入处理

frommoviepy.editorimport*clip = (VideoFileClip("myvideo.avi")

.fx( vfx.resize, width=460)# resize (keep aspect ratio)

.fx( vfx.speedx, 2)# double the speed

.fx( vfx.colorx, 0.5))# darken the picture

3.字

#文字嵌入

# Generate a text clip. You can customize the font, color, etc.

txt_clip = TextClip("My Holidays 2013",fontsize=70,color='white')

# Say that you want it to appear 10s at the center of the screen

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

# Overlay the text clip on the first video clip

video = CompositeVideoClip([clip, txt_clip])

#字幕

>>>frommoviepy.video.tools.subtitlesimport SubtitlesClip

>>>frommoviepy.video.io.VideoFileClipimport VideoFileClip

>>> generator =lambdatxt: TextClip(txt, font='Georgia-Regular',

fontsize=24, color='white')

>>> sub = SubtitlesClip("subtitles.srt", generator)

>>> myvideo = VideoFileClip("myvideo.avi")

>>> final = CompositeVideoClip([clip, subtitles])

>>> final.to_videofile("final.mp4", fps=myvideo.fps)

4.剪辑

#登陆视频clip剪辑方法总结

# VIDEO CLIPSclip = VideoClip(make_frame, duration=4)# for custom animations (see below)

clip = VideoFileClip("my_video_file.mp4")# or .avi, .webm, .gif ...

clip = ImageSequenceClip(['image_file1.jpeg', ...], fps=24)

clip = ImageClip("my_picture.png")# or .jpeg, .tiff, ...

clip = TextClip("Hello !", font="Amiri-Bold", fontsize=70, color="black")

clip = ColorClip(size=(460,380), color=[R,G,B])

5过渡

#淡入淡出

video = CompositeVideoClip([clip1,# starts at t=0

clip2.set_start(5).crossfadein(1),

clip3.set_start(9).crossfadein(1.5)])

6音频

#多加音轨

videoclip2 = videoclip.set_audio(my_audioclip)

8导出

你可能感兴趣的:(2019-12-12)