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

一、概述

在《moviepy音视频剪辑:视频基类VideoClip子类DataVideoClip、UpdatedVideoClip、ImageClip、ColorClip、TextClip类详解》介绍了TextClip生成文本剪辑的方法,文本剪辑可以用于制作字幕,作为片头片尾字幕介绍以及视频剪辑间的过渡内容。并在收费专栏文章《moviepy音视频剪辑:视频基类VideoClip子类DataVideoClip、UpdatedVideoClip、ImageClip、ColorClip、TextClip及使用案例》中介绍了TextClip的案例。

而为了更方便的进行字幕能力支持,moviepy提供了一个工具函数credits1,用于支持将文本文件内容作为字幕剪辑,除了TextClip支持的能力外,还提供了一定的格式控制功能。

二、credits1介绍

2.1、credits1调用语法

credits1(creditfile, width, stretch=30, color='white', stroke_color='black', stroke_width=2, font='Impact-Normal', fontsize=60, gap=0)

2.2、参数说明:

  • creditfile:字幕文字存储的文本文件名
  • width:字幕文字的宽度,以像素为单位,老猿建议与准备加字幕的视频剪辑的宽度一样
  • stretch:官网没有该字段的说明,经阅读源码,这个参数在代码中暂时没有使用,估计是为了与以前版本兼容留下的参数
  • color:字幕文字的颜色,可以参考TextClip中对list和search方法对’color’的说明,具体参考在概述部分引用的博文
  • stroke_color:字幕文字轮廓线的颜色
  • stroke_width:字幕文字轮廓线的大小,像素为单位
  • font:字幕文字的字体,关于可用的字体可以使用TextClip的list(‘font’)查看,也可以直接指定字体文件
  • fontsize:字幕文字字体大小
  • gap:视频参与者角色和名字之间的水平间距,以像素为单位

2.3、返回值及其他补充说明:

  • credits1的返回值为一个ImageClip,没有设置fps和duration,如果与其他剪辑合成或单独输出,需要设置这2个属性
  • 字幕字体的中文支持需要关注TextClip中文支持的一个Bug,具体请参考《moviepy音视频剪辑:TextClip不支持中文字符以及OSError: magick.exe: unable to read font 仿宋_GB2312.ttf的解决办法》
  • fontsize:经老猿验证,该值只是一个字幕文字的最大值,如在字幕足够宽时最大值为该参数指定值,当某一行文字过多按fontsize大小无法显示时,整个字幕的字体会自动调整大小以适应字幕的宽度
  • 使用credits1需要先下载并安装ImageMagick应用(不是Python模块)。安装ImageMagick后,还需要修改moviepy的config_defaults.py模块的配置,将下行代码:
IMAGEMAGICK_BINARY = os.getenv('IMAGEMAGICK_BINARY', 'auto-detect')

替换为:

IMAGEMAGICK_BINARY = r"C:\Program Files\ImageMagick-7.0.8-Q16\magick.exe"

具体的替换值需要确认ImageMagick安装目录进行更改。请参考前面概述部分引用博文的介绍。

  • 关于文本文件的格式控制说明:
  1. 空行控制:文本文件本身的空行会被忽略,credits1可以通过“.blank 行数n”控制显示n个空行,其中点和blank必须在行顶格写
  2. 参与者角色和名字(the jobs and the names)显示控制:“…”(两个连续的点)表示本行后面的文字为制片相关角色如制片人、导演等 (其实随便使用啦),在这种方式下,角色所在行文字靠左,并上移一行。所有靠左的行最长的行靠左顶格,其他靠左的行与该行右对齐
  3. 所有非靠左行都以所有靠左行结束位置左对齐,二者中间的间距由gap参数指定。(具体参考后面案例)

三、案例

3.1、案例说明

本案例读入一个文本文件将其转成一个字幕剪辑,与另一个视频剪辑拼接。文本文件中使用了格式控制符“.blank”和“..”。

3.2、案例的字幕文本文件

下面为老猿使用的文本文件内容,注意控制符的使用以及文字行前面的行号,以便于和字幕截屏对照看看格式符的作用:

.blank 4
1 查理·卓别林(Charlie Chaplin,1889年4月16日—1977年12月25日),生于英国伦敦,英国影视演员、导演、编剧。
2 查理·卓别林的第一部电影是《谋生》。从1915年开始卓别林开始自编自导自演,甚至还担任制片和剪辑。
3 稍后他加入了埃斯安尼公司,并于1917年出品了《移民》和《安乐街》
4 1918年他和他的兄弟在洛杉矶开了自己的公司。甚至还担任制片和剪辑
5 并在1919年召集到了道格拉斯·费尔班克斯等人。但直到1923年,卓别林才为这个公司拍了第一部影片《巴黎一妇人》。
6 之后1925年的《淘金记》和1928年的《马戏团》为卓别林赢得了学院奖。
7 1931年因为《城市之光》的首映卓别林来到伦敦,转年才返回,他的下一部影片是1936年的《摩登时代》。
8 四年之后他拍摄了《大独裁者》。1952年,他的有声电影《舞台生涯》上映,同年他移居瑞士。
9 1967年他拍摄了他的最后一部影片《香港女伯爵》,1977年12月25日圣诞节早上于瑞士家中逝世,享年88岁。
.blank 4
..Executive Story Editor
12 MARCEL DURAND
..Associate Producers
14 MARTIN MARCEL
15 DIDIER MARTIN
..Music Supervisor
17 JEAN DIDIER
18 credits1测试
..老猿Python,跟老猿学Python!网址:
20 https://blog.csdn.net/LaoYuanPython
.blank 2
21
22
23
24
25
26
27
28
29
..30
31
32
33
34
35
36
37
38

3.3、案例代码

from  moviepy.editor import *
from  moviepy.video.tools.credits import credits1 #导入工具credits1if __name__ == '__main__':video = VideoFileClip(r"F:\video\zbl1.mp4") #加载视频文件imgClip = credits1(r"F:\video\test.txt", video.size[0], stretch=30, color='blue', stroke_color='red',stroke_width=2, font='fs_GB2312.ttf', fontsize=60, gap=10)#生成字幕剪辑imgClip = imgClip.set_duration(30).set_fps(video.fps) #给字幕剪辑设置播放时长和fpsw, h = video.sizex_speed = x_start = y_start = 0y_speed = 30print(imgClip.size, video.size)imgClip = imgClip.fx(vfx.scroll, h,w, x_speed, y_speed, x_start, y_start) #将字幕剪辑变成滚屏播放,注意h和w的顺序,具体可以参考专栏有关scroll的文章print(imgClip.size,video.size) imgClipList = [imgClip, video]mixVideo = concatenate_videoclips(imgClipList,method='compose')imgClip.write_videofile(r"f:\video\img.mp4",fps=30)mixVideo.write_videofile(r"f:\video\mixVideo.mp4")

3.4、案例生成视频剪辑字幕截图

四、小结

本文介绍了使用credits1给视频加字幕的功能,对credits1函数的语法、参数、返回值及使用注意事项进行了详细介绍,并介绍了credits1使用的字幕文本文件的格式控制方式,并提供了完整案例。大家可以通过本文的介绍熟练地使用credits1给视频加片头片尾字幕。上面案例对于文字轮廓线没有按预期处理,原因老猿暂时未进行深入分析,但总体上相关案例能对credits1的功能起到比较好的例证,大家可以结合前面介绍的内容对照代码和截屏理解一下。

更多moviepy的介绍请参考《PyQt+moviepy音视频剪辑实战文章目录》或《moviepy音视频开发专栏》。

关于收费专栏

老猿的付费专栏《使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,付费专栏《moviepy音视频开发专栏》详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,两个专栏加起来只需要19.9元,都适合有一定Python基础但无相关专利知识的小白读者学习。这2个收费专栏都有对应免费专栏,只是收费专栏的文章介绍更具体、内容更深入、案例更多。

收费专栏文章目录:《moviepy音视频开发专栏文章目录》、《使用PyQt开发图形界面Python应用专栏目录》,因总体内容不复杂,本文未单独设置收费专栏文章。

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

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

跟老猿学Python、学5G!

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

moviepy音视频开发:使用credits1给视频加片头片尾字幕相关推荐

  1. 多个视频怎么合并成一个并且添加片头片尾字幕

    相信大家多多少少会拍一些小视频作为留念,有的是关于自己的,还有很多是关于idol的,比如我们平时在各大视频播放器中观看idol的表演,但是播放器自身只能剪切十到十五秒的视频,没有录制完会感觉很不过瘾, ...

  2. 【Android音视频开发】- 实时采集视频

    前言 通过我的上一篇文章,可以知道直播大致有几个步骤:音视频采集 -> 美颜/滤镜/特效处理 -> 编码 -> 封包 -> 推流 -> 分发 -> 解码/渲染/播放 ...

  3. 安卓音视频开发(4)—— 视频录制、预览、解析与封装合成

    前言 这节学习视频开发的一些基础操作,具体包括使用MediaRecorder来录制视频,采集视频数据并保存为mp4文件.我学习的教程里使用的是Camera,通过回调来获取到NV21数据,这个获取的数据 ...

  4. Android音视频开发:MediaRecorder录制视频

    简介 安卓api提供了Camera类控制相机捕获图像,在api21以后,安卓也提供了Camera2,Camera变得过时了,但为了兼容性,这里还是使用Camera. 对于录制视频,可以使用MediaR ...

  5. iOS音视频开发-了解编码及视频

    1. 视频H264编码 1.1 为何编码? 从存储角度和网络传输以及通用性 3个角度,压缩已经成了不可或缺的动作.压缩编码最基本的指标,就是压缩比. 压缩比通常都是小于1(如果等于或者大于1,是不是就 ...

  6. 音视频开发(13)---视频监控系统必须知道的一些基础知识

    视频监控系统必须知道的一些基础知识 前言: 在视频监控系统中,视频文件的传输带宽很重要,那视频文件的传输带宽怎么计算呢?首先给大家介绍几个名词. 正文: (1)比特率 比特率是指每秒传送的比特(bit ...

  7. 音视频开发(9)--视频编解码的理论和实践

    视频编解码的理论和实践1:基础知识介绍   1.视频介绍 视频的本质是图像序列,根据视觉暂留的原理,每秒播放20~25张图像,就会形成连续平滑的视觉效果,人眼将无法区分其中单幅的图像,就这样连续的画面 ...

  8. Android视频开发进阶(part1-关于视频的那些术语)

    说到安卓的视频开发,大多数朋友们都是用着开源的播放器,或者安卓自带的native mediaplayer,拿来主义居多,我曾经也是... 最近这半年因为开始着手重构公司的播放器,也开始学习了很多视频音 ...

  9. html视频播放器加片头广告,怎样给微视频添加片头 在视频开头或结尾部分加广告视频—视频加片头片尾软件...

    深圳这两天简直是要热炸了,根本不敢出门,就连出办公室上厕所也免了.不过据中央气象台信息显示,今年第13号台风"天鸽"已经形成,希望台风的到来能带走高温,留下清凉!!!小编在看视频的 ...

最新文章

  1. WebService大讲堂之Axis2(2):复合类型数据的传递
  2. 一起学设计模式 - 命令模式
  3. PostgreSQL表的行数统计
  4. 使用Python为《围城》做一个图云
  5. java类转为update_[转] Maven更新父子模块的版本号, mvn versions:set
  6. hdu Robberies 2955 01背包
  7. 转载---ubutun18.04系统安装搜狗输入法
  8. Joost-体验全球的视频节目
  9. Android生成签名文件对应用签名 Android签名作用
  10. 数据库与excel数据对比
  11. qpython3下载不了_qpython3手机版
  12. AutoCAD2020安装教程
  13. Python基础之闭包函数
  14. 红米5plus刷android one,手机知识:红米5plus如何 红米5plus配置参数
  15. 嵌入式系统常用词汇统计表
  16. linux版电脑卡顿,教程方法;linux系统很卡的基本排查方法介绍电脑技巧-琪琪词资源网...
  17. 如何快速的开发单片机
  18. 新站的几种简单的推广方法
  19. 设计模式(一)—单例模式(附Java代码)
  20. P1365 WJMZBMR打osu! / Easy(维护两种期望的简单dp)

热门文章

  1. 和平精英服务器维护怎么办,和平精英登陆不了怎么办 和平精英无法登陆解决方法...
  2. 阿里云-邮件推送 配置 购买域名 配置域名
  3. 【图像超分辨率重建】——SAN论文精读笔记
  4. python有趣小程序 表白-python表白小程序
  5. Android——App版本控制PHP
  6. jetson-NX刷机
  7. ubuntu18.04 安装软件中心(software-center)
  8. 女生适合从事什么工作?程序员!
  9. uniapp 上传图片 + 预览图片 + 删除图片
  10. 克里斯蒂安贝尔_马特达蒙和克里斯蒂安贝尔 出演福特vs法拉利的传记片