用 Python 做个小姐姐代码蹦迪视频
马哥Linux运维
共 4361字,需浏览 9分钟
· 2021-07-22
前言
一、核心功能设计
二、实现步骤
1. 下载视频
pip install you-get
you-get -o 本地保存路径 视频链接
2. 截取GIF并转换成ASCII字符
使用ASCII Animator将截取的GIF每一帧转换成ASCII。我们可以通过设置每100个像素宽度的字符数修改转换的字符密集程度。输出类型可以选择动画ASCII(.gif)
3. GIF重命名
import os
import re
import shutil
import cv2
from PIL import Image
import moviepy.editor as mpy
def rename_gif():
file_list = os.listdir("./temp") # 读取当前文件夹所有文件
# print(file_list)
print("检测到文件夹下图片:")
n = len(file_list)
num_list = []
num1 = num2 = 0
for i in range(n):
s = str(file_list[i])
if s[-4:] == ".gif": # 检查后缀
res = re.findall(r"\d+", s)
if res[0] == '1':
num1 += 1
if res[0] == '2':
num2 += 1
src = os.path.join(os.path.abspath('./temp/'), s) # 原先的图片名字
dst = os.path.join(os.path.abspath('./temp/'), res[0] + '-' + res[1]+'.gif') # 根据自己的需要重新命名
os.rename(src, dst) # 重命名,覆盖原先的名字
num_list.append(num1)
num_list.append(num2)
file_list = os.listdir("./temp") # 读取当前文件夹所有文件
for i in range(n):
s = str(file_list[i])
if s[-4:] == ".gif": # 检查后缀
res = re.findall(r"\d+", s)
src = os.path.join(os.path.abspath('./temp/'), s) # 原先的图片名字
a = int(res[0])-1
index = a*num_list[a-1]
dst = os.path.join(os.path.abspath('./temp/'), str(index + int(res[1])) + '.gif') # 根据自己的需要重新命名
os.rename(src, dst) # 重命名,覆盖原先的名字
4. gif转换为图片jpg
def gif2img(gif_path):
gifs = os.listdir(gif_path)
gifs.sort(key=lambda x: int(x[:-4])) # 以名称字符串的数字从小到大排序
for gif in gifs:
im = Image.open(gif_path+gif) # 打开gif格式的图片
im = im.convert('RGB')
if not os.path.exists('./img'):
os.makedirs('./img')
for i, frame in enumerate(iter_frames(im)):
frame.save('./img/' + gif[0:-4] + '.jpg', **frame.info) # 保存成jpg格式
5. 合成代码舞视频
pip install opencv-python
我们可以将图片文件夹的路径传入参数,还可以通过fps设置每秒多少张图片。
def charts2video(img_path, video_path):
"""将给定目录下的图片转成视频
Args:
img_path: 图片路径
video_path: 输出视频的路径和名称
Returns: 图片转成的视频
"""
images = os.listdir(img_path)
images.sort(key=lambda x: int(x[:-4])) # 以名称字符串的数字从小到大排序
fps = 12 # 帧数
fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V')
im = Image.open(img_path + images[0])
video_writer = cv2.VideoWriter(video_path, fourcc, fps, im.size)
for img_i in images:
frame = cv2.imread(img_path + img_i)
print('开始将 ' + img_i + ' 加入视频\n')
video_writer.write(frame) # 注意:图片尺寸必须和视频尺寸一样,不然不会被加入视频中!!!
video_writer.release()
6. 添加背景音乐
def add_music():
# 读取代码视频
my_clip = mpy.VideoFileClip('asc.mp4')
# 截取背景音乐
audio_background = mpy.AudioFileClip('dance.mp4').subclip(0, 60)
audio_background.write_audiofile('bk.mp3')
# 视频中插入音频
final_clip = my_clip.set_audio(audio_background)
# 保存最终视频
final_clip.write_videofile('char_video.mp4')
本文链接:https://blog.csdn.net/hhladminhhl/article/details/118463344
文章转载:Python编程学习圈
(版权归原作者所有,侵删)
点击下方“阅读原文”查看更多
评论
金融研究 | 使用Python测量关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
金融研究(更新) | 使用Python构建关键审计事项的「信息含量」
Tips: 公众号推送后内容只能更改一次,且只能改20字符。如果内容出问题,或者想更新内容, 只能重复推送。为了更好的阅读体验,建议阅读本文博客版, 链接地址https://textdata.cn/blog/2023-01-13-information-content-of-critical-aud
大邓和他的Python
0
阿里的同事,写的代码真 TMD 优雅!
通过这篇文章你将了解到整洁的代码对项目、公司和你的重要性,以及如何书写整洁的代码.通过命名、类、函数、测试这四个章节,使我们的代码变得整洁.1、为什么要保持代码整洁?不整洁的代码随着时间的增加而增加时,生产力会随之降低.导致的结果就是:代码不易扩展或扩展容易引发其他问题程序崩溃加班增加公司成本(加人
Java专栏
1
老爸嘲讽我了,写破代码一年就挣十几万,他在工地带50个工人,一个月光人头费就3万,让我滚回去跟他干!
点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群来自:网络,侵删有个网友的父亲是做工程的,天天就嘲笑他,说他天天写着破代码有啥用,一年就拿个十多万的死工资,然后告诉他自己在工地里面带了50个工人,一个月能抽三万
程序源代码
0
谷歌员工爆料 Python 基础团队原地解散
转自 | 机器之心编辑 | 蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Tho
机器学习算法与Python实战
0
五一抢票难,Github上这几个Python项目,你可以试试
又到五一长假啦(虽然其实就放了1天),大家是打算家里蹲or出去玩,又或者是在公司加班呢...今天给大家介绍三个和12306相关的项目,看看你是否用得上。/01/ py12306py12306购票助手,顾名思义,12306买票的~需要在python 3.6以上版本运行程序。1. 安装依赖gi
Crossin的编程教室
0
谷歌员工爆料Python基础团队原地解散
机器之心报道编辑:蛋酱什么?谷歌解雇了整个 Python 基础团队?「当与你直接共事的每个人,包括你的主管,都被裁员 —— 哦,是职位被削减,而你被要求安排他们的替代者入职,这些人被告知在不同的国家担任同样的职位,但他们并不为此感到高兴,这是很艰难的一天。」发布这一动态的 Thomas Wouter
机器学习初学者
0
Python加速运行技巧
Python 是一种脚本语言,相比 C/C++ 这样的编译语言,在效率和性能方面存在一些不足。但是,有很多时候,Python 的效率并没有想象中的那么夸张。本文对一些 Python 代码加速运行的技巧进行整理。 0. 代码优化原则 本文会介绍不少的 Python 代码加速运行的技巧。在深入代码优化细
机器学习算法与Python实战
0