亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > Python抖音快手代碼舞(字符舞)的實現方法

Python抖音快手代碼舞(字符舞)的實現方法

熱門標簽:申請辦個400電話號碼 高德地圖標注字母 騰訊地圖標注有什么版本 深圳網絡外呼系統代理商 千呼ai電話機器人免費 柳州正規電銷機器人收費 鎮江人工外呼系統供應商 400電話辦理費用收費 外呼系統前面有錄音播放嗎

先上效果,視頻敬上:

字符舞:

代碼舞

源代碼:

video_2_code_video.py

import argparse
import os
import cv2
import subprocess
from cv2 import VideoWriter_fourcc
from PIL import Image, ImageFont, ImageDraw

# 命令行輸入參數處理
# aparser = argparse.ArgumentParser()
# aparser.add_argument('file')
# aparser.add_argument('-o','--output')
# aparser.add_argument('-f','--fps',type = float, default = 24)#幀
# aparser.add_argument('-s','--save',type = bool, nargs='?', default = False, const = True)
# 是否保留Cache文件,默認不保存

class Video2CodeVideo:
 def __init__(self):
 self.config_dict = {
  # 原視頻文件
  "input_file": "video/test.mp4",
  # 中間文件存放目錄
  "cache_dir": "cache",
  # 是否保留過程文件。True--保留,False--不保留
  "save_cache_flag": False,
  # 使用使用的字符集
  "ascii_char_list": list("01B%8WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~>i!lI;:oa+>!:+. "),
 }

 # 第一步從函數,將像素轉換為字符
 # 調用棧:video_2_txt_jpg -> txt_2_image -> rgb_2_char
 def rgb_2_char(self, r, g, b, alpha=256):
 if alpha == 0:
  return ''
 length = len(self.config_dict["ascii_char_list"])
 gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
 unit = (256.0 + 1) / length
 return self.config_dict["ascii_char_list"][int(gray / unit)]

 # 第一步從函數,將txt轉換為圖片
 # 調用棧:video_2_txt_jpg -> txt_2_image -> rgb_2_char
 def txt_2_image(self, file_name):
 im = Image.open(file_name).convert('RGB')
 # gif拆分后的圖像,需要轉換,否則報錯,由于gif分割后保存的是索引顏色
 raw_width = im.width
 raw_height = im.height
 width = int(raw_width / 6)
 height = int(raw_height / 15)
 im = im.resize((width, height), Image.NEAREST)

 txt = ""
 colors = []
 for i in range(height):
  for j in range(width):
  pixel = im.getpixel((j, i))
  colors.append((pixel[0], pixel[1], pixel[2]))
  if (len(pixel) == 4):
   txt += self.rgb_2_char(pixel[0], pixel[1], pixel[2], pixel[3])
  else:
   txt += self.rgb_2_char(pixel[0], pixel[1], pixel[2])
  txt += '\n'
  colors.append((255, 255, 255))

 im_txt = Image.new("RGB", (raw_width, raw_height), (255, 255, 255))
 dr = ImageDraw.Draw(im_txt)
 # font = ImageFont.truetype(os.path.join("fonts","漢儀楷體簡.ttf"),18)
 font = ImageFont.load_default().font
 x = y = 0
 # 獲取字體的寬高
 font_w, font_h = font.getsize(txt[1])
 font_h *= 1.37 # 調整后更佳
 # ImageDraw為每個ascii碼進行上色
 for i in range(len(txt)):
  if (txt[i] == '\n'):
  x += font_h
  y = -font_w
  # self, xy, text, fill = None, font = None, anchor = None,
  # *args, ** kwargs
  dr.text((y, x), txt[i], fill=colors[i])
  # dr.text((y, x), txt[i], font=font, fill=colors[i])
  y += font_w

 name = file_name
 # print(name + ' changed')
 im_txt.save(name)


 # 第一步,將原視頻轉成字符圖片
 # 調用棧:video_2_txt_jpg -> txt_2_image -> rgb_2_char
 def video_2_txt_jpg(self, file_name):
 vc = cv2.VideoCapture(file_name)
 c = 1
 if vc.isOpened():
  r, frame = vc.read()
  if not os.path.exists(self.config_dict["cache_dir"]):
  os.mkdir(self.config_dict["cache_dir"])
  os.chdir(self.config_dict["cache_dir"])
 else:
  r = False
 while r:
  cv2.imwrite(str(c) + '.jpg', frame)
  self.txt_2_image(str(c) + '.jpg') # 同時轉換為ascii圖
  r, frame = vc.read()
  c += 1
 os.chdir('..')
 return vc

 # 第二步,將字符圖片合成新視頻
 def txt_jpg_2_video(self, outfile_name, fps):
 fourcc = VideoWriter_fourcc(*"MJPG")

 images = os.listdir(self.config_dict["cache_dir"])
 im = Image.open(self.config_dict["cache_dir"] + '/' + images[0])
 vw = cv2.VideoWriter(outfile_name + '.avi', fourcc, fps, im.size)

 os.chdir(self.config_dict["cache_dir"])
 for image in range(len(images)):
  # Image.open(str(image)+'.jpg').convert("RGB").save(str(image)+'.jpg')
  frame = cv2.imread(str(image + 1) + '.jpg')
  vw.write(frame)
  # print(str(image + 1) + '.jpg' + ' finished')
 os.chdir('..')
 vw.release()

 # 第三步,從原視頻中提取出背景音樂
 def video_extract_mp3(self, file_name):
 outfile_name = file_name.split('.')[0] + '.mp3'
 subprocess.call('ffmpeg -i ' + file_name + ' -f mp3 -y ' + outfile_name, shell=True)

 # 第四步,將背景音樂添加到新視頻中
 def video_add_mp3(self, file_name, mp3_file):
 outfile_name = file_name.split('.')[0] + '-txt.mp4'
 subprocess.call('ffmpeg -i ' + file_name + ' -i ' + mp3_file + ' -strict -2 -f mp4 -y ' + outfile_name, shell=True)

 # 第五步,如果沒配置保留則清除過程文件
 def clean_cache_while_need(self):
 # 為了清晰+代碼比較短,直接寫成內部函數
 def remove_cache_dir(path):
  if os.path.exists(path):
  if os.path.isdir(path):
   dirs = os.listdir(path)
   for d in dirs:
   if os.path.isdir(path + '/' + d):
    remove_cache_dir(path + '/' + d)
   elif os.path.isfile(path + '/' + d):
    os.remove(path + '/' + d)
   os.rmdir(path)
   return
  elif os.path.isfile(path):
   os.remove(path)
  return
 # 為了清晰+代碼比較短,直接寫成內部函數
 def delete_middle_media_file():
  os.remove(self.config_dict["input_file"].split('.')[0] + '.mp3')
  os.remove(self.config_dict["input_file"].split('.')[0] + '.avi')
 # 如果沒配置保留則清除過程文件
 if not self.config_dict["save_cache_flag"]:
  remove_cache_dir(self.config_dict["cache_dir"])
  delete_middle_media_file()

 # 程序主要邏輯
 def main_logic(self):
 # 第一步,將原視頻轉成字符圖片
 vc = self.video_2_txt_jpg(self.config_dict["input_file"])
 # 獲取原視頻幀率
 fps = vc.get(cv2.CAP_PROP_FPS)
 # print(fps)
 vc.release()
 # 第二步,將字符圖片合成新視頻
 self.txt_jpg_2_video(self.config_dict["input_file"].split('.')[0], fps)
 print(self.config_dict["input_file"], self.config_dict["input_file"].split('.')[0] + '.mp3')
 # 第三步,從原視頻中提取出背景音樂
 self.video_extract_mp3(self.config_dict["input_file"])
 # 第四步,將背景音樂添加到新視頻中
 self.video_add_mp3(self.config_dict["input_file"].split('.')[0] + '.avi', self.config_dict["input_file"].split('.')[0] + '.mp3')
 # 第五步,如果沒配置保留則清除過程文件
 self.clean_cache_while_need()

if __name__ == '__main__':
 obj = Video2CodeVideo()
 obj.main_logic()

運行環境:

操作系統:win10

版本:Python 3.8.4

依賴庫:pip install opencv-python pillow

管理員權限安裝,我的已安裝過,顯示這樣:

依賴應用: ffpmeg(下載直接解壓、將bin目錄加到PATH環境變量)

小白式運行(大佬請裝瞎):

將上面的源代碼命名video_2_code_video.py,在同一目錄下新建文件夾video:

在video中放入要轉換的原視頻,命名test.mp4:

打開Python3.8

運行video_2_code_video.py,如下圖顯示表示正在運行:

會產生一些中間文件諸如:

經過漫長的等待,終于得償所愿:

test-txt.mp4就是所要的代碼舞啦:

總結 

到此這篇關于Python抖音快手代碼舞實現的文章就介紹到這了,更多相關Python抖音快手代碼舞內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python制作抖音代碼舞
  • python抖音表白程序源代碼
  • 使用python爬取抖音視頻列表信息
  • python一鍵去抖音視頻水印工具
  • python實現抖音視頻批量下載
  • python實現抖音點贊功能
  • python仿抖音表白神器
  • 我喜歡你 抖音表白程序python版
  • Python爬蟲 批量爬取下載抖音視頻代碼實例
  • python批量下載抖音視頻

標簽:哈爾濱 海南 平頂山 烏蘭察布 大慶 郴州 合肥 烏蘭察布

巨人網絡通訊聲明:本文標題《Python抖音快手代碼舞(字符舞)的實現方法》,本文關鍵詞  Python,抖音,快手,代碼,舞,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python抖音快手代碼舞(字符舞)的實現方法》相關的同類信息!
  • 本頁收集關于Python抖音快手代碼舞(字符舞)的實現方法的相關信息資訊供網民參考!
  • 推薦文章
    精品国产香蕉伊思人在线又爽又黄| 国产伦久视频免费观看 视频| 黄色免费三级| 日韩免费在线视频| 国产原创视频在线| 天天色色网| 日韩中文字幕一区二区不卡| 一级片免费在线观看视频| 久久国产精品只做精品| 久久精品欧美一区二区| 国产精品自拍亚洲| 韩国毛片| 欧美一级视频免费观看| 999久久狠狠免费精品| 999精品在线| 一级女性全黄久久生活片| 国产综合91天堂亚洲国产| 欧美国产日韩精品| 欧美激情一区二区三区视频| 国产麻豆精品高清在线播放| 国产欧美精品| 欧美激情一区二区三区视频 | 国产亚洲免费观看| 国产精品自拍亚洲| 欧美一级视| 免费国产一级特黄aa大片在线| 精品视频免费在线| 精品久久久久久综合网| 一级女性大黄生活片免费| 99久久精品国产高清一区二区| 九九九国产| 日本在线播放一区| 日韩免费在线视频| 日本免费区| 国产一区二区高清视频| 九九久久99| 久久久成人网| 成人高清免费| 国产欧美精品| 亚洲第一页乱| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 亚久久伊人精品青青草原2020| 精品国产亚一区二区三区| 精品久久久久久中文字幕2017| 精品久久久久久中文| 日韩av片免费播放| 欧美爱爱动态| 国产国语对白一级毛片| 天天色色网| 免费的黄色小视频| 日本免费区| 精品视频在线观看免费| 精品久久久久久中文| 91麻豆精品国产自产在线| 成人免费观看男女羞羞视频| 青青久热| 青青久久精品国产免费看| 国产精品自拍一区| 免费一级生活片| 麻豆系列 在线视频| 国产伦久视频免费观看视频| 日韩中文字幕在线观看视频| 国产视频一区二区在线播放| 国产网站免费观看| 欧美一区二区三区性| 一a一级片| 九九精品久久久久久久久| 国产一区二区高清视频| 韩国三级视频网站| 精品国产亚一区二区三区| 成人免费一级纶理片| 精品久久久久久中文字幕一区| 精品视频一区二区| 黄视频网站在线看| 成人影院久久久久久影院| 四虎久久精品国产| 久久国产精品自由自在| 欧美大片a一级毛片视频| 精品在线观看国产| 色综合久久手机在线| 午夜欧美成人久久久久久| 99色视频在线观看| 精品视频在线观看视频免费视频 | 国产成人精品影视| 成人免费一级纶理片| 高清一级毛片一本到免费观看| 日本免费区| 色综合久久天天综合绕观看| 亚洲精品中文字幕久久久久久| 日本伦理网站| 亚洲 欧美 成人日韩| 国产不卡福利| 深夜做爰性大片中文| 色综合久久久久综合体桃花网| 国产91精品系列在线观看| 青草国产在线观看| 97视频免费在线观看| 久久福利影视| 日本免费区| 午夜欧美成人久久久久久| 成人高清免费| 久久国产精品自线拍免费| 久久精品欧美一区二区| 黄色短视屏| 毛片高清| 欧美大片一区| 久久久久久久免费视频| 毛片高清| 成人影院一区二区三区| 欧美一区二区三区在线观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 一级毛片看真人在线视频| 成人在激情在线视频| 日日爽天天| 精品久久久久久综合网| 韩国三级视频网站| 天天做人人爱夜夜爽2020毛片| 亚州视频一区二区| 成人免费网站久久久| 免费毛片播放| 精品视频在线观看一区二区| 亚久久伊人精品青青草原2020| 午夜激情视频在线播放| 成人高清视频免费观看| 精品在线观看一区| 国产一区二区精品久久| 一级片免费在线观看视频| 欧美日本免费| 欧美一区二区三区在线观看| 毛片的网站| a级毛片免费观看网站| 日本免费看视频| 成人a级高清视频在线观看| 欧美日本国产| 国产91丝袜在线播放0| 免费国产在线观看| 国产极品精频在线观看| 黄视频网站在线观看| 成人高清视频在线观看| 久草免费在线观看| 国产麻豆精品hdvideoss| 黄视频网站免费观看| 午夜家庭影院| 久久精品免视看国产明星 | 久久99青青久久99久久| 九九精品影院| 国产伦久视频免费观看 视频| 日韩在线观看免费| 色综合久久天天综合| 国产原创视频在线| 精品久久久久久中文| 欧美日本免费| 99久久网站| 国产一区二区精品久久| 精品视频免费看| 午夜在线观看视频免费 成人| 国产精品免费久久| 欧美激情一区二区三区视频 | 欧美a免费| 欧美国产日韩久久久| 欧美激情一区二区三区视频 | 韩国三级香港三级日本三级| 国产麻豆精品免费视频| 黄视频网站在线看| 亚洲天堂在线播放| 香蕉视频久久| 在线观看导航| 精品国产一区二区三区久久久蜜臀 | 精品国产一区二区三区久久久蜜臀 | 韩国三级香港三级日本三级| 日韩在线观看免费完整版视频| 精品在线观看国产| 亚洲 国产精品 日韩| 亚洲精品影院一区二区| 久久精品免视看国产明星 | 夜夜操网| 午夜激情视频在线观看| 99久久精品国产麻豆| 国产国语对白一级毛片| 国产亚洲免费观看| 一a一级片| 超级乱淫伦动漫| 久久国产一区二区| 欧美a级片免费看| 亚洲精品久久久中文字| 色综合久久天天综合观看| 欧美爱爱动态| 国产a毛片| 国产综合91天堂亚洲国产| 欧美a免费| 国产成a人片在线观看视频| 成人免费观看的视频黄页| 欧美a级成人淫片免费看| 人人干人人插| 欧美a级v片不卡在线观看| 精品视频免费在线| 国产亚洲免费观看| 日韩在线观看网站| 麻豆网站在线看| 欧美激情一区二区三区视频高清 |