name: video-auto-generator description: 【2026增強版】基於AI自動生成影片內容。支援文本轉影片、圖文轉影片、指令碼自動生成+配音+字幕+剪輯全流程。整合edge-tts配音、ffmpeg自動化剪輯。當用戶說"生成影片"、"製作影片"、"自動剪輯"、"批次生產影片"、"AI影片生成"、"做個短影片"時觸發此技能。
本技能提供端到端的AI影片自動生成能力,從指令碼撰寫到最終渲染輸出,全流程自動化。支援多種影片生成模式,適配抖音、小紅書、B站、YouTube等平臺。
full_pipeline.py,一鍵生成指令碼→配音→分鏡圖→合成影片(92秒1080×1920豎屏)# 一鍵生成推廣影片
cd skills/video-auto-generator/scripts
python full_pipeline.py --topic "你的選題" --duration 90 --voice zh-CN-XiaoxiaoNeural
輸出:Desktop/video_<選題>/final_promo.mp4(豎屏1080×1920)
引數說明:
- --topic:影片主題/標題
- --duration:時長(秒,預設90)
- --voice:配音音色(zh-CN-XiaoxiaoNeural/YunxiNeural/XiaoyiNeural)
- --output:自定義輸出目錄
本技能採用任務導向結構,根據不同需求提供差異化的工作流。
適用場景:新聞播報、知識科普、產品介紹
工作流程:
指令碼生成(使用當前session模型):
輸入:主題/關鍵詞/參考文件
輸出:分鏡指令碼(包含:畫面描述、配音文案、時長建議)
AI配音(使用edge-tts):
bash
# 示例:生成配音
edge-tts --text "歡迎來到我的頻道" --voice zh-CN-XiaoxiaoNeural --write-media output.mp3
畫面生成(可選):
或使用虛擬主播形象(HeyGen、D-ID等)
影片合成(使用ffmpeg):
bash
# 示例:配音+字幕+背景影片合成
ffmpeg -i background.mp4 -i voice.mp3 -vf "subtitles=subtitle.srt" -c:v libx264 -c:a aac output.mp4
小蔥技能有更好的技能skills外掛。
適用場景:圖文筆記轉影片、產品展示、教程演示
工作流程:
處理:統一尺寸、新增過渡動畫、新增背景音樂
自動配音(基於文案): ```python # 使用edge-tts批次生成配音 import subprocess
def generate_voice(text, output_file): cmd = f"edge-tts --text '{text}' --voice zh-CN-XiaoxiaoNeural --write-media {output_file}" subprocess.run(cmd, shell=True) ```
適用場景:直播回放剪輯、課程影片製作、Vlog快速成片
工作流程:
輸出:精彩片段時間戳列表
AI生成標題和封面:
使用AI提取關鍵幀作為封面
自動剪輯:
bash
# 示例:根據時間戳列表剪輯精彩片段
ffmpeg -i input.mp4 -ss 00:01:23 -t 00:00:45 -c copy output_part1.mp4
批次渲染:
適用場景:同一內容適配多個平臺、多語言版本、A/B測試
工作流程:
預留:文本佔位符、圖片佔位符、配音佔位符
批次填充內容:
python
# 示例:批次生成10個變體影片
for i in range(10):
script = generate_script_variant(topic, style=i%3)
voice = generate_voice(script)
video = render_video(template, script, voice)
save(video, f"output_v{i}.mp4")
平臺自適應:
必須工具安裝(如果未安裝,請先呼叫 qclaw-env skill):
# 1. 安裝 ffmpeg (Windows)
winget install ffmpeg
# 驗證:ffmpeg -version
# 2. 安裝 edge-tts (Python包)
pip install edge-tts
# 驗證:edge-tts --list-voices | Select-String "zh-CN"
# 3. 安裝 whisper (可選,用於語音識別)
pip install openai-whisper
# 驗證:whisper --help
# 4. 安裝 ffmpeg-python (Python繫結)
pip install ffmpeg-python
可靈AI 3.0 API配置(推薦):
$env:KLING_API_KEY="your_api_key_here"
import requests
def test_kling_api():
api_url = "https://api.klingai.com/v3/images/generations"
headers = {"Authorization": f"Bearer {$env:KLING_API_KEY}"}
payload = {
"model": "kling-3.0",
"prompt": "一個AI機器人正在製作影片",
"aspect_ratio": "16:9"
}
response = requests.post(api_url, json=payload, headers=headers)
print(response.json())
| 工具 | 用途 | 安裝命令 | 實用建議 |
|---|---|---|---|
| ffmpeg | 影片處理引擎 | winget install ffmpeg |
硬體加速(NVENC/QSV)提升渲染速度 |
| edge-tts | AI配音 | pip install edge-tts |
優先zh-CN-XiaoxiaoNeural,支援多種聲音 |
| 當前session模型 | 指令碼生成 | 內建 | model route自動選最優,無需硬編碼 |
| whisper | 語音識別 | pip install openai-whisper |
使用large-v3模型提升準確率 |
| 可靈AI 3.0 API | AI影片生成 | 申請API Key | 全模態引擎,角色一致性保持 |
| 剪映「營銷成片」 | 批次帶貨影片 | 安裝剪映專業版 | 參考抖音爆款自動生成 |
| Seedance 2.0 | AI影片生成 | 等待2.5版本 | 字節跳動,短影片資料優勢 |
建立 scripts/generate_script.py:
import json
def generate_video_script(topic, duration=60, style="knowledge"):
"""
使用當前平臺模型生成影片指令碼
Args:
topic: 影片主題
duration: 目標時長(秒)
style: 風格(knowledge/entertainment/story)
Returns:
指令碼字典,包含分鏡、配音文案、畫面描述
"""
prompt = f"""
請為以下主題生成一個{duration}秒的影片指令碼:
主題:{topic}
風格:{style}
要求:
1. 開頭3秒必須有強hook(懸念/反轉/痛點)
2. 每個分鏡標註時長
3. 配音文案要口語化,適合配音
4. 畫面描述要具體,方便後續製作
輸出格式(JSON):
{{
"title": "影片標題",
"hooks": ["hook1", "hook2", "hook3"],
"scenes": [
{{
"timestamp": "00:00:00",
"duration": 3,
"voiceover": "配音文案",
"visual": "畫面描述",
"transition": "轉場效果"
}}
],
"bgm_suggestion": "背景音樂風格建議",
"tags": ["標籤1", "標籤2"]
}}
"""
# 由當前 session 模型處理(model route 自動選擇最優)
# 此處僅返回 prompt 供呼叫方使用
return {"prompt": prompt, "topic": topic, "duration": duration, "style": style}
if __name__ == '__main__':
# 示例用法
script = generate_video_script("AI工具推薦", duration=60, style="knowledge")
print(json.dumps(script, ensure_ascii=False, indent=2))
建立 scripts/batch_render.py:
import subprocess
import json
from pathlib import Path
def render_video(script_file, output_file):
"""
根據指令碼JSON檔案渲染影片
Args:
script_file: 指令碼JSON檔案路徑
output_file: 輸出影片檔案路徑
"""
with open(script_file, 'r', encoding='utf-8') as f:
script = json.load(f)
# 1. 生成配音
voice_file = "temp_voice.mp3"
subprocess.run([
"edge-tts",
"--text", script['scenes'][0]['voiceover'],
"--voice", "zh-CN-XiaoxiaoNeural",
"--write-media", voice_file
])
# 2. 合成影片(簡化示例,實際應該遍歷所有scenes)
cmd = [
"ffmpeg",
"-f", "concat", "-i", "input_list.txt",
"-i", voice_file,
"-c:v", "libx264",
"-c:a", "aac",
"-shortest",
output_file
]
subprocess.run(cmd)
print(f"✅ 影片已生成:{output_file}")
def batch_render(script_folder, output_folder):
"""
批次渲染影片
Args:
script_folder: 指令碼資料夾
output_folder: 輸出資料夾
"""
scripts = Path(script_folder).glob("*.json")
for script_file in scripts:
output_file = Path(output_folder) / f"{script_file.stem}.mp4"
render_video(script_file, output_file)
if __name__ == '__main__':
batch_render("scripts/", "outputs/")
配合 qclaw-cron-skill 實現定期影片生產:
實際配置(請先讀取 qclaw-cron-skill 獲取最新格式):
實際配置:
可執行程式碼,用於影片處理自動化:
generate_script.py:AI指令碼生成batch_render.py:批次影片渲染add_subtitles.py:自動字幕生成和嵌入smart_clip.py:智慧剪輯(識別精彩片段)platform_adapter.py:平臺格式自適應參考文件,載入到上下文以指導影片製作:
video_formats.md:各平臺影片格式規範(解析度、位元速率、時長限制)script_templates.md:常見影片型別的指令碼模板(開箱即用)tts_voices.md:edge-tts聲音風格指南(適合不同場景的聲音選擇)editing_tips.md:影片剪輯技巧(轉場、配樂、節奏控制)ai_models_guide.md:AI模型使用指南(由 model route 自動選擇最優模型)模板檔案,用於影片輸出:
templates/:影片模板目錄tpl_douyin_9_16/:抖音豎屏模板tpl_bilibili_16_9/:B站橫屏模板tpl_xiaohongshu_3_4/:小紅書方屏模板intros/:片頭模板outros/:片尾模板bgm/: background music庫(無版權音樂)# 整合HeyGen API實現真人形象播報
import requests
def generate_avatar_video(script, avatar_id="default"):
"""
使用HeyGen生成虛擬主播影片
Args:
script: 配音文案
avatar_id: 虛擬主播ID
"""
api_url = "https://api.heygen.com/v2/video/generate"
payload = {
"video_inputs": [{
"character": {
"type": "avatar",
"avatar_id": avatar_id,
"avatar_style": "normal"
},
"voice": {
"type": "text",
"input_text": script,
"voice_id": "zh-CN-XiaoxiaoNeural"
}
}],
"dimension": {
"width": 720,
"height": 1280
}
}
response = requests.post(api_url, json=payload, headers={"X-Api-Key": "YOUR_API_KEY"})
return response.json()['video_id']
# 根據影片情感自動推薦BGM
def recommend_bgm(emotion="happy", tempo="medium"):
"""
推薦背景音樂
Args:
emotion: 情感(happy/sad/exciting/calm)
tempo: 節奏(slow/medium/fast)
"""
bgm_library = {
"happy_medium": "bgm/happy_upbeat.mp3",
"sad_slow": "bgm/melancholy_piano.mp3",
"exciting_fast": "bgm/epic_orchestra.mp3",
# ... 更多組合
}
return bgm_library.get(f"{emotion}_{tempo}", "bgm/default.mp3")
# 自動生成多個標題/封面變體進行A/B測試
def generate_ab_test_variants(video_script):
"""
生成A/B測試變體
Returns:
變體列表,每個變體有不同的標題、封面、開頭hook
"""
variants = []
# 變體1:懸念式開頭
variants.append({
"title": f"沒想到{topic}竟然...",
"hook": "你絕對不知道的真相",
"thumbnail_style": "mysterious"
})
# 變體2:乾貨式開頭
variants.append({
"title": f"{topic}完整攻略",
"hook": "今天教你3個技巧",
"thumbnail_style": "educational"
})
# 變體3:故事式開頭
variants.append({
"title": f"我是如何用{topic}改變人生的",
"hook": "去年這個時候我還...",
"thumbnail_style": "storytelling"
})
return variants
A:
1. 使用硬體加速:ffmpeg -hwaccel cuda -i input.mp4 ...
2. 降低預覽質量(最終渲染再用高質量)
3. 使用當前平臺模型批次處理(價效比最優)
A:
1. 在文案中加入標點符號和停頓標記(如:逗號、句號、省略號)
2. 使用SSML標籤控制語速和語調:<break time="500ms"/>
3. 切換不同的edge-tts聲音風格
A: 1. 使用無版權音樂庫(YouTube Audio Library、Epidemic Sound) 2. 使用AI生成背景音樂(如:Mubert、AIVA) 3. 圖片素材使用Unsplash、Pexels等無版權相簿
實用檢查清單: - [ ] edge-tts已安裝且可用? - [ ] ffmpeg已安裝且可用? - [ ] 剪映v20.2+已安裝?(營銷成片/AI文字成片功能) - [ ] 已建立影片輸出目錄? - [ ] 已測試至少1個完整影片生成流程? - [ ] 定時任務參考qclaw-cron-skill最新格式? - [ ] 可靈AI API Key已申請?(如需使用可靈3.0能力)
下一步最佳化方向: 1. ✅ 整合文生影片工具(可靈3.0 API + Seedance 2.0)+ 已列入技術棧 2. 建立本地影片模板庫(抖音9:16、B站16:9、小紅書3:4) 3. ✅ edge-tts + ffmpeg 流水線已建立(見任務1/2/3工作流) 4. 新增影片質量自動檢查(解析度、位元速率、時長) 5. 整合剪映「AI文字成片」一鍵成劇功能 6. 實現即夢AI網頁版自動化操作(利用免費積分) 7. 自動化字幕+特效流水線
這個工具質量中規中矩,優點是能把選題自動變成帶配音和字幕的影片,流程基本完整。但要降低預期:它並不是真正用 AI 生成指令碼,而是用固定模板改寫;生成的文案可能帶營銷推廣內容;使用時會呼叫本地程式和第三方服務,存在一定隱私風險。適合對影片質量要求不高、願意接受模板化內容的使用者。