你沒看錯1個月做1萬個科普短視頻,其他編程語言和工具能不能做我不知道,但是用Python的 MoviePy 模塊是可以做到的,
19年我還在學校的時候領導安排讓我用pr做一個中醫藥的藥材的科普短視頻,那個玩意我實在搞不來,后來用爬蟲抓了一下中醫藥網的中藥材資料,發現資料都是固定的格式,既然是重復的作業那么用 Python 腳本就應該能批量生產了,
先來看一個成品的案例,制作耗時全自動5分鐘左右,可以擴展思路類似這種科普類的視頻都可以量產,如果有興趣的話往下看實作方法,
YYSD 用Python能月產萬個短視頻的正確姿勢 中醫藥篇
文章目錄
- 軟硬體、技能需求
- 資料獲取
- 基礎素材準備
- 流程與代碼
軟硬體、技能需求
- CPU最好是I7-8750以上,要不整體制作會非常慢
- Python版本3.6以上
- Moviepy模塊暫時不支持GPU,因此顯卡好壞無視
- PyEcharta模塊的地圖制作和圖片渲染,因為視頻要用到
- 常規的資料清洗處理操作,不然視頻內容沒法做
- 需要會用PPT制作素材,圖片和視頻這種
- 需要會寫爬蟲基礎的就行Scrapy框架用不上
- 需要會操作Moviepy模塊,不會的看我專欄里的對應介紹和操作方法
- 需要1-N個手機號,用于申請百度AI的免費API使用
- 需要有耐心,很多地方需要微調
資料獲取
做視頻的內容文稿自然是要有資料了,這種視頻的資料是公開的,在藥智資料上可以找到,
資料在這里,具體抓取方法很簡單,Python寫個爬蟲腳本就搞定了,這個整體耗時1個鐘頭吧,最后的資料長這樣,才發現咱們國家中藥材居然有13000+種,真實開眼了,
紅色字體部分是通過excel表單提取的藥材生長所在省市的名稱、對應資料訪問的網址頁面,暫無資料的部分是原資料部分空白抓取后自動填充,這個后面會用到,
基礎素材準備
視頻封面素材,固定模板的視頻封面,這個東西用PPT做就行了,很簡單,然后把制作好的保存成jpg圖片,
水印制作,用圖片工廠做一個也比較簡單,記得保存成png格式,
其他通用素材圖片,比如說處方、湯藥的圖片,畢竟中藥的湯藥熬制出來都差不多,
這些圖片素材都放到 material_jpg\base 目錄下,
視頻模板,這個也用PPT做就行了,然后保存成一段回圈播放的視頻,后面用代碼切,然后將這個視頻的模板切分成轉場和部分2個,如果需要片尾視頻自己搞一個就行了,
文字合成語音的API,隨便拿個手機號申請百度AI的介面服務就行,不怕貴的話可以使用科大訊飛的,自行選擇,代碼會根據介面進行微調,自己不會的仔細看API檔案,這點耐心要沒有的話后面也不用看了,
流程與代碼
了解業務處理制作流程有助于理解代碼,或者流程了解了代碼就很容易,
先看一下整體的工程目錄,
專案總體執行檔案
- TCM_MakeMovie.py
# coding:utf-8
__author__ = 'Mr.資料楊'
__explain__ = '檔案目錄說明:' \
'data:用于存放視頻中生成內容的excel表格資料,以及AI摳圖的日志檔案' \
'font:用于存放字體檔案' \
'material_base:用于存放視頻素材片頭、片尾、片中、過場的MP4' \
'material_everypart:根據不同的內容存放演算法生成的無語音part素材和封面' \
'material_jpg:用于存放視頻用使用的水印、封面、不同的內容按照規則生成的圖片' \
'material_mp3:用于存放百度AI生成的MP3檔案' \
'material_result:用于存放最終視頻生成的結果檔案,如果生成同樣的內容需要將源檔案洗掉' \
'material_video:根據不同的內容存放演算法生成的合成語音后part素材和封面、總合成的結果' \
'備份腳本:該專案Debug的程序' \
'' \
'使用說明:' \
'1.在material_jpg中創建內容的檔案夾,名稱為對應pic_name的名稱' \
'2.在互聯網上采集對應內容的圖片,改名pic_name.jpg格式' \
'3.無腦啟動腳本等material_result出結果' \
'4.代碼423行處,根據material_jpg的base的檔案夾下fuyong、zhongzhi進行隨機切換圖片生成不同的內容,素材自行搞定' \
'5.水印根據material_jpg的base下的logo.png進行更換' \
'6.封面根據material_jpg的base下的cover.pptx進行操作生成base.jpg進行更換'
# 加載使用的三方安裝包
import pandas as pd
# 加載自定義py方法
from configs import * # 工程配置資料
from ready_work import * # 工程啟動準備作業
from process_images import * # 處理工程需要的圖片資料
from process_audio import * # 處理工程需要的音頻資料
from process_video import * # 處理工程需要的視頻資料
if __name__ == '__main__':
# 讀取基礎Excel資料基礎資訊
df = pd.read_excel("data/data.xlsx")
# 選擇Excel中第num個資料進行制作,起始資料是2
num = 3
# 設定索引數字
row = num - 1
# 提取需要制作的行資料,并重置索引
df = df.loc[row:row, :]
df.reset_index(drop=True, inplace=True)
# 提取本次制作內容的主題藥材名稱
pic_name = df["藥材名稱"][0].replace("?", "")
print("本次制作內容:", pic_name)
# 加載組態檔
# 提取使用的字體路徑 font_path
# 中英文對應的資料列名字典 column_en2cn_dict\column_cn2en_dict
font_path, column_en2cn_dict, column_cn2en_dict = config()
# 重命名列位英文好處理
df = df.rename(columns=column_cn2en_dict)
# 洗掉資料的無用欄位
df.drop(["_id"], inplace=True, axis=1)
df.drop(["url"], inplace=True, axis=1)
# 用replace替換掉資料中已經發現的無用部分,發現即追加
df["QYFB"][0] = df["QYFB"][0]. \
replace(" ", ""). \
replace("生態環境", ""). \
replace("資源分布", "")
# 填充無資料的部分內容
df = df.fillna("暫無資料")
# 創建單詞視頻會使用的制作目錄,對應目錄以藥材名稱pic_name為頂級目錄
# 1.單條視頻每個部分素材的目錄 material_everypart
# 2.合成每個部分素材的目錄以及素材全部合并的目錄 material_video
# 3.單條視頻使用的圖片素材的目錄 material_jpg
# 4.單條視頻使用的音頻素材的目錄 material_mp3
MakeMaterialDir(pic_name)
# 避免重復制作素材資料發生錯誤,每次都清空原有舊的資料
# 1.清空單條視頻每個部分素材目錄 material_everypart
# 2.清空合成每個部分素材目錄 material_video
# 3.清空單條視頻使用的音頻素材目錄 material_mp3
CleanFiles(pic_name)
# 從百度百科抓取圖片,如果錯誤需要更換
# 未來嘗試再wiki百科抓取
RequestGetImage(pic_name)
# 抓取的藥材圖片用演算法自動去背景扣圖
CutoutJPG(pic_name)
# 使用基礎的背景圖片合成摳圖的影像合成圖片到封面
CompositeCoverJPG(pic_name)
# 音頻檔案資料處理
# 使用API介面生成字幕對應的音頻檔案保存到material_mp3的對應的目錄下
ChangeWordsToMp3(df)
time_name_dict = Mp3Info(df)
# 正文部分1-6
try:
FirstPart(pic_name, df, time_name_dict, column_en2cn_dict)
except:
pass
try:
SecondPart(pic_name, df, time_name_dict, column_en2cn_dict)
except:
pass
try:
ThirdPart(pic_name, df, time_name_dict, column_en2cn_dict)
except:
pass
try:
FourthPart(pic_name, df, time_name_dict, column_en2cn_dict)
except:
pass
try:
FifthPart(pic_name, df, time_name_dict, column_en2cn_dict)
except:
pass
try:
SixthPart(pic_name, df, time_name_dict, column_en2cn_dict)
except:
pass
# 合成封面MP4檔案
MakeCoverMp4(pic_name)
# 拼接視頻合成背景音樂
StitchingVideo(pic_name)
幾個重要py檔案,
- configs.py # 工程配置資料
- process_audio.py # 處理工程需要的音頻資料
- process_images.py # 處理工程需要的圖片資料
- process_text.py # 處理工程需要的文字資料
- process_video.py # 處理工程需要的視頻資料
- ready_work.py # 工程啟動準備作業
按照上面的思路執行后會生成對應中藥材的制作檔案,
material_everypart
material_jpg
material_mp3
material_video
最終合成的結果視頻是 result.mp4,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/439209.html
標籤:AI