别眨眼!用Python制作漂亮小姐姐的跳舞视频!

实战小项目 | Python制作词云跳舞,刘畊宏男孩女孩看过来~ 当Python程序员成为刘畊宏男孩\女孩,词云跳舞就出来了~ 阅读详情

哈喽~大家好,我是恰恰,又到了Python有趣的学习时间啦!我发现自从各种短视频平台出来以后,基本上大家空闲是时间都在刷抖音看视频,所以恰恰又开始琢磨,能用Python做些与视频相关的什么事呢?所以就马上行动起来啦~

视频来源:

【紫颜】见过仙女蹦迪吗 【千盏】

一、核心功能设计

总体来说,我们需要分为以下几步完成:

  1. 图片

    从B站上把小姐姐的视频下载下来

    对视频进行截取GIF,把截取的GIF进行ASCII字符转换

    把转换的字符gif根据每一帧的顺序重命名排序

    将排序后的帧gif转换为图片

    将字符图片合并成视频

    视频添加背景音乐

    图片

二、实现步骤

1. 下载视频

首先我们需要准备工作,安装you-get用来下载视频。

pip install you-get

图片

安装完成后,通过you-get将视频下载到本地。

仙女姐姐蹦迪视频链接:

https://www.bilibili.com/video/BV124411Q7iV

you-get -o 本地保存路径 视频链接 

图片

这样我们就把视频成功下载到本地了。
图片

2. 截取GIF并转换成ASCII字符

接下来我们要将下载的视频进行GIF截取,方法也比较多,用python也可以实现。

因为后面需要把GIF转成ASCII字符,截取的GIF时长尽量不能太长,所以这里就介绍通过迅雷播放器自带的gif截取工具,

每次截取20s。
图片

将每段截取出来之后, 可以按照顺序1 2 3将gif命名。

图片


图片

使用ASCII Animator将截取的GIF每一帧转换成ASCII。我们可以通过设置每100个像素宽度的字符数修改转换的字符密集程度。输出类型可以选择动画ASCII(.gif)
图片

我们可以在目录文件下找到temp文件,里面就是存储的每个gif中每一帧转换的ASCII的gif。下面我们就是需要处理这些ASCII的gif,

可以将文件夹拷贝到python项目下面。

图片

3. GIF重命名

老规矩,最开始我们把后面要用到的库全部导入。

import os
import re
import shutil
import cv2
from PIL import Image
import moviepy.editor as mpy

所有转换成功的ASCII的gif已经拿到了,为了后面我们将图片合并成视频,接下来我们就要把这些gif进行排序。

我们先从temp文件夹中读取,筛选出所有后缀名是 .gif 的,然后根据命名规则,将这些gif重命名,方便后面排序

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)  # 重命名,覆盖原先的名字

gif重命名之后,所有的gif都已经按照每一帧的顺序排好了。后面我们合成视频的时候,只要根据图片的名称来进行合并添加就可以了。


图片

4. gif转换为图片jpg

接下来,我们要把按帧顺序排列的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. 合成代码舞视频

图片合成视频,这里我们使用python-openvc模块实现,同样如果之前没有安装的小伙伴,需要先安装下。

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. 添加背景音乐

代码舞已经完成了,最后一步就是把视频中的背景音乐添加到代码舞中。我们使用的是moviepy 模块,截取原视频的背景音乐并保存,

最后再将代码舞视频中插入音频保存。

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')

完成到这一步由代码组成的视频就完成啦~关于学习Python其实是一件有趣的事,所以大家一定要多去研究,想要达成什么效果做什么事都可以想想,Python是否可以完成呢?久而久之的钻研就孰能生巧啦!Python并没有想象中的难和枯燥,Python真的就是除了不能生孩子什么都能做哈哈,所以如此有用的一项技能大家赶紧学起来哦~

后续也会更新其他Python相关知识,喜欢的点个关注,评论点一下赞哦~谢谢大家啦!

趣味python之print做会动的皮卡丘 试试用print来画出皮卡丘并且让他动起来也作为小白学习python的一个入门小项目吧 先看看结果图: 首先,我们要有一个皮卡丘~ print(' へ     /|') print('  /\7    ∠_/') print('  / │   / /') print(' │ Z _,< /   /`ヽ') print(' │     ヽ   /  〉') print('  Y     ` ... 阅读详情

相关推荐

微软的跳舞小人,在桌面上随着音乐起舞

微软的跳舞小人,在桌面上随着音乐起舞。 安装后播放MUSIC 就有个美女跳舞,音乐停止美女自动隐藏! 挺好玩的. 微软出品

宅男福利!我用Python做了一个B站跳舞的小姐姐,满屏的美腿!

宅男福利!我用Python做了一个B站跳舞的小姐姐,满屏的美腿!

python03011的博客 3834

python制作抖音字符画视频

python制作抖音很火的字符画视频。一共有两个脚本,main.py负责将视频生成字符画图片序列,make_vedio.py负责将生成的字符画图片序列生成为视频。代码中的文件和目录名称请自行修改,不建议跑尺寸很大的视频,速度会比较慢,需要安装opencv-python和pillow两个包。

ASCII 魔法:用字符拼出跳动的心形(支持调整频率)

我们先定义一个函数来生成不同大小的心形图案。这里,我们通过数学公式来计算每个字符的位置,从而生成相应的 ASCII 图案。heart = []line = ""else:通过这个项目,我们不仅学习了如何使用 ASCII 字符来构建图案,还掌握了如何使用 Python 实现动画效果以及控制动画的频率。希望这个有趣的小项目能激发你对编程的更多兴趣,让你在编程的道路上不断探索和创新。你可以将上述代码保存为一个 Python 文件(例如),然后在命令行中运行,按照提示输入跳动的频率,就能看到跳动的心形啦!

2301_76277481的博客 752

Python-用算法生成舞蹈动画

用算法生成舞蹈动画

python制作抖音代码舞

主要为大家详细介绍了python制作抖音代码舞的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

用 Python 制作“会跳舞”的动态图表

在 Python 中可以使用matplotlib和plotly。

tmapi 395

[Github]GitHub 2FA快速安全配置全攻略

GitHub强制要求用户启用双重身份验证(2FA)以提升代码安全。本文详细介绍了2FA的三种实现方式:TOTP应用验证(推荐)、SMS短信验证(备用)和硬件安全密钥(最安全),并提供了配置指南。特别推荐使用在线工具2FA.run快速测试TOTP功能。文章还涵盖恢复代码管理、企业级2FA策略制定以及常见问题解决方案,如时间同步问题、多设备同步等。通过强制2FA、定期审计和建立安全事件响应流程,开发者可构建更安全的代码管理体系。

冰茶的博客 2618

程序员幸福时刻,用Python做了一个B站跳舞的小姐姐,满屏的美腿!

周末在家,天气好冷好冷啊,我们这边都下雪了!宅在家里没有啥事情,于是炖了只老母鸡,补补身子。 一边炖鸡汤,一边用Python码些好玩的脚本。辛苦了一个周末,菜鸟哥写了一个好玩的小脚本,赶紧跟大家分享一下。 B站上的漂亮的小姐姐真的好多好多,今天我们来玩一个来抓取B站上跳舞的小姐姐视频,并利用视频中大家的弹幕来绘制一个跳动弹幕的舞蹈视频,非常炫酷~~一起来看看吧。 01.弹幕抓取 首先,我们选定一个弹幕比较多的小姐姐舞蹈视频,并下载该视频,同时,利用以下程序来抓取小姐姐视频中的弹幕信息。 上述程序中,首先.

weixin_46737755的博客 1779

保姆级教程:在RK3568开发板上手把手配置RMII百兆以太网DTS节点

本文提供了一份详细的RK3568开发板RMII百兆以太网DTS节点配置教程,涵盖基础概念解析、关键参数设置、实际操作步骤及常见问题排查。通过手把手指导,帮助开发者快速完成RK3568开发板的以太网配置,特别适合嵌入式系统开发者参考。

weixin_33686714的博客 137

告别手动操作!用Python脚本批量处理Siemens NX零件文件(导入/导出/移除参数)

本文详细介绍了如何利用Python脚本实现Siemens NX零件文件的批量处理,包括导入、导出和移除参数等操作。通过NX Open API和Python UF接口,工业设计师可以大幅提升工作效率,告别繁琐的手动操作。文章提供了完整的实战指南,涵盖环境配置、核心功能实现以及性能优化技巧,特别适合需要进行Siemens-NXUG二次开发的工程师参考。

weixin_28222493的博客 259

利用Python做一个漂亮女生词云跳舞视频

利用Python做一个漂亮小姐姐词云跳舞视频。实现思路:1. 下载视频 2. 获取弹幕内容 3. 从视频中提取图片 4. 利用百度AI进行人像分割 5. 小姐姐跳舞词云生成 6. 合成跳舞视频 7. 视频插入音频 B站上的漂亮的小姐姐真的好多好多,利用 you-get 大法下载了一个 B 站上跳舞的小姐姐视频,利用视频中的弹幕来制作一个漂亮小姐姐词云跳舞视频,一起来看看吧。

叶庭云 成为自己的光 1万+

大漠插件找图找字避坑手册:从ziku0.txt字库制作到易语言精准识别(附综合工具实操)

本文深入解析大漠插件在图像识别中的核心难点,提供从ziku0.txt字库精准制作到易语言高效调用的完整避坑指南。重点讲解如何利用大漠综合工具科学设置偏色与二值化参数,生成高质量色彩描述字符串,并分享识别失败的系统排查方法与进阶优化策略,旨在实现99%的稳定识别率。

weixin_29264201的博客 1206

利用Python做一个小姐姐词云跳舞视频

点击上方蓝色小字,关注“涛哥聊Python”重磅干货,第一时间送达来源:修炼Python每周三个人直播,想和我聊天的欢迎来约‍‍‍‍‍‍‍朝朝暮暮里,祝愿我们每个人都能沉淀过往,迎来新光,...

涛哥聊Python 795

基于 VS Code + CMake + Make + GNU工具链 + OpenOCD 的通用MCU开发环境搭建教程

以CH32V307(RISCV)和STM32F103(Cortex-M3)为例的Vscode+gnu单片机环境搭建。

余十三_的博客 2173

【AIGC】大模型面试高频考点09-大模型Agent框架

聚焦AIGC专业技术分享

一个内容严谨、方向前沿、极具实践价值的AI大模型技术分享站 1965

python源码案例 制作词云视频,通过词云图来看小姐姐跳舞

python源码案例 制作词云视频,通过词云图来看小姐姐跳舞

m0_37302966的博客 813

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

基于Verilog的8位CPU设计及UART扩展实现方案,包含完整的架构设计、核心代码实现和仿真验证方法

a_zxswer的博客 190

python制作代码舞视频来啦~

上一篇文章我们介绍了如何制作字符画视频,今天就来给大家介绍一下代码舞的视频制作首先是原版接着是黑白版的最后是彩色版的是不是看着很nice呢,哈哈哈哈第一步首先我们要准备一个视频,然后我们需要把视频转化为gif图片视频转化为gif的方式途径有很多,我这里是在这个网站里面转化的第二步在这里我们需要借助到一个工具 第一个框框是图片的位置,第二个框框是文件输出的位置,一般不需要改,上传图片后,我们点击Settings选项 Output type有三个选项,第一个是生成一个html文件,第二个是生成黑白的代码gif

m0_64336780的博客 6037

3D 韩系风格漫剧人设 | GPT-Image2 人设生成【附完整提示词】

宁姚同款清冷剑系美人,极致小巧鹅蛋脸,下颌线紧致纤细流畅,下巴小巧精致收窄,小脸衬得五官格外舒展,韩式水光肌,面部精细水光高光,鼻梁高光、鼻尖高光、面中苹果肌高光、唇珠高光,红棕色长卷发偏分大波浪,垂在一侧肩前,发量蓬松。发量丰厚蓬松有体积感,不贴头皮,几缕碎发自然垂落脸侧修饰脸型,长度过胸及背,发丝柔顺丝滑卷度自然,发尾自然垂落,身穿香槟色缎面挂脖长裙,挂脖设计无袖露肩露背,上半身围裹式荡领胸口垂褶,腰部堆褶收腰,修身直筒包臀裙长度到脚踝,缎面光泽感强垂坠感好,极简剪裁。纯白色背景,3D漫剧写实厚涂风。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 126

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Python之抖音快手代码舞--字符舞

先上效果,视频敬上: 字符舞: 代码舞 源代码: video_2_code_video.py import argparse import os import cv2 import subprocess from cv2 import VideoWriter_fourcc from PIL import Image, ImageFont, ImageDraw # 命令行输入参数处理 #

一个超会写Bug的程序猿的博客 5619

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

抖音python上的代码_抖音代码舞Python3实现

importargparseimportosimportcv2importsubprocessfrom cv2 importVideoWriter_fourccfrom PIL importImage, ImageFont, ImageDraw#命令行输入参数处理#aparser = argparse.ArgumentParser()#aparser.add_argument('file')#ap...

weixin_39602967的博客 541

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

抖音代码舞Python制作

一,效果图 2.转换代码 from img import Image ascil_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") table = ('#8XOHLTI)i=+;:,. ') # 对于灰度图像效果不错 img = image.ope...

qq_43295136的博客 1万+

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 395
上一篇: 太有趣了!五个处理图像的场景都是Python完成的
下一篇: 没有什么不可能!Python 30秒就能学会的漂亮短代码,你也可以!
Python_恰恰好
博客等级 码龄5年 378粉丝 28原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值