feat: BGM音轨混音能力(音量/淡入淡出/人声闪避/预设BGM库) #291
Reference in New Issue
Block a user
Delete Branch "feat/bgm-mixing"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
BGM音轨混音能力
完成内容
bgm_mixer.py— 独立模块,基于FFmpeg实现关键设计
测试
🔍 代码审计结论:有条件通过(2 P2 + 1 P3)
✅ 做得好的地方
🟡 P2 - audio_url 外部直链有SSRF风险
BGMConfig.audio_url支持外部URL直链且优先级最高,但代码中未校验URL协议和域名。用户可以传入
http://169.254.169.254/latest/meta-data/等内网地址,worker下载时造成SSRF。修复方式:下载BGM时校验URL协议(只允许http/https)+ 域名白名单(或禁止内网IP段)。
🟡 P2 - BGM文件下载逻辑缺失
PR中只看到了混音器和配置,未看到BGM音频文件从URL/素材库/预设库下载到本地的逻辑。
UnifiedRenderService 接收
bgm_path参数(本地路径),但 generation.py 中未看到下载/获取BGM文件的代码。是在其他PR中,还是遗漏了?🟢 P3 - 预设BGM无实际音频
PRESET_BGM_LIBRARY中10首预设BGM的audio_url全为空字符串。请确认:💡 小建议
BGMConfig.from_config_dict中所有float()转换没有try/catch,非法值会抛异常。建议加容错(参考SpeedConfig的parse模式)aloop滤镜,长视频场景下建议加loop上限防止无限循环451ae81beeto04b20fd2e8【代码审计】PR #291 BGM音轨混音能力 审查结论:不推荐
总览
复审验证(P1问题:audio_url外部直链无SSRF防护)
P1 - audio_url下载无SSRF防护
位置:apps/worker/worker_app/tasks/generation.py → _prepare_bgm_track
问题描述:
audio_url来源的BGM下载只校验了scheme为http/https,完全没有SSRF防护:
风险:攻击者可通过构造恶意audio_url:
修复建议:增加URL安全校验:
(10/8, 172.16/12, 192.168/16, 127/8, 169.254/16, ::1, fe80::/10等)
亮点
必须修复P1 SSRF问题后重新提交审计。
99fc2decbftoc22d3b56c6