| name | byted-util-video-editor |
| description | 视频编辑器,在需要视频后期制作、多个视频文件合成、视频添加音频轨道、合并多个音频文件、视频生成并烧录字幕场景时,使用该技能。 |
| version | 1.0.0 |
| license | Apache-2.0 |
Video Editor - 视频编辑器
适用场景
当需要进行视频后期处理时使用此技能,包括:
- 合并多个视频:将多个分镜视频合成一个完整视频
- 添加音频:为视频添加旁白、背景音乐等音频轨道
- 合并音频:将多个音频文件按时间轴合并成一个完整音频
- 生成字幕:生成 SRT 格式的字幕文件
- 烧录字幕:将字幕硬编码到视频中
- 视频制作:短视频、宣传片、教学视频的后期合成
功能特性
1. 合并多个视频
- 支持 2+ 个视频文件拼接
- 自动处理视频编码和格式转换
- 保持原始视频质量
- 自动保留原始视频的背景音乐
2. 添加音频轨道
- 支持添加旁白配音
- 支持添加背景音乐
- 可调节音频音量(0.0-2.0 倍)
- 可调节原始视频背景音乐音量(0.0-2.0 倍)
- 背景音乐和对白音频自动混合
3. 合并多个音频
- 支持将多个音频文件按时间轴合并成一个完整音频
- 每个音频可以指定自己的开始时间(秒)
- 使用 amix 滤镜平滑混合音频
4. 生成字幕
- 支持生成标准 SRT 格式字幕文件
- 支持多段字幕,每段有独立的开始/结束时间
- UTF-8 编码,支持中文字幕
5. 烧录字幕
- 将 SRT 字幕硬编码到视频中
- 需要 ffmpeg 编译时包含 libass(subtitles 滤镜)支持
- 如当前环境不支持,可使用其他视频编辑工具(如剪映等)烧录字幕
6. 灵活的操作模式
- merge 模式:合并多个视频(可同时添加音频)
- add-audio 模式:为现有视频添加音频
- merge-audios 模式:合并多个音频文件
- generate-srt 模式:生成 SRT 字幕文件
- burn-subtitles 模式:烧录字幕到视频
系统要求
安装 ffmpeg
Ubuntu/Debian:
sudo apt install ffmpeg
macOS:
brew install ffmpeg
验证安装:
ffmpeg -version
使用步骤
模式 1:合并多个视频
基本用法:
python scripts/video_editor.py output.mp4 --videos video1.mp4 video2.mp4 video3.mp4
带音频合并:
python scripts/video_editor.py output.mp4 --videos v1.mp4 v2.mp4 v3.mp4 --audio narration.mp3
调整音频音量:
python scripts/video_editor.py output.mp4 --videos v1.mp4 v2.mp4 --audio dialogue.mp3 --volume 0.8
python scripts/video_editor.py output.mp4 --videos v1.mp4 v2.mp4 --audio dialogue.mp3 --volume 1.5
python scripts/video_editor.py output.mp4 --videos v1.mp4 v2.mp4 --audio dialogue.mp3 --volume 0.8 --bg-volume 0.5
模式 2:为现有视频添加音频
基本用法:
python scripts/video_editor.py output.mp4 --video input.mp4 --audio narration.mp3 --mode add-audio
调节音量:
python scripts/video_editor.py output.mp4 --video input.mp4 --audio background.mp3 --volume 0.5 --mode add-audio
模式 3:合并多个音频文件
基本用法:
python scripts/video_editor.py output.mp3 --audios audio1.mp3,audio2.mp3 --start-times 0,5 --mode merge-audios
参数说明:
--audios:要合并的音频文件列表,用逗号分隔
--start-times:每个音频的开始时间(秒),用逗号分隔
- 两个列表的长度必须相同
模式 4:生成 SRT 字幕文件
基本用法:
python scripts/video_editor.py output.srt --subtitles '[{"text":"你好","start_time":0,"end_time":2},{"text":"世界","start_time":2.5,"end_time":5}]' --mode generate-srt
参数说明:
--subtitles:JSON 格式的字幕数据,每个字幕包含:
text:字幕文字
start_time:开始时间(秒)
end_time:结束时间(秒)
模式 5:烧录字幕到视频
基本用法:
python scripts/video_editor.py output_with_subs.mp4 --video input.mp4 --subtitle subs.srt --mode burn-subtitles
注意:
- 字幕样式参数已预留,但实际效果取决于 ffmpeg 的 subtitles 滤镜配置
- 如当前环境不支持 subtitles 滤镜,建议:
- 使用专业视频编辑软件(Final Cut Pro、Premiere、剪映等)
- 使用在线视频工具(如 Kapwing、Clideo 等)
参数说明
| 参数 | 说明 | 示例 |
|---|
output | 输出文件路径 | final_video.mp4 |
--videos | 要合并的视频文件列表(2+ 个) | --videos v1.mp4 v2.mp4 v3.mp4 |
--video | 单个视频文件(add-audio 或 burn-subtitles 模式) | --video input.mp4 |
--audio | 单个音频文件(旁白、对白等) | --audio narration.mp3 |
--audios | 要合并的音频文件列表(逗号分隔) | --audios a1.mp3,a2.mp3 |
--start-times | 每个音频的开始时间(逗号分隔,秒) | --start-times 0,5 |
--volume | 对白音频音量(0.0-2.0,默认 1.0) | --volume 0.8 |
--bg-volume | 背景音乐音量(0.0-2.0,默认 1.0) | --bg-volume 0.5 |
--subtitles | 字幕数据(JSON 格式,generate-srt 模式) | --subtitles '[{\"text\":\"你好\",\"start_time\":0,\"end_time\":2}]' |
--subtitle | SRT 字幕文件路径(burn-subtitles 模式) | --subtitle subs.srt |
--font-name | 字幕字体名称 | --font-name "Arial" |
--font-size | 字幕字体大小 | --font-size 24 |
--font-color | 字幕字体颜色 | --font-color "&H00FFFFFF" |
--outline-color | 字幕边框颜色 | --outline-color "&H00000000" |
--outline | 字幕边框宽度 | --outline 2 |
--shadow | 字幕阴影深度 | --shadow 0 |
--alignment | 字幕对齐方式 |
实际示例
示例 1:AI 短剧合成
假设有 3 个分镜视频:
shot1.mp4(5秒)
shot2.mp4(10秒)
shot3.mp4(10秒)
合成无旁白版本:
python scripts/video_editor.py drama_no_audio.mp4 --videos shot1.mp4 shot2.mp4 shot3.mp4
合成带旁白版本:
python scripts/video_editor.py drama_with_audio.mp4 --videos shot1.mp4 shot2.mp4 shot3.mp4 --audio narration.mp3
示例 2:添加背景音乐
为现有视频添加背景音乐,降低音量:
python scripts/video_editor.py video_with_music.mp4 --video original.mp4 --audio bgm.mp3 --volume 0.4 --mode add-audio
示例 3:合并多个对白音频
假设有 3 个对白音频文件,分别在不同时间点播放:
line1.mp3(在 0 秒开始)
line2.mp3(在 5 秒开始)
line3.mp3(在 12 秒开始)
合并成一个完整音频:
python scripts/video_editor.py full_narration.mp3 --audios line1.mp3,line2.mp3,line3.mp3 --start-times 0,5,12 --mode merge-audios
示例 4:生成 SRT 字幕文件
假设有两段对白:
- "你好世界"(0-2 秒)
- "欢迎来到漫剧"(2.5-5 秒)
**生成字幕文件:
python scripts/video_editor.py drama_subs.srt --subtitles '[{"text":"你好世界","start_time":0,"end_time":2},{"text":"欢迎来到漫剧","start_time":2.5,"end_time":5}]' --mode generate-srt
示例 5:烧录字幕到视频
使用默认样式烧录:
python scripts/video_editor.py drama_with_subs.mp4 --video drama.mp4 --subtitle drama_subs.srt --mode burn-subtitles
注意: 如环境不支持烧录功能,请直接使用生成的 SRT 字幕文件,配合剪映、Final Cut Pro 等视频编辑软件完成字幕烧录!