moviepy入门

1. 简介

由于恶心的工作和没有规划的部门安排,我被排到了算法部门,从事和算法没有半毛钱关系的业务上,也就是。。。搞视频。咋说呢?视频这东西我没有一点基础,还好有前人写好的代码,用的是moviepy和ffmpeg。那接下来就简单说说这两个吧。

1.1 moviepy是什么

moviepy是一个python库,用于音视频编辑。
官方API文档
别人翻译的一个中文文档
有一个别人翻译的中文文档

1.2 ffmpeg是什么

ffmpeg是一个强大的,难用的命令行工具,专门用于编辑处理各种音视频或图像。

1.3 gl-transitions是什么

有的时候,我们想要把视频转到另一个场景的画面,此时如何丝滑的转换到下一个场景呢?难不成像播放PPT那样,卡的一下到下一页?能不能像翻书那样,有个中间的过度阶段?

  • 可以的。

这个过度的阶段,我们称之为“转场”.
那如何实现转场,目前来说我也不知道,总不能不来写吧,找了找,目前有个开源的项目gl-transitions,它实现了一些转场效果。
gl-transitions项目地址
它的使用应该有很多中,有一种是把代码编译到ffmpeg代码中去,也是我现在在使用的方式,其他的方式我也不懂。。。
gl-transitions 【68个转场效果图】
在这里插入图片描述

2 moviepy介绍

本文还是重点讲讲moviepy。关于文档啥的,我在1.1小节已经给出来了。如果你不懂,或者刚入门,那简单!!!看几个例子就好了。因为,环境搭建简单的很,docker啦。有别人已经搞好的镜像,拉下来就可以直接用了。

2.1 moviepy的核心概念

  1. 蒙板/Mask
    如果同时播放两个视频,并且是叠加到一起,那这样的话,在上面的视频肯定会把下面的视频给挡住,结果就是只能看到在上面的视频。那要是可以把上面的视频变得透明一点,这样不就可以看到下面的视频了吗?蒙板,也就是Mask的作用。在moviepy中它是一个矩阵,矩阵中的值是一个0到1的浮点数。0是全透明,1是完全不透明。
  2. 切面/Clip
    Clip是moviepy中最核心的一个概念,对音视频的操作都是对clip的操作。
    在这里插入图片描述
    图片来源 https://blog.csdn.net/as604049322/article/details/134938026

moviepy的依赖库

  • The Python Imaging Library (PIL) or, better, its branch Pillow .
  • Scipy (for tracking, segmenting, etc.), and can be used for resizing video clips if PIL and OpenCV aren’t installed on your computer.
  • Scikit Image may be needed for some advanced image manipulation.
  • OpenCV 2.4.6 or more recent (provides the package cv2) or more recent may be needed for some advanced image manipulation.
  • ffmpeg
  • ImageMagick. ImageMagick is not strictly required, only if you want to write texts.

moviepy是如何工作的,

看原文 https://zulko.github.io/moviepy/getting_started/quick_presentation.html#how-moviepy-works
在这里插入图片描述

moviepy的坐标

和其他的坐标一样,左上是原点
在这里插入图片描述

Clip的两个重要方法:fl、fx傻傻分不清

  • fl: def fl(self, fun, apply_to=None, keep_duration=True)使用fun方法修改当前的帧。
    在这里插入图片描述

  • fx: def fx(self, func, *args, **kwargs)为了链式调用,clip.fx( volumex, 0.5).fx( resize, 0.3).fx( mirrorx )
    在这里插入图片描述

set_start/set_end/set_duration

设置组合视频中Clip的播放开始时间/结束时间/播放时长

Clip的方法不是面向对象的,不会修改原本的clip,因此每次修改都要接受返回值。

  • newclip = clip.subclip(0,-2)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16263.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Zoho Campaigns邮件营销怎么发邮件?

Zoho Campaigns,作为业界领先的邮件营销平台,以其强大的功能、用户友好的界面以及深度的分析能力,为企业提供了一站式的邮件营销解决方案,助力企业高效地触达目标受众,构建并巩固庞大的客户基础。云衔科技为企业提供Zo…

数据结构(四)

数据结构(四) 算法算法的特征算法和程序的区别怎么样评判一个算法的好坏 常见的查找算法线性树状哈希查找构建哈希函数的方法质数求余法解决冲突 算法 一堆指令的有序集合 算法的特征 唯一性:每一句话只有一种解释 有穷性:算法能…

企业活动想找媒体报道宣传怎样联系媒体?

在那遥远的公关江湖里,有一个传说,说的是一位勇士,手持鼠标和键盘,踏上了寻找媒体圣杯的征途。这位勇士,就是我们亲爱的市场部门小李,他的任务是为公司即将举行的一场盛大的企业活动找到媒体的聚光灯。 小李的故事,开始于一张空白的Excel表格,上面列着各大媒体的名称,旁边是一片…

如何让大模型更聪明

目录 如何让大模型更聪明? 🍉算法创新 🍈新型优化算法 🍍案例分析:LAMB优化器 🍈对比学习 🍍应用案例:SimCLR 🍈强化学习 🍍案例分析:Alph…

【30天精通Prometheus:一站式监控实战指南】第4天:node_exporter从入门到实战:安装、配置详解与生产环境搭建指南,超详细

亲爱的读者们👋   欢迎加入【30天精通Prometheus】专栏!📚 在这里,我们将探索Prometheus的强大功能,并将其应用于实际监控中。这个专栏都将为你提供宝贵的实战经验。🚀   Prometheus是云原生和DevOps的…

蓝桥杯-班级活动

题目描述 小明的老师准备组织一次班级活动。班上一共有 ( n ) 名(( n ) 为偶数)同学,老师想把所有的同学进行分组,每两名同学一组。为了公平,老师给每名同学随机分配了一个 ( n ) 以内的正整数作为 id,第 …

C++标准库中string的底层实现方式

对于C中 std::string 的一些基本功能和用法,我们应该都很熟悉。但它底层到底是如何实现的呢? 其实在 std::string 的历史中,出现过几种不同的方式。下面我们来一一揭晓。 我们可以从一个简单的问题来探索,一个 std::string 对象占据的内存空…

RK3568笔记二十五:RetinaFace人脸检测训练部署

若该文为原创文章,转载请注明原文出处。 一、介绍 Retinaface是来自insightFace的又一力作,基于one-stage的人脸检测网络。RetinaFace是在RetinaNet基础上引申出来的人脸检测框架,所以大致结构和RetinaNet非常像。 官方提供两种主干特征提取网…

Python 中别再用 ‘+‘ 拼接字符串了!

当我开始学习 Python 时,使用加号来连接字符串非常直观和容易,就像许多其他编程语言(比如Java)一样。 然而,很快我意识到许多开发者似乎更喜欢使用.join()方法而不是。 在本文中,我将介绍这两种方法之间的…

关于数据库和数据表的基础SQL

目录 一. 数据库的基础SQL 1. 创建数据库 2. 查看当前有哪些数据库 3. 选中数据库 4. 删除数据库 5. 小结 二. 数据表的基础SQL 1. 创建数据表 2. 查看当前数据库中有哪些表 3. 查看指定表的详细情况(查看表的结构) 4. 删除表 5. 小结 一. 数据库的基础SQL 1. 创建…

python内置函数map/filter/reduce详解

在Python中,map(), filter(), 和 reduce() 是内置的高级函数(实际是class),用于处理可迭代对象(如列表、元组等)的元素。这些函数通常与lambda函数一起使用,以简洁地表达常见的操作。下面我将分别解释这三个函数。 1. …

xgboost项目实战-保险赔偿额预测与信用卡评分预测001

目录 算法代码 原理 算法流程 xgb.train中的参数介绍 params min_child_weight gamma 技巧 算法代码 代码获取方式:链接:https://pan.baidu.com/s/1QV7nMC5ds5wSh-M9kuiwew?pwdx48l 提取码:x48l 特征直方图统计: fig, …

各大模型厂商API使用:百度、阿里、豆包、kimi、deepseek

百度ERNIE(支持requests接口) ERNIE Speed、ERNIE Lite免费 免费测试下来模型ernie_speed输出吞吐量计算20-30来个,“{length/cost} tokens/s” 输出总长度/耗时 https://qianfan.cloud.baidu.com/ 文档: https://cloud.baidu.com/doc/WENXINWORKSHOP/s/dltgsna1o a…

智能进化:深度学习与进化计算的融合艺术

《进化深度学习》这本书深入探索了进化计算(EC)在深度学习领域的应用,为读者提供了一套丰富而实用的技术工具,这些工具可以贯穿深度学习的整个过程,助力研究者们解决各种复杂的问题。书中不仅详细介绍了遗传算法和进化…

怎么理解直接程序控制和中断方式?

直接程序控制 看完之后是不是依然一头雾水?来看下面两个例子 无条件传送 假设你正在使用键盘打字。当你敲击键盘上的一个键时,键盘会立即产生一个信号(即输入数据),并且这个信号会立即被电脑接收。在这个过程中&…

比较两列数据

点其中一个数据 删掉S,回车 大的标红

v-cloak 用于在 Vue 实例渲染完成之前隐藏绑定的元素

如果你是后端开发者&#xff08;php&#xff09;&#xff0c;在接触一些vue2开发的后台时&#xff0c;会发现有这段代码&#xff1a; # CDN <script src"https://cdn.jsdelivr.net/npm/vue2/dist/vue.js"></script> # 或 <script src"https://cd…

三十六计的笔记

系列文章目录 三十六计的笔记 文章目录 系列文章目录1、瞒天过海2、围魏救赵3、借刀杀人4、以逸待劳5、趁火打劫6、声东击西7、无中生有8、暗渡陈仓9、隔岸观火10、笑里藏刀11、李代桃僵12、顺手牵羊13、打草惊蛇14、借尸还魂15、调虎离山16、欲擒故纵17、抛砖引玉18、擒贼擒王…

9.3 Go语言入门(变量声明和函数调用)

Go语言入门&#xff08;变量声明和函数调用&#xff09; 目录二、变量声明和函数调用1. 变量声明1.1 使用 var 关键字声明1.2 简短声明1.3 零值1.4 常量 2. 函数调用2.1 函数定义2.2 多个返回值2.3 命名返回值2.4 可变参数2.5 匿名函数和闭包 目录 Go 语言&#xff08;Golang&a…

粤嵌—2024/5/21—打家劫舍(✔)

代码实现&#xff1a; int rob(int *nums, int numsSize) {if (numsSize 1) {return nums[0];}if (numsSize 2) {return fmax(nums[0], nums[1]);}int dp[numsSize];dp[0] nums[0];dp[1] fmax(nums[0], nums[1]);for (int i 2; i < numsSize; i) {dp[i] fmax(dp[i - 1…