media-utils
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseMedia Utilities
媒体实用工具
Internal utilities for media assembly. Used by producer skills.
These scripts wrap FFmpeg to provide reliable media operations.
用于媒体合成的内部实用工具,供生产者类Skill调用。
这些脚本封装FFmpeg以提供可靠的媒体处理操作。
Prerequisites
前提条件
- FFmpeg must be installed: (macOS) or
brew install ffmpeg(Linux)apt install ffmpeg - Check with:
python3 check_ffmpeg.py
- 必须安装FFmpeg:(macOS)或
brew install ffmpeg(Linux)apt install ffmpeg - 验证安装:
python3 check_ffmpeg.py
Available Utilities
可用工具
audio_concat.py
audio_concat.py
Concatenate multiple audio files into one.
bash
undefined将多个音频文件拼接为一个文件。
bash
undefinedSimple concatenation
简单拼接
python3 audio_concat.py -i intro.wav segment1.wav outro.wav -o podcast.mp3
python3 audio_concat.py -i intro.wav segment1.wav outro.wav -o podcast.mp3
With crossfade between clips
片段间添加交叉淡入淡出
python3 audio_concat.py -i track1.wav track2.wav --crossfade 2.0
python3 audio_concat.py -i track1.wav track2.wav --crossfade 2.0
With normalization
音频归一化
python3 audio_concat.py -i *.wav -o mixed.mp3 --normalize
undefinedpython3 audio_concat.py -i *.wav -o mixed.mp3 --normalize
undefinedaudio_mix.py
audio_mix.py
Mix voice/narration with background music (with optional ducking).
bash
undefined将人声/旁白与背景音乐混合(支持可选的音量闪避)。
bash
undefinedVoice + music with ducking (music lowers when voice plays)
人声+音乐(带音量闪避,即人声播放时降低音乐音量)
python3 audio_mix.py --voice narration.wav --music background.mp3 -o final.mp3
python3 audio_mix.py --voice narration.wav --music background.mp3 -o final.mp3
Adjust music volume (default: 0.3)
调整音乐音量(默认值:0.3)
python3 audio_mix.py --voice voice.wav --music music.mp3 --music-volume 0.2
python3 audio_mix.py --voice voice.wav --music music.mp3 --music-volume 0.2
No ducking
不启用音量闪避
python3 audio_mix.py --voice voice.wav --music music.mp3 --no-duck
python3 audio_mix.py --voice voice.wav --music music.mp3 --no-duck
With fade in/out on music
音乐添加淡入淡出效果
python3 audio_mix.py --voice voice.wav --music music.mp3 --fade-in 2 --fade-out 3
undefinedpython3 audio_mix.py --voice voice.wav --music music.mp3 --fade-in 2 --fade-out 3
undefinedvideo_concat.py
video_concat.py
Concatenate multiple video clips.
bash
undefined拼接多个视频片段。
bash
undefinedSimple concatenation
简单拼接
python3 video_concat.py -i clip1.mp4 clip2.mp4 clip3.mp4 -o final.mp4
python3 video_concat.py -i clip1.mp4 clip2.mp4 clip3.mp4 -o final.mp4
With fade transition
添加淡入淡出过渡效果
python3 video_concat.py -i *.mp4 -o final.mp4 --transition fade --duration 1.0
python3 video_concat.py -i *.mp4 -o final.mp4 --transition fade --duration 1.0
Normalize to 1080p
归一化至1080p分辨率
python3 video_concat.py -i *.mp4 -o final.mp4 --resolution 1080p
python3 video_concat.py -i *.mp4 -o final.mp4 --resolution 1080p
Available transitions: fade, dissolve, wipeleft, wiperight, slideup, slidedown
可用过渡效果:fade(淡入淡出)、dissolve(溶解)、wipeleft(左擦除)、wiperight(右擦除)、slideup(上滑动)、slidedown(下滑动)
undefinedundefinedvideo_audio_merge.py
video_audio_merge.py
Add audio track(s) to video.
bash
undefined为视频添加音轨。
bash
undefinedReplace video audio
替换视频原有音频
python3 video_audio_merge.py --video clip.mp4 --audio voiceover.mp3 -o final.mp4
python3 video_audio_merge.py --video clip.mp4 --audio voiceover.mp3 -o final.mp4
Add voice + music with ducking
添加人声+音乐(带音量闪避)
python3 video_audio_merge.py --video clip.mp4 --voice narration.wav --music bg.mp3
python3 video_audio_merge.py --video clip.mp4 --voice narration.wav --music bg.mp3
Mix with existing video audio
与视频原有音频混合
python3 video_audio_merge.py --video clip.mp4 --audio music.mp3 --mix
python3 video_audio_merge.py --video clip.mp4 --audio music.mp3 --mix
Audio sync offset
音频同步偏移
python3 video_audio_merge.py --video clip.mp4 --audio audio.mp3 --offset 0.5
undefinedpython3 video_audio_merge.py --video clip.mp4 --audio audio.mp3 --offset 0.5
undefinedvideo_strip_audio.py
video_strip_audio.py
Remove audio from video files (for replacing with custom audio).
bash
undefined移除视频文件中的音频(用于替换为自定义音频)。
bash
undefinedStrip audio from single file
移除单个文件的音频
python3 video_strip_audio.py -i video.mp4 -o silent_video.mp4
python3 video_strip_audio.py -i video.mp4 -o silent_video.mp4
Strip audio from multiple files (batch mode)
批量移除多个文件的音频
python3 video_strip_audio.py -i clip1.mp4 clip2.mp4 clip3.mp4
python3 video_strip_audio.py -i clip1.mp4 clip2.mp4 clip3.mp4
Strip with custom output directory
移除音频并输出到指定目录
python3 video_strip_audio.py -i *.mp4 --output-dir ./silent/
python3 video_strip_audio.py -i *.mp4 --output-dir ./silent/
Re-encode video instead of copying
重新编码视频而非直接复制流
python3 video_strip_audio.py -i video.mp4 --reencode
undefinedpython3 video_strip_audio.py -i video.mp4 --reencode
undefinedcheck_ffmpeg.py
check_ffmpeg.py
Verify FFmpeg installation.
bash
python3 check_ffmpeg.py验证FFmpeg安装情况。
bash
python3 check_ffmpeg.py✅ FFmpeg is available!
✅ FFmpeg已可用!
ffmpeg version 6.0 ...
ffmpeg版本 6.0 ...
undefinedundefinedreport_to_pdf.py
report_to_pdf.py
Convert Markdown reports to professional PDF documents.
bash
undefined将Markdown报告转换为专业PDF文档。
bash
undefinedBasic conversion
基础转换
python3 report_to_pdf.py -i analysis.md -o analysis.pdf
python3 report_to_pdf.py -i analysis.md -o analysis.pdf
With custom title and executive style
自定义标题与高管风格
python3 report_to_pdf.py -i report.md -o report.pdf --title "Q4 Market Analysis" --style executive
python3 report_to_pdf.py -i report.md -o report.pdf --title "Q4市场分析" --style executive
Technical documentation with table of contents
带目录的技术文档
python3 report_to_pdf.py -i docs.md -o docs.pdf --style technical --toc
**Available styles:**
| Style | Description |
|-------|-------------|
| `business` | Clean, professional (default) |
| `executive` | Executive summary with larger fonts |
| `technical` | Technical documentation |
| `minimal` | Minimal styling, maximum content |
**Requires:** `pip install markdown weasyprint`python3 report_to_pdf.py -i docs.md -o docs.pdf --style technical --toc
**可用样式:**
| 样式 | 说明 |
|-------|-------------|
| `business` | 简洁专业风格(默认) |
| `executive` | 高管摘要风格,字体更大 |
| `technical` | 技术文档风格 |
| `minimal` | 极简风格,内容优先 |
**依赖安装:** `pip install markdown weasyprint`Usage by Producer Skills
生产者类Skill调用方式
These utilities are called by the producer skills to assemble final outputs:
python
from pathlib import Path
import subprocess
import sys这些工具由生产者类Skill调用以合成最终输出内容:
python
from pathlib import Path
import subprocess
import sysGet path to media-utils
获取media-utils的路径
UTILS_PATH = Path(file).parent.parent.parent / "media-utils" / "scripts"
def concat_audio(files: list, output: str):
cmd = [
sys.executable,
str(UTILS_PATH / "audio_concat.py"),
"-i", *files,
"-o", output
]
subprocess.run(cmd, check=True)
undefinedUTILS_PATH = Path(file).parent.parent.parent / "media-utils" / "scripts"
def concat_audio(files: list, output: str):
cmd = [
sys.executable,
str(UTILS_PATH / "audio_concat.py"),
"-i", *files,
"-o", output
]
subprocess.run(cmd, check=True)
undefinedOutput Formats
输出格式
| Utility | Default Output | Options |
|---|---|---|
| audio_concat | MP3 | Inherits from input |
| audio_mix | MP3 | MP3 |
| video_concat | MP4 (H.264) | MP4 |
| video_audio_merge | MP4 (H.264) | MP4 |
| video_strip_audio | MP4 (copy) | MP4 |
| 工具 | 默认输出格式 | 可选格式 |
|---|---|---|
| audio_concat | MP3 | 继承自输入格式 |
| audio_mix | MP3 | MP3 |
| video_concat | MP4(H.264编码) | MP4 |
| video_audio_merge | MP4(H.264编码) | MP4 |
| video_strip_audio | MP4(直接复制流) | MP4 |