这个要比前一个厚实点。

更改视频亮度,增加字幕,去除音轨,淡入特效,转换,截取时间,控制位置,组合图框,合成多段,

嗯,很多都有了。

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改进的想码的更多相关文章

  1. Remote验证及其改进(附源码)

    Remote验证及其改进(附源码) 表单中的输入项,有些是固定的,不变的验证规则,比如字符长度,必填等.但有些是动态的,比如注册用户名是否存在这样的检查,这个需要访问服务器后台才能解决.这篇文章将会介 ...

  2. Asp.net MVC验证哪些事(3)-- Remote验证及其改进(附源码)

    表单中的输入项,有些是固定的,不变的验证规则,比如字符长度,必填等.但有些是动态的,比如注册用户名是否存在这样的检查,这个需要访问服务器后台才能解决.这篇文章将会介绍MVC中如何使用[RemoteAt ...

  3. 集合源码(一)之hashMap、ArrayList

    HashMap 一.HashMap基本概念: HashMap是基于哈希表的Map接口的实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒 ...

  4. 微信小程序(有始有终,全部代码)开发--- 新增【录音】以及UI改进

    开篇语 寒假发了一篇练手文章,不出意外地火了: <简年15: 微信小程序(有始有终,全部代码)开发---跑步App+音乐播放器 > 后来又发了BUG修复的版本,出乎意料的火了: 简年18: ...

  5. 快速排序详解(lomuto划分快排,hoare划分快排,classic经典快排,dualpivot双轴快排源码)

    目录 快速排序(lomuto划分快排,hoare划分快排,classic经典快排,dualpivot双轴快排) 一.快速排序思想 二.划分思想 三.测试用例 快速排序(lomuto划分快排,hoare ...

  6. HashMap与HashTable的哈希算法——JDK1.9源码阅读总结

    下面是HashTable源码中的put方法: 注意上面注释标注的地方: HashTable对于元素在哈希表中的坐标算法是: 将对象自身的哈希值key.hashCode()变为正数:hash & ...

  7. Android Weekly Notes Issue #218

    Android Weekly Issue #218 August 14th, 2016 http://androidweekly.net/issues/issue-218 ARTICLES & ...

  8. Asp.net MVC验证那些事(4)-- 自定义验证特性

    在项目的实际使用中,MVC默认提供的Validation Attribute往往不够用,难以应付现实中复杂多变的验证需求.比如, 在注册用户的过程中,往往需要用户勾选”免责声明”,这个checkbox ...

  9. Mac OS X 背后的故事

    Mac OS X 背后的故事 作者: 王越  来源: <程序员>  发布时间: 2013-01-22 10:55  阅读: 25840 次  推荐: 49   原文链接   [收藏]   ...

随机推荐

  1. WeQuant教程—1.5 实盘运行须知

    为了保证实盘交易程序能够正常稳定地运行,同时保护您在使用时账户资金的安全,我们设计了一些规则和机制.了解这些机制有助于您更快上手实盘交易. 启动前检查机制 在实盘交易程序启动前,系统会执行一次检查,出 ...

  2. Docker---数据卷Volume的简单使用(使用DockerFile实现)

    DockerFile是什么?Dockerfile是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像.它们简化了从头到尾的流程并极大的简化了部署工作.Dockerfile从FR ...

  3. (CSDN 迁移) JAVA多线程实现-可回收缓存线程池(newCachedThreadPool)

    在前两篇博客中介绍了单线程化线程池(newSingleThreadExecutor).可控最大并发数线程池(newFixedThreadPool).下面介绍的是第三种newCachedThreadPo ...

  4. 浅析 Java 中的继承和重写

    浅析 Java 中的继承和重写 Java 中的构造方法不能被继承. Java 中 static 修饰的方法可以被继承,但不能被子类重写. Java 中 final 修饰方法不允许被子类重写,但是可以被 ...

  5. [转帖]Linux中buff/cache内存占用过高解决办法

    Linux中buff/cache内存占用过高解决办法 https://www.cnblogs.com/rocky-AGE-24/p/7629500.html /proc/sys/vm/drop_cac ...

  6. C++构造和解析JSON

    JSON是一种轻量级的数据交互格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率,实际项目中经常用到,相比xml有很多优点,问问度娘,优点一箩筐. 第三方库 json解析选用j ...

  7. JavaWeb项目之多条件过滤

    相信很多同学在学习java基础之后,面对各种项目还是相当头疼,那今天我将手把手教你学会JavaWeb项目中的多条件过滤,希望你能在与我实战的过程中积累经验,更进一步. 分页查询 需求分析:在列表页面中 ...

  8. spark提交任务详解

  9. PHP 使用 pdo 操作oracle数据库 报错

    ## SELECT UNID,NAME,NAME_XML WHERE UNID>=10 AND UNID<=15 ## 在10到15这5条数据中不为空数据php: symbol looku ...

  10. PTA A1016

    A1016 Phone Bills (25 分) 题目内容 A long-distance telephone company charges its customers by the followi ...