分析视频氛围并添加AI生成的背景音乐。可选择加速/减速播放。使用Gemini进行视频分析,fal.ai Lyria2生成音乐。
视频 BGM 技能 分析视频的内容和心情, 通过 AI 生成匹配的 BGM, 并将其混合到...是一项面向实际任务的技能,主要用于Pipeline.;Dependenities.;
使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
分析视频内容与情绪,通过 AI 生成匹配的背景音乐(BGM),并混音合成。
输入视频 → Gemini 分析 → Lyria2 生成 BGM → FFmpeg 混音 → 输出
(情绪/风格) (生成) (变速 + 音量 + 淡入淡出)
python3(或激活项目虚拟环境 venv,如已配置)GOOGLE_GENAI_API_KEY(用于视频理解)FAL_API_KEY(用于 Lyria2 音乐生成)# 安装所需包 pip install google-generativeai httpx # 通过环境变量设置 API 密钥 export GOOGLE_GENAI_API_KEY="your_google_api_key" export FAL_API_KEY="your_fal_api_key"
/video-bgm <视频文件路径> /video-bgm <视频文件路径> --speed 1.1 /video-bgm <视频文件路径> --speed 1.1 --volume 5 /video-bgm <视频文件路径> --style "lo-fi chill"
| 参数 | 默认值 | 说明 |
|---|---|---|
path |
(必填) | 输入视频文件路径 |
--speed |
1.0 |
播放速度倍率(例如 1.1 表示快 10%) |
--volume |
5.0 |
BGM 音量倍率(Lyria2 输出音量偏低) |
--fade-in |
1.5 |
淡入时长(单位:秒) |
--fade-out |
3.0 |
淡出时长(单位:秒) |
--style |
(自动分析) | 手动指定音乐风格(跳过 Gemini 分析) |
将视频上传至 Gemini 2.0 Flash,获取深度情绪与风格分析。
import google.generativeai as genai
import os
GOOGLE_API_KEY = os.environ.get("GOOGLE_GENAI_API_KEY")
genai.configure(api_key=GOOGLE_API_KEY)
使用以下分析提示词(以广告音乐总监视角撰写,非通用描述):
请非常仔细地观看该视频。你是一名广告片音乐总监。 请回答: 1. 该视频传达了怎样的 BRAND POSITIONING?(高端奢华?亲民实惠?理想化生活?) 2. 观众的情绪体验路径是怎样的?请逐段具体说明。 3. 哪些真实的商业广告配乐可作参考?请列举具体广告风格案例, (如 Four Seasons 度假村?Apple 新品发布?Volvo?Pottery Barn?Nike?) 4. 整体 ENERGY LEVEL 如何?是沉思静谧型,还是富有推进感? 5. 实际适用的节奏 BPM、乐器组合及制作风格是什么? 请坦诚作答——古典钢琴常显得过于刻板,建议考虑现代替代方案。 最后,请提供一条单一、凝练的音乐生成提示(2–3 句话),精准概括理想 BGM。 聚焦于:乐器、BPM、情绪形容词、制作风格。 格式:MUSIC_PROMPT: <你的提示文本>
解析 Gemini 的响应,定位包含 MUSIC_PROMPT: 的行。该行内容即作为 Lyria2 的输入提示。
所有提交给 Lyria2 的提示,均须追加以下约束条件:
无演唱人声,无鼓组,无打击乐音效,无环境音效。
import httpx
import os
FAL_API_KEY = os.environ.get("FAL_API_KEY")
resp = httpx.post(
"https://fal.run/fal-ai/lyria2",
headers={
"Authorization": f"Key {FAL_API_KEY}",
"Content-Type": "application/json",
},
json={"prompt": music_prompt},
timeout=120.0,
)
audio_url = resp.json()["audio"]["url"]
Lyria2 默认生成约 32 秒音频,输出格式为 WAV,采样率 48kHz,双声道。
# 步骤 4a:按需对视频变速(如有指定),并移除原始音轨
ffmpeg -y -i INPUT.mp4
-filter:v "setpts=PTS/{speed}"
-an
-c:v libx264 -preset medium -crf 18
OUTPUT_speedup.mp4
# 步骤 4b:获取变速后视频时长
DURATION=$(ffprobe -v quiet -show_entries format=duration -of csv=p=0 OUTPUT_speedup.mp4)
# 步骤 4c:混音 BGM(提升音量、添加淡入淡出、裁剪至视频长度)
ffmpeg -y
-i OUTPUT_speedup.mp4
-i bgm.wav
-filter_complex "[1:a]volume={volume},atrim=0:{duration},afade=t=in:st=0:d={fade_in},afade=t=out:st={duration-fade_out}:d={fade_out}[a]"
-map 0:v -map "[a]"
-c:v copy -c:a aac -b:a 192k
-shortest
OUTPUT_final.mp4
自动打开最终合成视频供用户审阅;同时单独打开生成的 BGM 音频文件,便于独立评估音乐质量。
-an)—— 部分视频自带干扰性音轨所有生成文件均保存在输入视频所在目录下:
input_video.mp4 → 原始视频 input_video_speedup.mp4 → 变速后视频(无音频) input_video_bgm.wav → 生成的 BGM 音频 input_video_final.mp4 → 最终带 BGM 的合成视频
# 基础用法:自动分析并添加 BGM /video-bgm ~/Desktop/product_video.mp4 # 提速 10% 并添加 BGM /video-bgm ~/Desktop/product_video.mp4 --speed 1.1 # 手动指定风格(跳过 Gemini 分析) /video-bgm ~/Desktop/ad.mp4 --style "upbeat modern pop, synth pads, 100 BPM" # 调高 BGM 音量 /video-bgm ~/Desktop/quiet_video.mp4 --volume 8
Canlah AI —— 在不损害品牌调性的前提下高效开展效果营销。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章