--- title: "ffmpeg" type: entity tags: ["audio-processing", "multimedia", "open-source", "cli"] sources: ["engineering-voice-ai-integration-engineer"] last_updated: 2026-05-02 --- ## Aliases - ffmpeg - ffprobe(ffmpeg 配套工具) ## Definition FFmpeg 是开源的多媒体处理工具链,在 Voice AI Integration Engineer 的管道中负责所有音频格式探测、转换和预处理工作。是 Whisper 类转录管道中不可或缺的底层工具。 ## Core Tools Used | 工具 | 用途 | |------|------| | `ffprobe` | 探测音频格式、时长、codec、采样率、声道数(格式验证) | | `ffmpeg` | 格式转换、重采样、响度归一化、静音切除(预处理) | ## Key Operations in Voice AI Pipeline ```bash # 1. 探测音频属性(验证) ffprobe -v quiet -print_format json \ -show_streams -show_format input.wav # 2. Whisper 预处理(16kHz 单声道 + R128 响度归一化) ffmpeg -y -i input.mp4 -vn \ -acodec pcm_s16le \ -ar 16000 \ -ac 1 \ -af "loudnorm=I=-16:TP=-1.5:LRA=11" \ output.wav # 3. 长音频分块 ffmpeg -y -i long_audio.wav \ -ss 0 -to 1800 \ -acodec copy chunk_0000.wav ``` ## Critical Role in Quality Assurance > "Never trust file extensions — always probe the actual container." — 必须用 ffprobe 探测实际格式 FFmpeg 是音频质量验证的核心:采样率是否正确(Whisper 需要 16kHz)、是否有音频流(.mp4 可能是纯视频)、音频 codec 是否被支持、时长是否在模型限制内。 ## Key Principles 1. **永远探测,不猜**:用 `ffprobe` 而非依赖扩展名 2. **16kHz 单声道是 Whisper 标准**:除非要处理特定多声道场景 3. **R128 响度归一化先于 VAD**:确保 VAD 阈值准确 4. **-vn 去除视频轨道**:.mp4/.mov 等容器中的视频流会影响处理 ## Connections - [[EBUR128LoudnessNormalization]] — 通过 `-af loudnorm` 实现 - [[FasterWhisper]] — 消费 ffmpeg 预处理后的音频 - [[OverlapAwareChunking]] — 通过 ffmpeg 时间切片实现分块 - [[VoiceActivityDetection]] — VAD 之后 ffmpeg 也可做静音切除 ## Sources - [[engineering-voice-ai-integration-engineer]]