September, 2019Archive for

MoviePy-Clips变换与特效

下面是MoviePy中的几种对clip的修改: 非常常见的修改clip属性的方法有:clip.set_duration, clip.set_audio, clip.set_mask, clip.set_start 等. 已经实现的特效 .clip.subclip(t1,t2): 截取t1到t2时间段内的片段;还有一些高级效果,loop:让clip循环播放、time_mirror:让clip倒播,这些方法位于特殊的模块 moviepy.video.fx, moviepy.audio.fx,应用clip.fx方法,比如 clip.fx(time_mirror) 让视频倒播。以上的特效其实本质上并不是原地直接修改的(没有对原始视频修改),而是根据修改产生新的clip。所以,我们如果想让修改生效,需要将修改过的产生的clip赋值给某clip,保存修改。举个栗子。 my_clip = VideoFileClip("some_file.mp4") my_clip.set_start(t=5) #没有做任何改变,修改会丢失 my_new_clip = my_clip.set_st...

ffmpeg中的sws_scale算法性能测试

经常用到ffmpeg中的sws_scale来进行图像缩放和格式转换,该函数可以使用各种不同算法来对图像进行处理。以前一直很懒,懒得测试和甄别应该使用哪种算法,最近的工作时间,很多时候需要等待别人。忙里偷闲,对ffmpeg的这一组函数进行了一下封装,顺便测试了一下各种算法。 简单说一下测试环境,我使用的是Dell的品牌机,i5的CPU。ffmpeg是2010年8月左右的当时最新版本编译而成,我使用的是其静态库版本。 sws_scale的算法有如下这些选择。 #define SWS_FAST_BILINEAR 1 #define SWS_BILINEAR 2 #define SWS_BICUBIC 4 #define SWS_X 8 #define SWS_POINT 0x10 #define SWS_AREA 0x20 #define SWS_BICUBLIN 0x40 #define SWS_GAUSS 0x80 #def...

moviepy 样码

更改视频亮度,增加字幕,去除音轨,淡入特效,转换,截取时间,控制位置,组合图框,合成多段, from django.test import TestCase # Create your tests here. # coding=utf-8 from moviepy.editor import * from moviepy.video.tools.subtitles import SubtitlesClip from moviepy.video.fx import volumex, resize, mirrorx, lum_contrast from moviepy.video.tools.segmenting import findObjects # 导入字幕 generator = lambda txt: TextClip(txt, font='SimHei', fontsize=24, color='black') sub = SubtitlesClip("welcome.srt", generator) # 片头 start_clip = VideoFile...

python视频处理库:moviepy 第二篇

moviepy底层使用ffmpeg读取和导出视频以及音频文件。它使用ImageMagic对视频插入文字以及生成GIF(可选)。对于不同的媒体文件的处理是通过python高效的数值计算库numpy来完成的。一些特效处理等使用到了python的图像处理库比如PIL,scikit-images以及科学计算库scipy等。 关于moviepy的一些基础概念。moviepy的核心概念是clips,可以是AudioCLips 和 VideoClips 。这些clips可以被修改(剪切,降低播放速度,调整亮度等)或者和其他的clips混合到一起组成新的clips。然后这些clips可以通过pygame或者Ipython(jupyter notebook)预览,或者导出为videos文件或者GIF。VideoClips可以通过一个视频文件,图像文件或者文字以及动画来创建,这些VideoClips还可以有音轨(audio track)即 AudioCLips以及mask(这种一种特殊的VideoClips,当其他的clips混合在一起的时候,这个mask决...

python视频处理库:moviepy

处理视频是一个常见的需求。那么在python中如何用代码处理视频呢?最近我无意间发现了一个很好用的python视频处理库moviepy,其使用起来简单易用,而且功能比较强大,这里记录一下分享给大家。 What is moviepy? 以下的介绍来自moviepy的官方文档。 moviepy是一个用于视频编辑的python模块,其可以用来对视频进行一些基础的操作(比如剪切,连接,插入标题等),视频创作(比如非线性编辑),视频处理以及给视频增加一些炫酷的特效等。它可以读写大多数常见的视频格式,包括GIF。 How to install moviepy? moviepy的安装非常简单,直接使用命令pip install moviepy即可。当然你也可以选择从源码安装,下载源码包,解压缩,然后切换到含有setup.py的目录,执行 python setup.py install 即可。 moviepy的底层依赖于Numpy(用于高效数值处理),imageio(图像处理), Decorator,tqdm(用于显示进度条)。它在Windows/Mac/Unix...