抖音网红百叶窗短视频全程托管一键生成

核心提示最近朋友发给我一个抖音的视频问我程序能不能做,于是乎打开电脑先瞅瞅。这模板居然要6块钱,而且音乐、片段都限制太死了。不好不好,然后这视频看了几遍花了2个晚上搞出来一套Python全程素材内容自动判断一键生成的模板。我做这个的优点呢可以实现:

最近,一个朋友给我发了一段Tik Tok的视频,问我能不能做这个节目,于是我打开电脑先看了一遍。

这个模板居然要6块钱,音乐和剪辑太有限了。没有,然后我花了两个晚上把这个视频看了好几遍才想出一套可以一键自动判断素材内容全过程的Python模板。

我这样做有什么好处?可以认识到:

放入音乐并通过算法自动提取音乐的高潮部分,只需设置所需的秒数。您可以自由设置百叶窗的方向和数量。设置自由快门的边框颜色和显示效果。不说一点瑕疵,但是画面素材需要自己去找。其他的交给机器一键生成。

先看成品再看教程。喜欢100次以上,呈现git源地址。

水平快门随机分为五种颜色。

立式快门随机分为五种颜色。

按照惯例,导入一些必需的python支持库。

从moviepy.editor导入*从PIL导入操作系统导入图像导入全球导入库随机导入根据pdimport请求重新导入熊猫从urllib导入解析从bs4导入BeautifulSoupimport导入时间从pychorus导入find _ and _ output _ chorus导入shutil

全局设置

用于设置某些目录的文件夹、视频分辨率、每个视频的最大快门数、音频高潮的自动拦截和图像边框。

#整体分辨率设置full _ screen = # music path MP3 _ path = " MP3 _ data/" #图片保存地址image_data = "image/"#图片列表路径image _ cut _ list _ path = " image _ list/" #设置单幅图片的最大图片截止分数image_cut_num = 10#音乐高潮自动截取时间shigh_second = 25#帧设置mar = 10 #外框宽度像素,mar指定有效值,左、右、上、下设置不起作用。不透明度= 0.5 #帧透明度,0完全透明,1完全不透明。

清除空无用材料

为了保证素材内容每次都不重复或误用,最好清除空。

shutil . RM treeos . mkdirshutil . RM treeos . mkdir for infile in glob . glob):OS . remove

音频处理

提取音乐的高潮

chorus _ start _ sec = find _ and _ output _ chorus[0],mp3_path + "high.wav ",20)

获取音乐节拍列表。

#读取音频文件audio = AudioFileClip#获取音乐节拍x,Sr = librosa . load # Build beats frameset _ frames = librosa . onset . onset _ detect #将音乐节拍转换为秒onset _ times = librosa . frames _ to _ time #保留秒两分钟onset _ times =[round for I in onset _ times]# onset _ times

音乐节拍的递归分组

#音乐节拍的递归切分def func:temp = function _ cut _ list =[I for I in temp]# time list Append time time time time _ cut _ list[-1]。追加# time _ cut _ list

数据下载

爬行动物会自我修复。

自己爬,真的不能自己复制粘贴。

html = requests.gethtml.encoding="utf8"soup = BeautifulSoupreg = 'https://img2.,]|)+'img_down_list = re.findall[-1].text)for jpg_url in img_down_list: html = requests.get# print with open)) + ".jpg", 'wb') as file: file.write time.sleephtml = requests . get html . encoding = " utf8 " soup = beautiful soup reg = ' https://img 2。,]|)+' img _ down _ list = re . find all[-1]。text)for jpg _ URL in img _ down _ list:html = requests . get # print with open))+"。jpg ",' wb ')作为文件:file.write time.sleep

统一修改图片尺寸。

image _ path = " image/" image _ dir _ list = OS . listdir #设置2个图片时间线,2个用于覆盖1 image _ dir _ list _ 1 = image _ dir _ list[:len]image _ dir _ list _ 2 = image _ dir _ list[1:len+1]#所有图片统一大小为全屏对于image _ dir _ list _ 1+image _ dir _ list _ 2中的I:

利用图像制作视频背板

为什么要使用全局动态变量设置方法?你自己想想。

start _ time = 0n = 1 # Create Dynamic variable count image _ clip _ list =[]# Dynamic variable list for jpg,t in zip)):CVC = concatenate _ video clips #将背景音乐合成为MP4 audio = audiofileclipcv = CVC . set _ audio CVC . write _ video file

制作片段

垂直百叶窗切割方法

All_box_list是分割画面的像素。

#根据分段时间计算窗口大小box _ list =[]for I in range:# box _ list #获取所有拍点的盒子像素。all _ box _ list =[]for n in range):all _ box _ list[[,,,,,,,],...]

构建图像数据分割字典

data _ dict = { } data _ list =[]for n in range):

材料图像分割和分类

N = 1#为image _ dir _ list _ 2中的image _ name按像素剪切图片列表:#照片排序顺序image _ cut _ list _ = sorted,key = lambda I: int ',I)。组))

横向和纵向结果。

材料数据排列

df = PD . data frame df[" jpg "]= Image _ cut _ list _ # df . head #以递归方式对每张图片的起始时间temp = func,Image _ cut _ num)time _ cut _ list =[I for I in temp]#对time _ cut _ list中I的每组时序进行加扰:random . shuffle hff le _ list =[]for I in time _ cut _ list:for j in I:shuffle _ list . append df[" start "]=

数据的结果是这样的。看看能不能看懂。

视频生成

组织队列数据,添加视频剪辑和效果

#使用n = 1 image _ clip _ list = []用于全局变量计数范围内的I):

根据素材数据队列生成视频。

video _ base = VideoFileClipcvc = compositevideoclipcvc . write _ video file))+" . MP4 ",fps=30)

最终合成耗时不到2分钟。

 
友情链接
鄂ICP备19019357号-22