Python如何实现字幕挂载?本篇文章小编给大家分享一下Python实现字幕挂载代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

本文在Windows环境下!pnux只是不需要手动输入imagicmagick的位置!

需要用到的环境

python(基本上只要不是很老的就行)

pip(这个其实python版本>2.8.9或者>3.4的都自带了),可以通过cmd命令pip

-V查询是否安装了,没有的话就输入命令

需要用到的工具:

我用的是pycharm,用来写python代码的。

Fpe->setting->Project:Test->project

Interpreter:

点击右边的+号:在搜索栏输入需要用到的三方库,然后点击install:

需要用要的三方库

moviepy(在上面的pycharm工具中可以直接下载或者用pip指令pip install moviepy)

ImageMagick(1.去官网直接下http://www.imagemagick.org/script/download.php,根据你操作系统的版本,一路next,我记得有个add

to

path的选项!一定要勾选,因为他自动吧安装路径添加到环境变量path中了,不然就要手动去加path了。2.我的版本是64位的,不想去官网的可以用我的百度云下载:链接:https://pan.baidu.com/s/1jmwGVsDyXf2rotkDj_qJmA密码:uc98)

用俩个py文件

一个是AddSubtitles.py(启动类):

# 使用RealizeAddSubtitles类的方法

from core.RealizeAddSubtitles import RealizeAddSubtitles

if __name__ == '__main__':

'''调用方法示例'''

addSubtitles = RealizeAddSubtitles('d:/python/DownLoadVideo/Fong.mp4', 'd:/python/DownLoadVideo/Love.txt')

一个是ReapzeAddSubtitles.py(实现类)

from os.path import splitext, isfile

from moviepy.editor import (VideoFileClip,

TextClip,

CompositeVideoClip)

class RealizeAddSubtitles():

'''

合成字幕与视频

'''

def __init__(self, videoFile, txtFile):

self.src_video = videoFile

self.sentences = txtFile

# src_video = input('请输入视频文件路径')

# sentences = input('请输入字幕文件路径')

if not (isfile(self.src_video) and self.src_video.endswith(('.avi', '.mp4')) and isfile(

self.sentences) and self.sentences.endswith(

'.txt')):

print('视频仅支持avi以及mp4,字幕仅支持txt格式')

else:

video = VideoFileClip(self.src_video)

# 获取视频的宽度和高度

w, h = video.w, video.h

# 所有字幕剪辑

txts = []

with open(self.sentences, encoding='utf-8') as fp:

for line in fp:

sentences, start, span = line.split(': ')

start, span = map(float, (start, span))

txt = (TextClip(sentences, fontsize=40,

font='SimHei', size=(w - 20, 40),

align='center', color='white')

.set_position((10, h - 150))

.set_duration(span).set_start(start))

txts.append(txt)

# 合成视频,写入文件

video = CompositeVideoClip([video, *txts])

fn, ext = splitext(self.src_video)

video.write_videofile(f'{fn}_带字幕{ext}')

下面的图片是字幕文件的格式:字幕: 开始时间: 持续时间

如果报一个imagemagick

uninstall什么的错误,原因是因为windows下的imagemagick需要手动导入。

一般在pycharm中,是在你创建的项目中有个venv->pb->site-packages->moviepy->config_defaults.py。

将IMAGEMAGICK_BINARY后面的=号中的值手动改成你imagemagick安装的路径下的一个magick.exe。

列如:IMAGEMAGICK_BINARY

= r"D:pythonImageMagick-7.0.10-Q16-HDRImagick.exe"

python怎么加字幕_Python如何实现字幕挂载 Python实现字幕挂载代码示例相关推荐

  1. python求扇形面积_Python随机生成均匀分布在单位圆内的点代码示例

    Python有一随机函数可以产生[0,1)区间内的随机数,但是如果我们想生成随机分布在单位圆上的,那么我们可以首先生成随机分布在单位圆边上的点,然后随机调整每个点距离原点的距离,但是我们发现这个距离不 ...

  2. python tkinter计算器实例_Python编程使用tkinter模块实现计算器软件完整代码示例

    Python 提供了多个图形开发界面的库.Tkinter就是其中之一. Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数 ...

  3. python抢货程序_Python自动化xpath实现自动抢票抢货代码示例

    本篇文章小编给大家分享一下Python自动化xpath实现自动抢票抢货代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 总代码: for i i ...

  4. python kivy显示图片_python基于Kivy写一个图形桌面时钟程序代码示例

    本篇文章小编给大家分享一下python基于Kivy写一个图形桌面时钟程序代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Kivy 是一个开源的 ...

  5. python线条加粗_python 加粗

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 背景知识:docx文件的结构分为三层,1.docment对象表示整个文档: 2. ...

  6. python线条加粗_python标题加粗

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! u宋体) # 中文字体需再添加这个设置 doc.styles.font.size ...

  7. python until怎么用_python基础之从认识python到python的使用

    python的历史: python的创始人是吉多·范罗苏姆(Guido van Rossum),人称"龟叔",1989年圣诞节期间,Guido开始写Python语言的编译器.他希望 ...

  8. python replace函数用法_Python实现的从右到左字符串替换方法示例

    本文实例讲述了Python实现的从右到左字符串替换方法.分享给大家供大家参考,具体如下: 一 . 前言 需要用到,但是发现python没有从右边开始替换的内置方法,默认的replace只是从左边开始, ...

  9. python内置作用域_python内置金融数据Python 五点搞定作用域

    1.块级作用域 想想此时运行下面的程序会有输出吗?执行会成功吗?#块级作用域 if 1 == 1: name = "lzl" print(name) for i in range( ...

  10. python sort 多级排序_Python使用sort和class实现的多级排序功能示例

    本文实例讲述了Python使用sort和class实现的多级排序功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import random class Temp: ...

最新文章

  1. cwRsync文件双向同步问题
  2. 笔记:编程的一些建议 - 时间伙伴 - 博客园
  3. javaScrip第五天(1)
  4. 本月风味– Neo4j和Heroku
  5. leetcode - 101. 对称二叉树
  6. laravel代码提示:laravel-ide-helper
  7. 找规律 —— 英文篇
  8. 简易web服务器系统毕业论文设计,毕业论文 简易的WEB服务器的设计
  9. 汇编语言基础之二 - 各种寻址和过程进出简介
  10. 关于非堆内存申请的性能测试
  11. Linux 下安装 yum
  12. LSA和 PLSA学习笔记
  13. SpringCloud的认识和基本入门使用
  14. ExoPlayer播放器 开发者指南(官方权威指南译文)
  15. 智慧化工厂安全风险生产预警系统软件
  16. 谈企业信息化项目经理培训
  17. C#中Exception类的使用
  18. 第一范式,第二范式,第三范式,BCFN 详解
  19. Zbrush 风格化头发的工具
  20. Docker搭建企业内部私有云盘/开源网盘系统

热门文章

  1. Ubuntu20.04 联想拯救者RTX3060 配置显卡驱动CUDA pytorch
  2. Python入门必须知道的11个知识点!
  3. (自创) 一种新的轻量级文本标记语言 - MarkOwl
  4. 华为留不住人才,任正非痛心
  5. 在directx中如何设置垂直同步
  6. bulter机器人_盘点:外国仓库里的仓储物流机器人
  7. C语言入门-MOOC-作业-鞍点
  8. 网络爬虫实战:英雄联盟全人物图片爬取
  9. 记录下移动,联通,电信号段
  10. 榆林国好和电子计算机培训班,榆林考研培训班的好处和弊端