专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 最近网上会议很多,网上会议工具大多提供了录播的功能,有些会议内容比较精彩,但中间穿插有些无用的内容,或者有些只有几段精彩,大部分内容可以去除.这就需要对该录播文件进行剪辑,取其精华留存,这样可以节约后续重温或者给其他人共享的时间.本文介绍的开发方法就是要实现这样的一个工具. 二.背景知识介绍 2.1…
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 最近网上会议很多,网上会议工具大多提供了录播的功能,有些会议内容比较精彩,但中间穿插有些无用的内容,或者有些只有几段精彩,大部分内容可以去除.这就需要对该录播文件进行剪辑,取其精华留存,这样可以节约后续重温或者给其他人共享的时间.本文介绍的开发方法就是要实现这样的一个工具. 二.背景知识介绍 2.1…
☞ ░ 前往老猿Python博文目录 ░ 本专栏为moviepy音视频剪辑合成相关内容介绍的免费专栏,对应的收费专栏为<moviepy音视频开发专栏>. 一.moviepy基础能力系统介绍 本部分主要以类为单位介绍moviepy相关知识,相关内容主要来自moviepy官网.代码文档字符串以及源代码阅读. 1.moviepy简介及安装 2.moviepy音视频剪辑:moviepy中的剪辑基类clip属性和方法详解 3.moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解 4.…
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 在<moviepy音视频剪辑:音视频的加载和输出>.<moviepy音视频剪辑:多个视频合成一个视频>.<moviepy音视频剪辑:使用VideoFileClip.AudioFileClip和write_videofile.write_audiofile进行音视频的加载和输…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解>介绍了fl_image和subfx方法, 在<Python+moviepy音视频剪辑:视频帧数据的本质.Clip的fl方法进行变换处理的原理以及滚屏案例>及<moviepy音视频剪辑:使用fl_time进行诸如快播.慢播…
☞ ░ 前往老猿Python博文目录 ░ 一.rotate函数功能介绍 moviepy的rotate函数用于将剪辑逆时针旋转指定的角度或弧度. 调用语法:rotate(clip, angle, unit="deg", resample="bicubic", expand=True) 参数说明: angle:一个代表角度或弧度的数值或者是一个返回二者数值的与时间线相关的函数(带一个参数t) unit:用于确认angle值对应弧度还是角度,如果是角度为"deg…
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 在<moviepy音视频剪辑:音视频的加载和输出>.<moviepy音视频剪辑:多个视频合成一个视频>.<moviepy音视频剪辑:使用VideoFileClip.AudioFileClip和write_videofile.write_audiofile进行音视频的加载和输出>和<moviepy音视频剪辑:…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 在<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍了剪辑基类的fl.fl_time.fx方法,在<moviepy音视频剪辑:视频剪辑基类VideoClip的属性及方法详解>介绍了fl_image和subfx方法, 在<Python+moviepy音视频剪辑:视频帧数据的本质.Clip的fl方法进行变换处理的原理以及滚屏案例>及<moviepy音视频剪辑:使用fl_time进行诸如快播.慢播…
☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿之所以学习和研究Moviepy的使用,是因为需要一个将视频转成动画的工具,当时在网上到处搜索查找免费使用工具,结果找了很多自称免费的工具,但转完GIF后都会在动画中打上对应工具的显著广告或Logo,根本没法将转换后的动画发布.如是想到了万能的Python,就找到了moviepy,没费多少时间就搞定了,因此萌发了学习和研究Moviepy的兴趣.本文利用前面介绍的知识来开发一个windows下图形化的视频转GIF或图片的工具. 二.背景知识介绍…
☞ ░ 前往老猿Python博文目录 ░ <Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载>是老猿两个关于moviepy的专栏<PyQt+moviepy音视频剪辑实战文章目录>.收费专栏<moviepy音视频开发专栏>的导览. 因CSDN对于同一篇文章如果同时发布收费专栏和免费专栏时,非订阅者打开文件时会有订阅提示,虽然点击后并不会付费,但会导致对文章感兴趣的人望而却步,因此<Python音视频剪辑库MoviePy1.0.3中文教程导…
☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度.人耳对声音强弱的主观感觉称为响度.响度和声波振动的幅度有关.一般说来,声波振动幅度越大则响度也越大. 音色:也就是音品.音色是人们区别具有同样响度.同样音调的两个声音之所以不同的特性,或者说是人耳对各种频率.各种强度的声波的综合反应.音色与声波的振动波形有关,或者说与声音的频谱结构有关. 更多关于…
☞ ░ 前往老猿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对中文和多语言环境的支持做得并不好,包括中文文件名以及用于显示文字的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博文目录 ░ 一.亮度.对比度的概念 图像的亮度(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…
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类VideoClip的fl_image方法用于进行对剪辑帧数据进行变换. 调用语法:fl_image(self, image_func, apply_to=None). fl_image方法是对get_frame方法获取的帧进行变换的方法,本质上是<moviepy音视频剪辑:moviepy中的剪辑基类Clip详解>介绍的fl方法在内容变换方面的一种变种. 参数说明: image_func:参数image_func…