首页 > 数据库 > 数据库开发技术 > 《舞蹈生》《披荆斩棘的哥哥》跳舞视频——转字符画
正好周末休息可以把跳舞视频转成对应的字符画,熟悉一下python的视频处理技巧。
效果展示
1.1《舞蹈生》金晨舞蹈秀
1.2《披荆斩棘的哥哥》群舞
1.3《披荆斩棘的哥哥》张晋独舞
VideoWriter函数语法展示
python生成字符画分模块讲解
3.1 把图片合成视频
3.2 在视频中加入音频
3.3 在指定目录下生成新的文件夹

在正式进入代码讲解之前,先来看下本文的实现效果。
2 《披荆斩棘的哥哥》群舞
3 《披荆斩棘的哥哥》张晋独舞

为了大家更好地理解后续代码,把本文用到比较重要的函数在本小节展示。
大家可以先看看把图片添加到视频中去的函数VideoWriter,具体释义如下:
VideoWriter(filename, fourcc, fps, frameSize[, isColor])
本文整体思路是:把原始跳舞视频按固定的帧转成图片——把图片中的像素替换成你想替换的字符——把替换后的图片合成视频——把视频加上背景音乐。
把图片中的像素替换成你想替换的字符在带音乐字符画+带颜色字符画—情人节表白代码一文中已进行讲述,本文不再赘述。
1 把图片合并成视频
首先定义一个图片转视频的函数,应用VideoWriter把字符图片拼接到一个视频中去。
#图片转视频import osimport cv2import numpy as npfrom PIL import Imagedef pic2video(pic_path, vid_path):'''此函数是把图片合并成视频pic_path:存储图片的文件路径vid_path:由存储图片生成的视频文件路径'''fps = 25for i in os.listdir(pic_path):os.chdir(pic_path)im =Image.open(i)size = im.sizebreakvid_w = cv2.VideoWriter(vid_path, cv2.VideoWriter_fourcc(*'XVID'), fps, size)for i in os.listdir(pic_path):img = cv2.imread(i)vid_w.write(img)vid_w.release()print("==========视频制作已完成===========")

pic_path = r"F:\公众号\39.舞蹈生\video_to_str_png"vid_path = r"F:\公众号\39.舞蹈生\pic_to_video" + '\\' + 'pic_to_vidoe.mp4'pic2video(pic_path, vid_path)
即可在F:\公众号\39.舞蹈生\pic_to_video文件夹中生成pic_to_vidoe.mp4文件。
你可以根据自己电脑中的存放目录进行修改,比如先在F盘中依次建F:\公众号\39.舞蹈生文件夹,把原始视频放到该目录。
2 在视频中加入音频
接下来把原始视频中的音乐和pic_to_vidoe.mp4文件进行合并,生成第一小节中的效果展示视频。
合并函数为comp_mvid,具体语句如下:
#音频和视频合成import osfrom moviepy.editor import CompositeAudioClip, VideoFileClip, AudioFileClipdef comp_mvid(video_path, music_path, comp_path):'''此函数是为视频配背景音乐video_path:视频地址music_path:音频地址comp_path:合成的视频地址|'''video_path = video_path #视频文件video = VideoFileClip(video_path)videos = video.set_audio(AudioFileClip(music_path)) #音频文件videos.write_videofile(comp_path, audio_codec='aac') #保存合成视频,注意加上参数audio_codec='aac',否则音频无声音
vid_path = r'F:\公众号\39.舞蹈生\pic_to_video' + '\\' + 'pic_to_vidoe.mp4' #视频文件music_path = r'F:\公众号\39.舞蹈生' + '\\' + 'video1.mp4'comp_path = r'F:\公众号\39.舞蹈生\pic_to_video' + '\\' + 'compose1.mp4'comp_mvid(vid_path, music_path, comp_path)

3 在指定目录下生成新的文件夹
最后把该文代码中在其它项目也常用的一个python小技巧单独拿出来分享一下。
我们可能在当前python工作目录中要新建一个文件夹。
比如文件夹的名称为video_to_str_png,你可以在代码中运行如下语句即可生成。
File_Path = os.getcwd() + '\\' + 'video_to_str_png\\'if not os.path.exists(File_Path):os.makedirs(File_Path)
。https://zhuanlan.zhihu.com/p/144256746https://www.yisu.com/zixun/321264.htmlhttps://https://www.jb51.net/article/155379.htmhttps://blog.csdn.net/qq_29726359/article/details/86774759https://blog.csdn.net/weixin_42486139/article/details/114660850https://haokan.baidu.com/web/search/page?query=%E6%8A%AB%E8%8D%86%E6%96%A9%E6%A3%98%E7%9A%84%E5%93%A5%E5%93%A5%E8%B7%B3%E8%88%9Ehttps://blog.csdn.net/qq_27802435/article/details/82423062?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_baidulandingword~default-0.base&spm=1001.2101.3001.424


扫一扫关注我
13162366985
投稿微信号、手机号
原文作者:阿黎逸阳的代码;如有侵权,请联系管理员删除。