参考:
https://zhuanlan.zhihu.com/p/69839386
https://github.com/AndersonBY/FlashText

安装依赖可能麻烦点:

运行:
python3 FlashText1.py --text /Users/lonng/youtube_v/2a_kor1.txt --music /Users/lonng/Desktop/v+/mp3/Smile.mp3 --output /Users/lonng/Desktop/v+/vedio/2a_kor7.mp4 --width 1280 --height 720
import librosa
from moviepy.editor import *
import jieba
import click@click.command()
@click.option('--width', prompt='Width', default=360, help='The width of video clips')
@click.option('--height', prompt='Height', default=240, help='The height of video clips')
@click.option('--text', prompt='Text file', default='text.txt', help='The source text file')
@click.option('--music', prompt='Music file', default='改革春风吹满地.mp3', help='The music file')
@click.option('--word_split', prompt='Split words', default=False, help='Split words or not')
@click.option('--output', prompt='Output file', default='FlashText.mp4', help='The output file name')
def main(width, height, text, music, word_split, output):with open(text, 'r', encoding='utf-8') as f:text_str = f.read()if word_split:seg_list = jieba.lcut(text_str)punct = set(''':!),.:;?]}¢'"、。〉》」』】〕〗〞︰︱︳﹐、﹒﹔﹕﹖﹗﹚﹜﹞!),.:;?|}︴︶︸︺︼︾﹀﹂﹄﹏、~¢々‖•·ˇˉ―--′’”([{£¥'"‵〈《「『【〔〖([{£¥〝︵︷︹︻︽︿﹁﹃﹙﹛﹝({“‘-—_…/\\''')word_list = list(filter(lambda x: x not in punct, seg_list))else:word_list = text_str.split('\n')y, sr = librosa.load(music)tempo, beats = librosa.beat.beat_track(y=y, sr=sr)beat_times = list(librosa.frames_to_time(beats, sr=sr))beat_times.append(beat_times[-1] + 1)# print(beat_times)clips = []for index, beat_time in enumerate(beat_times[:-1]):if index >= len(word_list)//2 or index >= len(beat_times)//2:breakprint(f'{index + 1}/{len(beat_times)}——{word_list[index]}')text_clip = TextClip('\n'.join('%s' %id for id in  word_list[index*2-2 if index!=0 else 0:index*2 if index!=0 else 2]),fontsize=width // 8,color='white',size=(width, height),method='caption',font='msyhbd.ttc'# font = '/System/Library/Fonts/AppleSDGothicNeo.ttc'# font = '/System/Library/Fonts/Supplemental/AppleGothic.ttf')\.set_start(beat_times[index*2-2 if index!=0 else 0])\.set_end(beat_times[index*2-1 if index!=0 else 1])text_clip = text_clip.set_pos('center')clips.append(text_clip)final_clip = CompositeVideoClip(clips)audio_clip = AudioFileClip(music).subclip(0,int(final_clip.duration))final_video = final_clip.set_audio(audio_clip)final_video.write_videofile(output,fps=30,codec='mpeg4',preset='ultrafast',audio_codec="libmp3lame",threads=4)if __name__ == '__main__':main()

多字体版:

print('Importing library. Please wait.')
import librosa
from moviepy.editor import *
import jieba
import click@click.command()
@click.option('--width', prompt='Width', default=360, help='The width of video clips')
@click.option('--height', prompt='Height', default=240, help='The height of video clips')
@click.option('--text', prompt='Text file', default='text.txt', help='The source text file')
@click.option('--music', prompt='Music file', default='改革春风吹满地.mp3', help='The music file')
@click.option('--word_split', prompt='Split words', default=False, help='Split words or not')
@click.option('--output', prompt='Output file', default='FlashText.mp4', help='The output file name')
def main(width, height, text, music, word_split, output):with open(text, 'r', encoding='utf-8') as f:text_str = f.read()if word_split:seg_list = jieba.lcut(text_str)punct = set(''':!),.:;?]}¢'"、。〉》」』】〕〗〞︰︱︳﹐、﹒﹔﹕﹖﹗﹚﹜﹞!),.:;?|}︴︶︸︺︼︾﹀﹂﹄﹏、~¢々‖•·ˇˉ―--′’”([{£¥'"‵〈《「『【〔〖([{£¥〝︵︷︹︻︽︿﹁﹃﹙﹛﹝({“‘-—_…/\\''')word_list = list(filter(lambda x: x not in punct, seg_list))else:word_list = text_str.split('\n')y, sr = librosa.load(music)tempo, beats = librosa.beat.beat_track(y=y, sr=sr)beat_times = list(librosa.frames_to_time(beats, sr=sr))beat_times.append(beat_times[-1] + 1)# print(beat_times)clips = []for index, beat_time in enumerate(beat_times[:-1]):if index >= len(word_list):breakprint(f'{index + 1}/{len(beat_times)}——{word_list[index]}')text_clip = TextClip(word_list[index],fontsize=width // 8,color='white',size=(width, height),method='caption',# font='msyhbd.ttc'  #中英、中日# font = '/System/Library/Fonts/Thonburi.ttc'   #越语# font = '/Users/lonng/Desktop/v+/字体/泰语.TTF'   #泰语# font = '/Users/lonng/Desktop/v+/字体/韩国字体.ttf'   #韩语font = "/Users/lonng/Desktop/v+/字体/acherus_grotesque_-_regular.otf"   #德法西意)\.set_start(beat_times[index*2])\.set_end(beat_times[index*2+2])text_clip = text_clip.set_pos('center')clips.append(text_clip)final_clip = CompositeVideoClip(clips)audio_clip = AudioFileClip(music).subclip(0,int(final_clip.duration))final_video = final_clip.set_audio(audio_clip)final_video.write_videofile(output,fps=30,codec='mpeg4',preset='ultrafast',audio_codec="libmp3lame",threads=4)if __name__ == '__main__':main()

视频合并代码:

from moviepy.editor import *v1 = VideoFileClip('/Users/lonng/Desktop/v+/片头6.mp4')
v2 = VideoFileClip('/Users/lonng/Desktop/v+/vedio/2a_kor7.mp4')finalclip = concatenate_videoclips([v1,v2])
finalclip.write_videofile('/Users/lonng/Desktop/v+/vedio/2a_kor1.mp4',audio_codec='aac')

视频效果参考:https://www.youtube.com/watch?v=NjSGf2DtZb0

python 文字快闪视频制作相关推荐

  1. html快闪软件制作,快闪视频制作方法

    猜你喜欢: 快闪视频制作软件推荐: 目录: 右糖是一个电子音乐相册制作网站,拥有海量的视频模板,你可以在右糖上传照片然后快速生成一个快闪视频.只需要找到一个心意的快闪视频模板,然后上传照片之后进行渲染 ...

  2. 介绍一个手机端快闪视频制作工具

    快闪视频助手,制作图文快闪视频, app store: https://itunes.apple.com/us/app/%E6%96%87%E5%AD%97%E5%BF%AB%E9%97%AA%E5% ...

  3. laydate点击输入框闪一下不见了_爱剪辑:如何制作抖音、苹果风格的快闪视频...

    不知道大家有没有看过iPhone的宣传片,视频开头有几十秒的快闪字幕,当时视频一出来就有很多剪刀手求教程,因为这个效果不仅酷炫,用途还很广,可以用于:日常生活介绍.产品介绍.搞笑段子...... 今天 ...

  4. 时尚主题快闪视频相册视频案例制作教程(可转载)

    视频,通常都是我们记录记忆的最好方式,但是想要在视频中抓住最美的瞬间,却不是那么容易的事.不过在使用Vegas之后,你就会对视频相册的制作有一个全新的认识.好了,废话不多说,小编今天就教一下大家怎么制 ...

  5. fcpx快闪插件推荐,让视频片头片尾更动感

    FCPX快闪插件是一款为苹果Final Cut Pro X软件开发的过渡特效插件,可以帮助用户在视频剪辑中添加各种炫酷的快闪转场效果.以下是不错的fcpx快闪插件推荐: FCPX插件-快闪欢快节奏图文 ...

  6. epic打开一直闪_教你用意派Epub360做酷炫的快闪H5!(附快闪H5模板)

    近来,抖音国际版Tik Tok一直深陷舆论漩涡,引起了吃瓜群众们的热烈讨论.作为短视频中的佼佼者,抖音带火了一大波网络红人.土味视频,也为快闪等创意视频的发展提供了一方沃土.而随着快闪视频的普及,快闪 ...

  7. 【Python】Python视频制作工具Manim入门,基础形状详细介绍

    来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 01写在前面 最近几个月,我在微信视频号「价值前瞻」和「Python数据之道」发布了一些视频,有不少同学问到这些视频是怎么做的,用 ...

  8. Python视频制作工具Manim入门,文本使用详细介绍

    来源:Python数据之道 (ID:PyDataLab) 作者:阳哥 01写在前面 最近一段时间,我在微信视频号「价值前瞻」和「Python数据之道」发布了一些视频,有不少同学问到这些视频是怎么做的, ...

  9. Pr 案例:制作快闪转场效果

    快闪转场,是当今比较流行的一种视频过渡效果. 以下介绍的转场方法是基于分别处理两个相邻小片段所形成的转场效果,而不是传统意义上的两个剪辑之间的叠化式转场. 效果演示 ◆  ◆  ◆ 制作要点 要点 1 ...

最新文章

  1. 使用Chrome浏览器和FF浏览器查看ajax发送以及从服务器传回的数据
  2. Applet 大文件上传
  3. vue兼容ie10问题并且node——module中出现es6语法如何解决
  4. (软件工程复习核心重点)第四章总体设计-第四节:描绘软件结构的图形工具
  5. (76)FPGA面试题-Verilog实现下降沿检测
  6. json文件解析工具_JSON格式的文本文件,怎么解析不成功?
  7. 只需一行代码,就能导入所有的Python库?
  8. 清华周界详解《基于图神经网络的事实验证》 | 百万人学 AI
  9. Sip 响应状态码功能对照详解
  10. 用python调用r包
  11. VS C++控制台程序 错误 fatal error C1083: 无法打开包括文件 解决办法
  12. 优傲优化福特汽车装配线生产效率
  13. 一文熟悉 Go 的循环结构 —— for 循环
  14. 本地.m3u8播放器实现
  15. win10 如何扫描,win10 如何打印,win10找到设备和打印机,
  16. package.json文件是个什么东东?
  17. 7段均衡器最佳参数_7段均衡器怎么调能达到最佳效果?
  18. 0基础学原画多久入行?看看你还差什么?
  19. 优秀生被批评后“自闭”一个月 挫折教育不可少
  20. 百度技术沙龙(第2期)- 2. 互联网应用服务扩展的一点经验(转载)

热门文章

  1. ht城市介绍人口数量Html,城市人口热力图 城市热力图查询
  2. 交通仿真软件国内外详情分析及发展概述
  3. js中excel模板下载
  4. 12升19V 24V 36V 100V大功率升压电源DC-DC 大功率升压方案
  5. python怎么重复画圆_重画圆Python
  6. Greenplum--Triggering FTS prob故障检测原理
  7. 交换机指示灯状态说明
  8. Chrome漏洞分析与利用(三)——Issue-1062091漏洞分析
  9. 香港windows云服务器下编译webrtc
  10. 锐捷密码忘了!-锐捷密码查看器