#### ☞ ░  [老猿Python博文目录](https://blog.csdn.net/LaoYuanPython/article/details/98245036) ░

一、引言

这两天要剪辑一个视频,从几个各自完整场景的短视频拼接成一个视频,每个短视频前都有个文字标题和倒计时的过场,为了做好这个过场,老猿用代码实现了一个。

二、实现思路介绍

1、本次使用了《OpenCV-Python图形图像处理:自用的一些工具函数功能及调用语法介绍》介绍的公用函数imgAddText,getTextSize
2、实现时,首先构造一个指定大小和指定单一背景色的图像,然后在其中添加要显示的文本信息,以及倒计时要显示的数字,相关信息都是根据背景图像大小和文本要占用的大小自动调整显示位置;
3、读入倒计时的‘滴’声,将其在图片显示时播放,如果找不到声音文件,可以将相关代码去除。

三、主程序完整代码

from  moviepy.editor import *
from opencvPublic import imgAddText,getTextSize
import numpy as npdef constructBlankImg(size,bgColor=(0,0,0)):l =  len(bgColor)if l==1:img = np.full((size[1],size[0]),bgColor,dtype=np.uint8)else:img = np.full((size[1], size[0],l),bgColor, dtype=np.uint8)return imgdef constructTransmitFrame(size,bgColor=(0,0,0),wordsInf=None):img = constructBlankImg(size,bgColor)if wordsInf:for wInf in wordsInf:words,font,color,pos = wInfl= len(color)img = imgAddText(img, words, font, color, pos)return imgdef constructTransmitClip(size,bgColor=(0,0,0),title=None):h = size[1]titleFont = 128digitFont = 96if title:w1, h1 = getTextSize(title,titleFont)w2,h2 = getTextSize('3',digitFont)pos1 = int((h-(h1+h2+30))/3)pos2 = pos1+h1+30inf1 =[(title,titleFont,(0,0,255),pos1),('3',digitFont,(255,0,0),pos2)]inf2 = [(title, titleFont, (0, 0, 255), pos1), ('2', digitFont, (255, 0, 0), pos2)]inf3 = [(title, titleFont, (0, 0, 255), pos1), ('1', digitFont, (255, 0, 0), pos2)]inf4 = [(title, titleFont, (0, 0, 255), pos1), ('0', digitFont, (255, 0, 0), pos2)]else:inf1 = [ ('3', digitFont, (255, 0, 0),'C')]inf2 = [('2', digitFont, (255, 0, 0), 'C')]inf3 = [('1', digitFont, (255, 0, 0), 'C')]inf4 = [('0', digitFont, (255, 0, 0), 'C')]img1 = constructTransmitFrame(size,bgColor,inf1)img2 = constructTransmitFrame(size, bgColor, inf2)img3 = constructTransmitFrame(size, bgColor, inf3)img4 = constructTransmitFrame(size, bgColor, inf4)audio = AudioFileClip(r'F:\video\倒计时.mp3')audio1 = audio.subclip(1.40, 2.28).set_duration(1)audio2 = audio.subclip(3, 4.20)clip1 = ImageClip(img1,duration=1).set_audio(audio1)clip2 = ImageClip(img2, duration=1).set_audio(audio1)clip3 = ImageClip(img3, duration=1).set_audio(audio1)clip4 = ImageClip(img4, duration=1).set_audio(audio1)clip = concatenate_videoclips([clip1, clip2,clip3,clip4], 'compose')clip = clip.set_fps(10).speedx(2)clip.write_videofile (r"F:\video\test.mp4")return clipconstructTransmitClip((960,640),(0,0,0),'老猿Python: https://blog.csdn.net/LaoYuanPython')

四、效果

五、小结

本文通过代码构建了一段实现倒数计时的过场影片段,可以用于拼接多个视频时作为过场使用。

更多相关moviepy知识的介绍请参考《 Python音视频剪辑库MoviePy1.0.3中文教程导览及可执行工具下载》的导览式介绍。

写博不易,敬请支持:

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

如对文章内容存在疑问,可在博客评论区留言,或通过扫描博客左边的二维码关注:老猿Python 微信公号发消息咨询。

关于老猿的付费专栏

  1. 付费专栏《 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 使用PyQt开发图形界面Python应用专栏目录》;

  2. 付费专栏《 moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《moviepy音视频开发专栏文章目录》;

  3. 付费专栏《 OpenCV-Python初学者疑难问题集》为《 OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《 OpenCV-Python初学者疑难问题集专栏目录 》

  4. 付费专栏《Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《 OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《 专栏:Python基础教程目录》从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 ░

Moviepy音视频开发:生成过场剪辑显示特定信息和倒计时信息相关推荐

  1. moviepy音视频开发:音频剪辑基类AudioClip

    ☞ ░ 前往老猿Python博文目录 ░ 一.背景知识介绍 1.1.声音三要素: 音调:人耳对声音高低的感觉称为音调(也叫音频).音调主要与声波的频率有关.声波的频率高,则音调也高. 音量:也就是响度 ...

  2. moviepy音视频开发:使用credits1给视频加片头片尾字幕

    ☞ ░ 前往老猿Python博文目录 ░ 一.概述 在<moviepy音视频剪辑:视频基类VideoClip子类DataVideoClip.UpdatedVideoClip.ImageClip. ...

  3. Moviepy音视频开发:视频转gif动画或jpg图片exe图形化工具开发案例

    ☞ ░ 前往老猿Python博文目录 ░ 一.引言 老猿之所以学习和研究Moviepy的使用,是因为需要一个将视频转成动画的工具,当时在网上到处搜索查找免费使用工具,结果找了很多自称免费的工具,但转完 ...

  4. moviepy音视频开发专栏文章目录

    ☞ ░ 前往老猿Python博文目录 ░ <moviepy音视频开发专栏>为收费专栏,对应免费专栏为<PyQt+moviepy音视频剪辑实战>,这2个专栏基于老猿阅读movie ...

  5. [Python MoviePy 音视频开发零基础到实战] 一、用6条代码为你的视频裁剪以及添加水印

    一.MoviePy 安装及配置 在 Python 有一个音视频开发模块 MoviePy,MoviePy 依赖于 FFmepg,使用 MoviePy 可以对音视频进行编辑:例如视频合成.视频处理.视频特 ...

  6. moviepy音视频开发:音频合成类CompositeAudioClip介绍

    ☞ ░ 前往老猿Python博文目录 ░ CompositeAudioClip是AudioClip的直接子类,用于将几个音频剪辑合成为一个音频剪辑.CompositeAudioClip类只有一个构造方 ...

  7. moviepy音视频开发:使用volumex调节音量大小及其花式用法

    ☞ ░ 前往老猿Python博文目录 ░ 一.概述 音频数据的音量体现为声音的振幅,振幅越大则声音越大,具体到音频帧数据上,体现为声音的绝对值越大则振幅越大音量越大,调节音量大小的本质是调整帧数据的绝 ...

  8. moviepy音视频开发:音频文件存取类AudioFileClip属性和方法介绍

    ☞ ░ 前往老猿Python博文目录 ░ 一.概述 AudioFileClip是AudioClip的直接子类,用于从一个音频文件或音频数组中读入音频到内存构建音频剪辑.但AudioFileClip并不 ...

  9. Qt音视频开发22-通用GPU显示

    一.前言 采用GPU来绘制实时视频一直以来都是个难点,如果是安防行业的做视频监控开发这块的人员,这个坎必须迈过去,本人一直从事的是安防行业的电子围栏这个相当小众的细分市场的开发,视频监控这块仅仅是周边 ...

最新文章

  1. Securing Session State
  2. [C#][Report]Cry
  3. InnoDB行锁的实现分析
  4. 二十三、图的广度优先遍历
  5. 途家网获3亿美元融资,PMCAFF放送100元途家优惠券(途家内部员工专用)
  6. 空之轨迹手游服务器维护,《空之轨迹》手游06月15日更新公告
  7. CF1592E Bored Bakry
  8. 【HDU - 1269】迷宫城堡 (tarjan算法模板)
  9. 梅花雨的日历控件在ASP.NET2.0下不可用的解决方法
  10. 引用原话,不等于原意
  11. 港澳台手机号正则表达式
  12. js中int转byte(-128—127)
  13. (附源码)计算机毕业设计SSM会议管理系统
  14. html语言剖析十六 调色原理
  15. 【随笔记】Deepin20系统更换fish,替代bash
  16. android 打开微信扫一扫
  17. f1签证计算机专业容易拒签吗,美国签证F1被拒,拒签调档出来原来是这个原因...
  18. 从零开始学数据分析之——《笨办法学Python》(习题0-10)
  19. wacom怎么调压感_要怎么设置PS的画笔 才能充分利用到数位板压感?
  20. Matlab中的pinv和inv

热门文章

  1. android延迟刷新adapter,Android关于Adapter更新数据问题案例
  2. Python实现统计文本中各单词数量
  3. linux usb3 转hdmi,USB TYPE-C转HDMI+PD3.0+USB3.0/USB3.1多功能扩展坞设计方法和设计电路...
  4. CortexM3与M4寄存器学习笔记
  5. 柳州高级中学2021年高考成绩查询,2021年柳州所有高中排名一览表
  6. 2019年中科大计算机夏令营经验帖
  7. 【debug】汇编跳转指令: JMP、JECXZ、JA、JB、JG、JL、JE、JZ、JS、JC、JO、JP 等
  8. 整数的按权展开 (10 分)
  9. tensorflow环境安装(及tensorflow虚拟环境中配置jupyter)
  10. 2.基于Spring-Boot的代码规范实例