python也能玩视频剪辑!moviepy操作记录总结
前几篇文章咱们介绍了一下图片的处理方式,今天咱们说说视频的处理。python能够支持视频的处理么?当然是肯定的,人生苦读,我用python。万物皆可python。
moviepy库安装
今天咱们需要使用的第三方是moviepy,moviepy是用于视频编辑的Python模块,可用于基本操作(例如剪切,串联,标题插入),视频合成(也称为非线性编辑),视频处理或创建高级效果。它可以读取和写入最常见的视频格式,包括GIF。
第一步:安装moviepy
安装的话首先需要使用pip命令进行安装
pip install moviepy
第二步:安装文本依赖库ImageMagick
安装完成后,我们需要安装依赖库,仅当我们要编写文本时,才严格要求ImageMagick。它也可以用作GIF的后端,但是可以在没有ImageMagick的情况下使用MoviePy进行GIF。我们将下载的exe文件双击运行即可。
第三步:配置路径
安装后,MoviePy将自动检测ImageMagick,但Windows除外!。Windows用户在手动安装MoviePy之前,进入moviepy/config_defaults.py文件并提供名为Magick的ImageMagick二进制文件的路径。它应该看起来像这样
这样我们的moviepy就算是完成安装好了。
使用方法
视频读取
VideoFileClip是从视频文件(支持大多数格式)或GIF文件读取的剪辑对象。可以按照以下方式加载视频:
myclip = VideoFileClip("菜鸟小白.wmv")
视频剪辑
可以通过subclip函数将视频的某几秒视频的剪出来
myclip2 = myclip.subclip(2,5)#将视频中2-5秒的内容剪切出来
将视频进行合并
列表中可以包含多个视频剪辑对象
final_clip = concatenate_videoclips([myclip2,myclip3],method=‘compose’) #视频合并
需要注意的是:当视频列表中存在不同编码方式的视频对象时,
method=‘compose’是必要的,否则,如果输入编码方式不同的视频会报错。
对视频的播放区域进行剪辑
final_clip.crop(x_center=x_center, y_center=y_center, width=width, height=height)
改变视频的分辨率
final_clip.resize(newsize=(width, height))
将图片列表变为视频
其中images_list可以是图像名称列表,也可以是文件夹名称。提供文件夹名称或文件名称列表时,可以选择load_images=True指定所有图像都应加载到RAM中。同时所有图片都需要为同一个大小的图片
image_clip = ImageSequenceClip(['1.jpg','2.jpg','3.jpg'], fps=1)
将两个视频同时放在一个画面播放
CompositeVideoClip([myclip2.set_pos("left","center"),myclip3.set_pos("right","center")], size=(myclip2.w+myclip3.w, myclip2.h))
另外还支持渐进切换,下面示例说明myclip2对象在第5秒中切入,myclip3对象在第10秒中切入。
CompositeVideoClip([myclip2.set_start(5),myclip3.set_start(10)])
将多段视频以列表方式播放
final_clip = clips_array([[myclip2,myclip3],[myclip3,myclip2]])
python也能玩视频剪辑!moviepy操作记录总结的更多相关文章
- 我用Python远程探查室友的网页浏览记录,他不愧是成年人!
过程: 利用Python制作远程查看别人电脑的操作记录,与其它教程类似,都是通过邮件返回. 利用程序得到目标电脑浏览器当中的访问记录,生产一个文本并发送到你自己的邮箱,当然这个整个过程除了你把pyth ...
- 我用python远程探查女友每天的网页访问记录,她不愧是成年人!
利用Python制作远程查看别人电脑的操作记录,与其它教程类似,都是通过邮件返回. 利用程序得到目标电脑浏览器当中的访问记录,生产一个文本并发送到你自己的邮箱,当然这个整个过程除了你把python程序 ...
- moviepy音视频剪辑:AudioClip帧处理时报TypeError: only size-1 arrays can be converted to Python scalar错
☞ ░ 前往老猿Python博文目录 ░ 一.环境 操作系统:win7 64位 moviepy:1.0.3 numpy:1.19.0 Python:3.7.2 二.应用代码及报错信息 程序代码 if ...
- Python+moviepy音视频剪辑:视频帧数据的本质、Clip的fl方法进行变换处理的原理以及滚屏案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- Python MoviePy中文教程导览及可执行音视频剪辑工具下载
☞ ░ 前往老猿Python博文目录 ░ <Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载>是老猿两个关于moviepy的专栏<PyQt+moviepy ...
- 在Python中使用moviepy进行音视频剪辑混音合成时输出文件无声音问题
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在使用moviepy进行音视频剪辑时发现输出成功但 ...
- 在Python中使用moviepy进行视频剪辑时输出文件报错 ‘NoneType‘ object has no attribute ‘stdout‘问题
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 movipy输出文件时报错 'NoneType' ...
- 视频剪辑什么鬼?Python 带你高效创作短视频
阅读文本大概需要 10 分钟. 近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节:在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等. ...
- Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载
☞ ░ 前往老猿Python博文目录 ░ 一.简介 MoviePy是一个用于视频编辑的Python模块,可用于进行视频的基本操作(如剪切.拼接.标题插入).视频合成(也称非线性编辑).视频处理或创建高 ...
随机推荐
- 在Unix系统中执行可执行文件
这篇文章是我在一个叫做Charlotte数据挖掘的公众号上看到的文章,文首提到转载自"朱小厮的博客",当我今天执行一个自己编译的可执行文件后的运行阶段想到了这篇文章,直接一次成功. ...
- 机器学习——打开集成方法的大门,手把手带你实现AdaBoost模型
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第25篇文章,我们一起来聊聊AdaBoost. 我们目前为止已经学过了好几个模型,光决策树的生成算法就有三种.但是我们每 ...
- [ APUE ] 第三章 文件系统
1. 文件描述符 打开或创建一个文件时,内核向进程返回一个文件描述符,当读.写一个文件时,用open()或creat()返回的文件描述符标识该文件,将其作为参数传递给write.read. stdin ...
- python之单元测试及unittest框架的使用
例题取用登录模块:代码如下 def login_check(username,password): ''' 登录校验的函数 :param username:账号 :param password: 密码 ...
- SpringBoot--防止重复提交(锁机制---本地锁、分布式锁)
防止重复提交,主要是使用锁的形式来处理,如果是单机部署,可以使用本地缓存锁(Guava)即可,如果是分布式部署,则需要使用分布式锁(可以使用zk分布式锁或者redis分布式锁),本文的分布式锁以red ...
- node 模块正确暴露方法
一个node模块,为了能够服用,就需要将其暴露,那么如何正确写呢?(参考:https://developer.mozilla.org/zh-CN/docs/Learn/Server-side/Expr ...
- python基础知识练习3
1.如何实现 "1,2,3" 变成 ['1','2','3'] ? 如何实现['1','2','3']变成[1,2,3] ?(代码题) # 第一个问题 str1 = "1 ...
- 小熊派4G开发板初体验
开发板硬件资源介绍 前阵子小熊派发布了一款超高性价比的4G开发板(19.8元包邮),但是板子仅限量1000套.小熊派官方给我送了一块,我们一起来学习学习: 板子做得小巧精致,控制核心用的是移远的EC1 ...
- 面向对象之继承以及抽象(Java实现)
回顾封装 关于面向对象三大特性,我们可以很自信的回答:封装.继承.多态 之前学习的封装,可以很直观的理解为了保护数据,我们在idea中可以用alt+insert进行一个选择 constructer构造 ...
- Apache Hudi重磅特性解读之全局索引
1. 摘要 Hudi表允许多种类型操作,包括非常常用的upsert,当然为支持upsert,Hudi依赖索引机制来定位记录在哪些文件中. 当前,Hudi支持分区和非分区的数据集.分区数据集是将一组文件 ...