前几篇文章咱们介绍了一下图片的处理方式,今天咱们说说视频的处理。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]])

最新文章

  1. Hyper-V初涉:功能的添加与虚拟机的创建
  2. linux退出vi
  3. 华东交通大学2016年ACM“双基”程序设计竞赛 1007
  4. Filezilla Server 配置大全
  5. 实现ImageView中两张图片重叠显示
  6. 使用soapUI代替WSDL2JAVA生成cxf HTTPS 客户端调用代码
  7. Java I/O编程思路
  8. sql server 2005 外围应用配置器
  9. 【STL】关联容器 — hash_set
  10. 关于 Be 主
  11. Android应用开发中三种常见的图片压缩方法
  12. Android逆向学习资料
  13. Linux useradd -M -s
  14. 运营站点-开放robots后,站内google搜索数量第二天10条左右,第5天搜录9920条,可喜可贺
  15. 图解HTTP / HTTPS
  16. 基于双向LSTM和迁移学习的seq2seq核心实体识别
  17. 关于Calculator的第四次作业
  18. Mysql5.6主从复制
  19. C# RDLC报表不出现预览窗体直接输出到打印机
  20. Python程序的性能分析指南(转)

热门文章

  1. Latex 安装 教程
  2. navicat 出现 mysql远程连接问题 Lost connection to MySQL server at ‘reading initial communication packet', system error: 0
  3. Java Service Wrapper 浅谈
  4. skywalking的插件管理agent管理
  5. SSH网上商城二
  6. 前端笔记(关于解决打包时报node-sass错误的问题)
  7. java-IO流(commons-io-2.6)使用教程
  8. vue+iview多条联动,for循环data是函数
  9. 恕我直言你可能真的不会java第7篇:像使用SQL一样排序集合
  10. QUIC/HTTP3 协议简析