前几篇文章咱们介绍了一下图片的处理方式,今天咱们说说视频的处理。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操作记录总结的更多相关文章

  1. 我用Python远程探查室友的网页浏览记录,他不愧是成年人!

    过程: 利用Python制作远程查看别人电脑的操作记录,与其它教程类似,都是通过邮件返回. 利用程序得到目标电脑浏览器当中的访问记录,生产一个文本并发送到你自己的邮箱,当然这个整个过程除了你把pyth ...

  2. 我用python远程探查女友每天的网页访问记录,她不愧是成年人!

    利用Python制作远程查看别人电脑的操作记录,与其它教程类似,都是通过邮件返回. 利用程序得到目标电脑浏览器当中的访问记录,生产一个文本并发送到你自己的邮箱,当然这个整个过程除了你把python程序 ...

  3. 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 ...

  4. Python+moviepy音视频剪辑:视频帧数据的本质、Clip的fl方法进行变换处理的原理以及滚屏案例

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...

  5. Python MoviePy中文教程导览及可执行音视频剪辑工具下载

    ☞ ░ 前往老猿Python博文目录 ░ <Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载>是老猿两个关于moviepy的专栏<PyQt+moviepy ...

  6. 在Python中使用moviepy进行音视频剪辑混音合成时输出文件无声音问题

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 在使用moviepy进行音视频剪辑时发现输出成功但 ...

  7. 在Python中使用moviepy进行视频剪辑时输出文件报错 ‘NoneType‘ object has no attribute ‘stdout‘问题

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 movipy输出文件时报错 'NoneType' ...

  8. 视频剪辑什么鬼?Python 带你高效创作短视频

    ​阅读文本大概需要 10 分钟. 近两年,抖音.快手将短视频推到风口浪尖上,要生产出高质量的视频,离不开视频剪辑这一环节:在全民剪片浪潮中,大众使用最多的剪辑软件如:Pr.FCPX.剪印.Vue 等. ...

  9. Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载

    ☞ ░ 前往老猿Python博文目录 ░ 一.简介 MoviePy是一个用于视频编辑的Python模块,可用于进行视频的基本操作(如剪切.拼接.标题插入).视频合成(也称非线性编辑).视频处理或创建高 ...

随机推荐

  1. LaTeX中常用代码段snippets(持续更新)

    1.displaymath 单行数学环境,不带编号. \begin{displaymath} This\ is\ displaymath\ envirment.\ I\ don 't\ have\ a ...

  2. 一时技痒,撸了个动态线程池,源码放Github了

    阐述背景 线程池在日常工作中用的还挺多,当需要异步,批量处理一些任务的时候我们会定义一个线程池来处理. 在使用线程池的过程中有一些问题,下面简单介绍下之前遇到的一些问题. 场景一:实现一些批量处理数据 ...

  3. AIO,BIO,NIO,IO复用,同步,异步,阻塞和非阻塞

    (1)什么是NIO(Non-blocked IO),AIO,BIO (2) 区别 (3)select 与 epoll,poll区别 1.什么是socket?什么是I/O操作? 什么是socket? 实 ...

  4. vulstack红队评估(一)

    一.环境搭建: 1.根据作者公开的靶机信息整理: 虚拟机初始所有统一密码:hongrisec@2019   因为登陆前要修改密码,改为了panda666...   2.虚拟网卡网络配置: ①Win7双 ...

  5. opencv C++图像读取

    int main(){ cv::Mat img=cv::imread("/home/nan/图片/highdeepth/starry.jpg",cv::IMREAD_REDUCED ...

  6. win10使用WSL 2运行Docker Desktop,运行文件从C盘迁移到其他目录

    前言 前几天重装系统,把系统升到了Windows 10 2004,然后在安装Docker Desktop(2.3.0.3版本)时发现跟以前不太一样了.现在Docker Desktop默认使用WLS 2 ...

  7. 物联网SIM卡和SIM卡,真的不是一回事

    [摘要]在物联网解决方案中,设备移动上网也需要使用SIM卡.那么,SIM卡是什么?各种SIM卡有什么区别?物联网SIM卡如何选择?本文将为您答疑解惑. 通信进化史 过去几百年间,通信技术经历了天变地异 ...

  8. msf stagers开发不完全指北(一)

    采用c开发stagers 前言 之前有写过一篇 metasploit payload运行原理浅析(sockedi调用约定是什么),里面有提到以后了解这些东西后可以做的事情,其实包括但不限于自写stag ...

  9. slow SQL

    一.介绍 慢查询日志可用于查找需要很长时间才能执行的查询,因此是优化的候选者.但是,检查长慢的查询日志可能是一项耗时的任务. 二.配置 # 查看: slow_query_log 慢SQL开关 slow ...

  10. day19__第三次作业

    一.break 与 continue 的区别 答:break 是结束全部循环,continue 是结束当前循环,开始进行下一循环 二.函数传递参数时,所用的内存地址一样吗? 答:一样 name = ' ...