鱼C论坛

 找回密码
 立即注册
查看: 5463|回复: 24

[技术交流] Python 版本代码舞~猛男爱你

[复制链接]
发表于 2022-5-30 08:58:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 不二如是 于 2022-5-31 09:11 编辑

在线视频:




                               
登录/注册后可看大图


2022-05-30_16-16-47.jpg

游客,如果您要查看本帖隐藏内容请回复


上面视频中通过 JavaScript 实现用字符来跳舞,这次我们用 Python 来实现。

通常处理图片/音视/视频都是 pillow+opencv+ffmpeg 的组合。

主要分为以下几大步:

  • 将原视频转成字符图片
  • 将字符图片合成新视频
  • 从原视频中提取出背景音乐
  • 将背景音乐添加到新视频中
  • 如果没配置保留则清除过程文件

  1. def __init__(self):
  2.         self.config_dict = {
  3.             # 原视频文件
  4.             "input_file": "resource.mp4",
  5.             # 中间文件存放目录
  6.             "cache_dir": "cache",
  7.             # 是否保留过程文件。True--保留,False--不保留
  8.             "save_cache_flag": False,
  9.             # 使用使用的字符集
  10.             "ascii_char_list": list("01B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:oa+>!:+. "),
  11.         }

  12.     # 第一步从函数,将像素转换为字符
  13.     # 调用栈:video_2_txt_jpg -> txt_2_image -> rgb_2_char
  14.     def rgb_2_char(self, r, g, b, alpha=256):
  15.         if alpha == 0:
  16.             return ''
  17.         length = len(self.config_dict["ascii_char_list"])
  18.         gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
  19.         unit = (256.0 + 1) / length
  20.         return self.config_dict["ascii_char_list"][int(gray / unit)]
复制代码

每一步中还有很多细化操作,注释见源码: dance.py.zip (2.84 KB, 下载次数: 16, 售价: 3 鱼币)

如果 OpenCV 安不上,可以试试国内清华的镜像:

  1. pip install opencv-contrib-python -i https://pypi.mirrors.ustc.edu.cn/simple/
复制代码


关于 OpenCV 的玩法可以看:安装 OpenCV 模块【人工智能】

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-30 16:34:42 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-30 17:19:43 | 显示全部楼层
Python 好好玩

我去年写了一个类似的模块:https://fishc.com.cn/thread-202561-1-1.html
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-30 17:30:02 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-30 18:56:48 | 显示全部楼层
Python 我最爱
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-30 19:20:31 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-30 19:35:41 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-30 19:44:32 | 显示全部楼层
unindent does not match any outer indentation level
第十五行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-31 09:28:29 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-31 11:02:59 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-31 15:08:54 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-31 17:18:14 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-31 17:21:53 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-31 17:51:46 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-31 22:10:28 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-23 14:31:01 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-24 11:17:36 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-6-24 11:37:01 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-11 10:48:26 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-7-16 11:57:20 | 显示全部楼层
Python 好好玩
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 23:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表