今天我们继续用Python玩转视频。
还是用Python的第三方库moviepy。
如果你对此文章感兴趣的话,可以看看之前的几篇文章。
都是和视频、moviepy相关的。
相信你会收获满满。
今天要实现什么效果呢?
我们可以把视频中的某尺寸画面视频导出来吗?
可以的。
这就是今天要实现的效果。
其实呢,如果你看了和猫妹学Python的上一篇公众号推文,相信你肯定能实现这个效果。
转换前的效果:
转换后的效果:
参考代码:
from moviepy.editor import VideoFileClip
video_clip0=VideoFileClip('唐僧.mp4')
new_video=video_clip0.crop(x1=300,y1=300,x2=900,y2=900)
new_video.write_videofile('唐僧_clip.mp4',audio=False)
第1行代码,从Movi块的子模块editor中导入VideoFileClip类。
第2行代码,读取要处理裁剪的视频。
第3行代码,用于裁剪视频画面,保留通过两组坐标指定的矩形区域。
第4代码,保存新制作的视频文件。
重点函数crop,用于裁剪视频画面,保留指定的矩形区域(裁剪框),语法格式为:
crop(x1=None,y1=None,x2=None,y2=None,width=None,height=None,x_center=None,y_center=None)
参数含义:
x1,y1:裁剪框左上角的x坐标和y坐标
x2,y2:裁剪框右下角的x坐标和y坐标
width:指定裁剪框的宽度
height:指定裁剪框的高度
x_center:指定裁剪框中心点的x坐标
y_center:指定裁剪框中线点的y坐标
编写代码时,可以只给出一部分参数值,crop函数可以根据给出的参数值计算出裁剪框的坐标。
下面举几个特殊点的例子:
crop(y1=30):裁剪框左上角的坐标为(0,30),右下角坐标为(帧宽度,帧高度),相当于移除y坐标30像素上方的部分。
crop(x1=10,width=200):裁剪框左上角坐标为(10,0),右下角坐标为(210,帧高度)。
怎么样?
你学会了吗?
如果遇到什么问题,咱们多多交流,共同解决。
猫妹在同名公众号等你,不见不散!
我是猫妹,咱们下次见!
热门跟贴