☞ ░ 前往老猿Python博文目录 ░ 一.概述 在<moviepy音视频剪辑:视频基类VideoClip子类DataVideoClip.UpdatedVideoClip.ImageClip.ColorClip.TextClip类详解>介绍了TextClip生成文本剪辑的方法,文本剪辑可以用于制作字幕,作为片头片尾字幕介绍以及视频剪辑间的过渡内容.并在收费专栏文章<moviepy音视频剪辑:视频基类VideoClip子类DataVideoClip.UpdatedVideoClip.Im…
H.264简介 什么是H.264?H.264是一种高性能的视频编解码技术.目前国际上制定视频编解码技术的组织有两个,一个是"国际电联",它制定的标准有H.261.H.263.H.263+等,另一个是"国际标准化组织(ISO)"它制定的标准有MPEG-1.MPEG-2.MPEG-4等.而H.264则是由两个组织联合组建的联合视频组(JVT)共同制定的新数字视频编码标准,所以它既是ITU-T的H.264,又是ISO/IEC的MPEG-4高级视频编码,而且它将成为MPEG…
☞ ░ 前往老猿Python博文目录 ░ 本专栏为moviepy音视频剪辑合成相关内容介绍的免费专栏,对应的收费专栏为<moviepy音视频开发专栏>. 一.moviepy基础能力系统介绍 本部分主要以类为单位介绍moviepy相关知识,相关内容主要来自moviepy官网.代码文档字符串以及源代码阅读. 1.moviepy简介及安装 2.moviepy音视频剪辑:moviepy中的剪辑基类clip属性和方法详解 3.moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解 4.…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿之所以学习和研究Moviepy的使用,是因为需要一个将视频转成动画的工具,当时在网上到处搜索查找免费使用工具,结果找了很多自称免费的工具,但转完GIF后都会在动画中打上对应工具的显著广告或Logo,根本没法将转换后的动画发布.如是想到了万能的Python,就找到了moviepy,没费多少时间就搞定了,因此萌发了学习和研究Moviepy的兴趣.本文利用前面介绍的知识来开发一个windows下图形化的视频转GIF或图片的工具. 二.背景知识介绍…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿之所以学习和研究Moviepy的使用,是因为需要一个将视频转成动画的工具,当时在网上到处搜索查找免费使用工具,结果找了很多自称免费的工具,但转完GIF后都会在动画中打上对应工具的显著广告或Logo,根本没法将转换后的动画发布.如是想到了万能的Python,就找到了moviepy,没费多少时间就搞定了,因此萌发了学习和研究Moviepy的兴趣.本节就利用前面介绍的知识来开发一个windows下图形化的视频转GIF或图片的工具. 二.背景知识介…
☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度.人耳对声音强弱的主观感觉称为响度.响度和声波振动的幅度有关.一般说来,声波振动幅度越大则响度也越大. 音色:也就是音品.音色是人们区别具有同样响度.同样音调的两个声音之所以不同的特性,或者说是人耳对各种频率.各种强度的声波的综合反应.音色与声波的振动波形有关,或者说与声音的频谱结构有关. 更多关于…
☞ ░ 前往老猿Python博文目录 ░ <moviepy音视频开发专栏>为收费专栏,基于老猿阅读moviepy1.03版本的源代码以及大量测试验证的基础上,详细介绍moviepy主要音视频剪辑相关类的方法.以及一些音视频剪辑合成处理的场景化支撑能力和部分剪辑合成实现的案例或工具开发. 一.moviepy基础能力系统介绍 本部分主要以类为单位介绍moviepy相关知识,相关内容主要来自moviepy官网.代码文档字符串以及源代码阅读. 1.moviepy简介及安装 2.moviepy音视频剪辑…
☞ ░ 前往老猿Python博文目录 ░ CompositeAudioClip是AudioClip的直接子类,用于将几个音频剪辑合成为一个音频剪辑.CompositeAudioClip类只有一个构造方法,在构造方法内定义了一个内嵌函数make_frame,该make_frame函数作为CompositeAudioClip构建帧的方法. 1.构造方法语法: __init__(self, clips)) 2.说明: 参数clips为一个列表,列表中的元素为AudioClip对象,这些对象构建的Com…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>节介绍了怎么通过Python+Moviepy+OpenCV实现消除视频Logo的四种方法,并提供了详细的实现思路和实现代码,但这种原生态的应用不适合开发人员以外的其他人员使用,提供一个图形界面的工具程序是比较好的解决方案,本文就介绍实现这样一个图形化工具的步骤. 本节的背景知识都在<Python音视频开发:消除抖音短视频Logo和去电视台标的实现详解>介绍了…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 对于带Logo(如抖音Logo.电视台标)的视频,有三种方案进行Logo消除: 直接将对应区域用对应图像替换: 直接将对应区域模糊化: 通过变换将要去除部分进行填充. 其中: 方法1又可以使用三种方法,一是使用某固定图像替换.二是截取视频某帧的一部分图像替换.三是用每帧固定区域的图像替换当前帧的Logo区域,其中固定图像替换最简单,下面就不展开介绍:截取视频某帧的一部分图像比较简单,用每帧固定区域的图像替换当前帧的Logo区域最复杂: 方法2可…
☞ ░ 前往老猿Python博文目录 ░ 一.环境 操作系统:win7 64位 moviepy:1.0.3 numpy:1.19.0 Python:3.7.2 二.应用代码及报错信息 程序代码 if __name__ == '__main__': import numpy as np make_frame = lambda t: 2*[t**((int(100000*t))%3)*0.99] clip = AudioClip(make_frame, duration=5,fps=24000) v…
一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解>介绍了fl_image和subfx方法, 在<Python+moviepy音视频剪辑:视频帧数据的本质.Clip的fl方法进行变换处理的原理以及滚屏案例>及<moviepy音视频剪辑:使用fl_time进行诸如快播.慢播.倒序播放等时间特效处理的原理和可能遇到的…
☞ ░ 前往老猿Python博文目录 ░ 一.运行环境 运行环境如下: python版本:3.7 opencv-python版本:4.2.0.34 numpy版本:1.19.0 二.错误案例代码及报错信息 使用如下代码调用headblur进行人脸跟踪打马赛克: if __name__ == '__main__': movie_in = sys.argv[1] if len(sys.argv) == 3: #参数指定的视频文件名 subclip_s = float(sys.argv[2]) #是否…
运行环境如下: python版本:3.7 opencv-python版本:4.2.0.34 numpy版本:1.19.0 错误信息: 在调用moviepy1.03版本的headblur函数执行人脸跟踪和模糊化处理时,报如下错误: File "F:/study/python/project/moviepyTest/moviepyTest.py", line 63, in <module> clip_blurred = clip.fx(vfx.headblur, trackin…
☞ ░ 前往老猿Python博文目录 ░ 在moviepy1.03版本中,headblur的调用语法为:headblurbak(clip,fx,fy,r_zone,r_blur=None) 其中参数fx和fy是两个函数,该函数带参数t,用于确认t时刻需要模糊化范围的中心点位置,moviepy将对以中心点为圆心半径r_zone的圆范围内的图像进行模糊化处理. r_blur参数在moviepy中的解释是"the intensity of the blurring",翻译成中文是"…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解>介绍了fl_image和subfx方法, 在<Python+moviepy音视频剪辑:视频帧数据的本质.Clip的fl方法进行变换处理的原理以及滚屏案例>及<moviepy音视频剪辑:使用fl_time进行诸如快播.慢播…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解>介绍了fl_image和subfx方法,在<Python+moviepy音视频剪辑:视频帧数据的本质.Clip的fl方法进行变换处理的原理以及滚屏案例>及<moviepy音视频剪辑:使用fl_time进行诸如快播.慢播.…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解>介绍了fl_image和subfx方法,在<Python+moviepy音视频剪辑:视频帧数据的本质.Clip的fl方法进行变换处理的原理以及滚屏案例>及<moviepy音视频剪辑:使用fl_time进行诸如快播.慢播.…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 moviepy对中文和多语言环境的支持做得并不好,包括中文文件名以及用于显示文字的TextClip就是典型的中文支持方面存在问题的.对于编解码的问题,可以通过修改解码语句中的编码类型为'asn'或'cp936'等方式解决,对于文字显示的处理,则稍微麻烦点. 二.使用TextClip对中英文混合内容进行滚动显示 本案例为win7 64位中文操作系统+Python3.72+Moviepy2.0.0dev1环境实现,其他环境老猿没测试过. 2.1.案…
☞ ░ 前往老猿Python博文目录 ░ 在moviepy2.0.0.Dev版本中,执行如下语句: from moviepy.editor import * TextClip.search('gb', 'font') 报错: Traceback (most recent call last): File "F:/study/python/project/moviepyTest/moviepyTest.py", line 45, in TextClip.search('gb', 'fon…
☞ ░ 前往老猿Python博文目录 ░ 一.rotate函数功能介绍 moviepy的rotate函数用于将剪辑逆时针旋转指定的角度或弧度. 调用语法:rotate(clip, angle, unit="deg", resample="bicubic", expand=True) 参数说明: angle:一个代表角度或弧度的数值或者是一个返回二者数值的与时间线相关的函数(带一个参数t) unit:用于确认angle值对应弧度还是角度,如果是角度为"deg…
☞ ░ 前往老猿Python博文目录 ░ 一.亮度.对比度的概念 图像的亮度(luminosity )也即对明度的度量(参考<音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍>).图像亮度本质上图像中每个像素的亮度,每个像素的亮度本质上RGB值的大小,RGB值为0是像素点为黑色,RGB都为255时像素点最亮,为白色. 图像对比度指的是指一幅图像中明暗区域最亮的白和最暗的黑之间不同亮度层级的测量,即指一幅图像灰度反差的大小,也就是不同像素点之间的差值,差值越大,对比度越…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 由于moviepy合成剪辑后,输出需要较多的时间,那么在输出前预览一下有助于提高处理效率.moviepy提供了预览的工具,这个工具是基于pygame实现的moviepy.video.io.preview,因此在使用前必须安装pygame. 参考安装指令:pip install pygame -i https://pypi.tuna.tsinghua.edu.cn/simple 二.预览函数preview语法 调用语法: def preview(…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑相关类及关系>介绍了VideoClip主要有六个直接子类(VideoFileClip. ImageSequenceClip.CompositeVideoClip.ImageClip.DataVideoClip.UpdatedVideoClip)和两个间接子类(ColorClip, TextClip).在<moviepy音视频剪辑:视频基类VideoClip子类DataVideoClip…
☞ ░ 前往老猿Python博文目录 ░ 一.概述 在<moviepy音视频剪辑:moviepy中的剪辑相关类及关系>介绍了剪辑相关类及关系,其中VideoClip有多个直接子类和间接子类. 本文中将介绍的DataVideoClip.UpdatedVideoClip.ImageClip.ColorClip.TextClip都是VideoClip的子类,其中DataVideoClip.UpdatedVideoClip在前面文中未进行介绍,之所以将这几个类在此一并介绍,是因为这几个类都在Video…
☞ ░ 前往老猿Python博文目录 ░ 在阅读moviepy的类ImageClip的构造方法代码时,对于其中涉及遮罩的处理没有理解,到处查找遮罩的资料没有查到,最后到moviepy的官网上尝试了一下,终于有所收获. 下面结合官网材料结合本人的理解介绍一下: mask:有人译为遮罩.遮片.蒙版,而这三个词在不同的剪辑处理或图像处理软件中可能有不同含义,在此不详细介绍,为了连贯和一致性,老猿还是将其翻译为遮罩: mask遮罩是一种特殊的视频剪辑,它指示当带遮罩的视频剪辑与其他视频剪辑合成时,带遮罩…
☞ ░ 前往老猿Python博文目录 ░ 老猿在使用moviepy音视频剪辑的fl_time进行时间特效处理时,系统报错: OSError: Error in file F:\video\WinBasedWorkHard_src.mp4, Accessing time t=54.84-54.93 seconds, with clip duration=54 seconds, 这个报错信息应该是访问的音频超出了剪辑的时长导致,如果不变换音频不会报错.有2个办法,一是视频变换时不同步改变音频,但视频…
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类VideoClip构造方法: __init__(self, make_frame=None, ismask=False, duration=None, has_constant_size=True) 的参数作用在moviepy官方文档中没有说明,经查阅相关源代码,确认其功能如下: has_constant_size:表示是否所有帧大小都是相同,如果是动态图像,该值必须为False,该值用于增加遮罩时使用,如果固定…
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类write_gif方法用于将视频剪辑输出到gif文件,调用语法如下: def write_gif(self, filename, fps=None, program='imageio', opt='nq', fuzz=1, verbose=True, loop=0, dispose=False, colors=None, tempfiles=False, logger='bar'): 部分参数作用在moviepy…
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类write_videofile方法用于将视频剪辑输出到文件,调用语法如下: write_videofile(self, filename, fps=None, codec=None, bitrate=None, audio=True, audio_fps=44100, preset="medium", audio_nbytes=4, audio_codec=None, audio_bitrate=Non…