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 = VideoFileClip("start_clip.mp4").subclip(0, 9.0).resize((500, 1000)).fx(lum_contrast, (lum=0, contrast=0, contrast_thr=127)).crossfadein(0.5).crossfadeout(0.5)
# 合成字幕
start_clip = CompositeVideoClip([start_clip, sub])
# 片尾
end_clip = ImageClip("wzj_cover.png").subclip(0, 9.0).resize((500, 1000)).fx(resize, (1000, 500))
# 内容
main_clip = VideoFileClip("main_clip.mp4", audio=False).without_audio().subclip(0, 9.0).on_color(color=(255, 255, 255)).resize((700, 500)).crossfadein(0.5).crossfadeout(0.5)
left_clip1 = VideoFileClip("left_clip.mp4", audio=False).without_audio().subclip(0, 9.0).rotate(90).on_color(color=(255, 255, 255))
left_clip2 = VideoFileClip("left_clip.mp4", audio=False).without_audio().subclip(0, 9.0).rotate(90).on_color(color=(255, 255, 255))
left_clip3 = VideoFileClip("left_clip.mp4", audio=False).without_audio().subclip(0, 9.0).rotate(90).on_color(color=(255, 255, 255))
# 一种实现,通过巧妙堆叠
left_clip = clips_array([[left_clip, main_clip]])
mid_clip = clips_array([[left_clip, main_clip]])
"""
# 另一种实现,通过画好的线框来安置视频
# Load the image specifying the regions.
im = ImageClip("motif.png")
# Loacate the regions, return a list of ImageClips
regions = findObjects(im)
clips = [left_clip1, left_clip2, left_clip3, main_clip]
comp_clips = [c.resize(r.size)
.set_mask(r.mask)
.set_position(r.screenpos)
for c,r in zip(clips,regions)]
mid_clip = CompositeVideoClip(comp_clips, im.size)
"""
mid_clip = mid_clip.resize(width=1000, height=500).rotate(90)
# 剪辑合成
final_clip = concatenate_videoclips([start_clip, mid_clip, end_clip])
# 输出视频
final_clip.write_videofile("my_stack.mp4")
moviepy改进的想码的更多相关文章
- Remote验证及其改进(附源码)
Remote验证及其改进(附源码) 表单中的输入项,有些是固定的,不变的验证规则,比如字符长度,必填等.但有些是动态的,比如注册用户名是否存在这样的检查,这个需要访问服务器后台才能解决.这篇文章将会介 ...
- Asp.net MVC验证哪些事(3)-- Remote验证及其改进(附源码)
表单中的输入项,有些是固定的,不变的验证规则,比如字符长度,必填等.但有些是动态的,比如注册用户名是否存在这样的检查,这个需要访问服务器后台才能解决.这篇文章将会介绍MVC中如何使用[RemoteAt ...
- 集合源码(一)之hashMap、ArrayList
HashMap 一.HashMap基本概念: HashMap是基于哈希表的Map接口的实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒 ...
- 微信小程序(有始有终,全部代码)开发--- 新增【录音】以及UI改进
开篇语 寒假发了一篇练手文章,不出意外地火了: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 后来又发了BUG修复的版本,出乎意料的火了: 简年18: ...
- 快速排序详解(lomuto划分快排,hoare划分快排,classic经典快排,dualpivot双轴快排源码)
目录 快速排序(lomuto划分快排,hoare划分快排,classic经典快排,dualpivot双轴快排) 一.快速排序思想 二.划分思想 三.测试用例 快速排序(lomuto划分快排,hoare ...
- HashMap与HashTable的哈希算法——JDK1.9源码阅读总结
下面是HashTable源码中的put方法: 注意上面注释标注的地方: HashTable对于元素在哈希表中的坐标算法是: 将对象自身的哈希值key.hashCode()变为正数:hash & ...
- Android Weekly Notes Issue #218
Android Weekly Issue #218 August 14th, 2016 http://androidweekly.net/issues/issue-218 ARTICLES & ...
- Asp.net MVC验证那些事(4)-- 自定义验证特性
在项目的实际使用中,MVC默认提供的Validation Attribute往往不够用,难以应付现实中复杂多变的验证需求.比如, 在注册用户的过程中,往往需要用户勾选”免责声明”,这个checkbox ...
- Mac OS X 背后的故事
Mac OS X 背后的故事 作者: 王越 来源: <程序员> 发布时间: 2013-01-22 10:55 阅读: 25840 次 推荐: 49 原文链接 [收藏] ...
随机推荐
- centos7修改主机名的方法
在CentOS7中,有三种定义的主机名: 静态的(Static hostname) “静态”主机名也称为内核主机名,是系统在启动时从/etc/hostname自动初始化的主机名. 瞬态的(Tansie ...
- C++ 智能指针 std::auto_ptr 分析
背景介绍: RAll机制 定义一个类来封装资源的分配和释放,在构造函数中完成资源的分配和初始化,在析构函数中完成资源的清理,从而保证资源的正确初始化和清理 ps:智能指针就是RAll机制的一种应用,智 ...
- 005 SpringCloud 学习笔记01-----系统架构的演变
1.系统架构的演变 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此不断的演进.升级.迭代.从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服 ...
- [转帖]70亿!以色列间谍产品公司NSO要被卖掉了
70亿!以色列间谍产品公司NSO要被卖掉了 2017-06-14 11:11 https://www.sohu.com/a/148739327_257305 E安全6月14日讯以色列的网络能力处于世界 ...
- Java8 集合相关操作
// java8 集合快速转成string List<String> cities; String citiesCommaSeparated = String.join(",&q ...
- 手写ORM入门篇(一)
对象关系映射(英语:(Object Relational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 . ...
- linux mount一个目录到另外一个目录
从linux内核2.4.0以后mount支持mount --bind 一个目录到另外一个目录 比如: [root@localhost wind]# mkdir test1 test2 dir3 m ...
- 2019 巨人网络java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.巨人网络等公司offer,岗位是Java后端开发,最终选择去了巨人网络. 面试了很多家公司,感觉大部分公司考察的点 ...
- Java visualvm
简介 VisualVM是一个集成多个JDK命令行工具的可视化工具.可以作为Java应用程序性能分析和运行监控的工具.开发人员可以利用它来监控.分 析线程信息,浏览内存堆数据.系统管理员可以利用它来监测 ...
- 英语secuerity证券
中文名:证券 外文名:security.secuerity 类别:经济权益凭证统称 组成:资本证券.货币证券和商品证券 作用:用来证明持者权益的法律凭证 发展历程 世界 1603年,在共和国大议长奥登 ...