> ## Content Index
> Fetch the complete content index at: https://yonglun.me/llms.txt
> Use this file to discover other available public pages before exploring further.

# ffmpeg 视频音轨的提取及替换
- URL: https://yonglun.me/ffmpeg/
- Published: 2023-11-22T08:51:42.000Z
- Updated: 2025-04-22T06:59:53.000Z
- Description: 本文介绍了ffmpeg 视频音轨的提取及替换
- Author: Yonglun
- Tags: ffmpeg, Open Source, #lang-zh

## 1\. ffmpeg 简介

FFmpeg是一套开源计算机程序，用于记录、转换数字音频和视频，并支持流媒体转化。它的名字来自"Fast Forward MPEG"，表明了它最初的目标是快速处理 MPEG 格式的视频。

它由以下三部分组成：

**1.工具软件**：包括四个核心工具软件，分别是：

- **`ffmpeg`**：用于音视频的转码和转换。
- **`ffplay`**：提供简单的音视频播放功能。
- **`ffserver`**：用作流媒体服务器。
- **`ffprobe`**：用于多媒体码流的分析。

**2.SDK（软件开发工具包）**：针对不同平台编译的库，包含了以下功能：

- 音视频编解码器。
- 提供简化编程的多媒体应用工具。
- 支持多种多媒体容器格式的封装和解封装工具。
- 常用的多媒体处理滤镜。
- 音视频数据采集和渲染设备相关功能。
- 图像缩放、色彩空间转换和像素格式转换工具。
- 音频重采样和格式转换功能。

**3.源代码**：FFmpeg的实现采用C语言，主要在Linux平台上开发。它还依赖多个第三方工程来扩展其功能。

FFmpeg是一个多媒体处理工具集，具备广泛的功能，包括音视频处理、流媒体转化等。其模块化的设计使其成为处理多媒体数据的强大工具，可适用于各种多媒体应用，无论是音视频专业人士还是开发者都可以受益于其功能和灵活性。

日常工作中，我们最常用的是它的命令行工具，功能强大，堪称视频处理的瑞士军刀。

## 2\. ffmpeg 安装

### 2.1 macos 下安装ffmpeg

macos 下通过brew工具安装

```bash
brew update
brew upgrade
brew install ffmpeg

```

### 2.2 Ubuntu 下安装ffmpeg

Ubuntu 下通过brew工具安装

```bash
sudo apt update
sudo apt upgrade
sudo apt install ffmpeg

```

## 3\. 使用ffmpeg提取视频音轨

在媒体制作工作中，你希望对已经完成制作的视频再发布一个声音版，这时我们需要从视频中把音轨抓取出来保存为另外一个文件。

仅需一条ffmpeg命令即可完成：

```bash
ffmpeg -i sourceVideo.mp4 -c:a mp3 -map 0:a:0 targetAudio.mp3

```

上面命令中

\-i sourceVideo.mp4 指定输入的视频文件名称和路径

\-c:a mp3 指定输出的音频编码采用mp3编码器

\-map 0:a:0 指定输入输出的映射

targetAudio.mp3 指定输出的音频文件名称和路径

## 4\. 使用ffmpeg替换视频音轨

还有一种经常遇到的场景，你希望替换一个已经制作好的视频文件中的音轨，比如你想把完成翻译后的录音替换到视频中，或者你想把码率更高的高解析度音频替换到视频中。

仅需一条ffmpeg命令即可完成：

```bash
ffmpeg -i sourceVideo.mp4 -i sourceAudio.flac -c:v copy -c:a alac -map 0:v:0 -map 1:a:0 targetVideo.mp4

```

上面命令中

\-i sourceVideo.mp4 指定输入的视频文件名称和路径

\-i sourceAudio.flac 指定输入的音频文件名称和路径，这里是一个无损格式的flac音频文件

\-c:v copy 指定输出的视频编码，copy指直接拷贝源文件的内容，不就行二次编码

\-c:a alac 指定输出的音频编码采用alac编码器

\-map 0:v:0 指定第一个输入映射到输出的视频

\-map 1:a:0 指定第二个输入映射到输出的音频

targetVideo.mp4 指定输出的视频文件名称和路径

## 5\. ffmpeg 使用说明

ffmpeg 包含了详细的参数说明，可以通过下面方式查看

简单的参数说明

```bash
ffmpeg -h

```

详细的参数说明

```bash
ffmpeg -h long

```

完整的参数说明

```bash
ffmpeg -h full

```