音频操作
从视频提取为 MP3(高质量)
ffmpeg -i input.mp4 -q:a 0 -map a output.mp3
-q:a 0 表示最高质量,-map a 指定仅提取音频轨道。
提取为无损 WAV
ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 44100 -ac 2 output.wav
适用于高音质编辑或存档。
保持原始音频格式
ffmpeg -i input.mp4 -vn -acodec copy output.aac
直接复制音频流,无需重新编码。
调整音频参数
设置比特率
ffmpeg -i input.mp4 -vn -b:a 192k output.mp3
常用值:128k(普通)、192k(较高)、320k(接近 CD 音质)。
ffmpeg -i input.mp4 -vn -ar 48000 output.mp3
44100Hz 为 CD 标准,48000Hz 常用于专业视频配音。
修改声道数
ffmpeg -i input.mp4 -vn -ac 1 output_mono.mp3
-ac 1 单声道,-ac 2 双声道。
应用音频滤镜
例如调节音量并加快播放速度:
ffmpeg -i input.mp4 -af "volume=0.5,atempo=1.25" output.mp3
可组合多个滤镜实现复杂效果。
合并音频
FFmpeg合并音频的命令
要合并音频文件,可以使用FFmpeg的*-filter_complex功能,特别是amix*过滤器。amix过滤器可以将多个音频流混合为一个音频流。以下是一个基本的命令示例,用于将两个音频文件合并为一个:
ffmpeg -i input1.mp3 -i input2.mp3 -filter_complex amix=inputs=2:duration=first:dropout_transition=2 output.mp3
在这个命令中,-i用于指定输入文件,amix=inputs=2表示有两个输入流,duration=first表示输出文件的持续时间与第一个输入流相同,dropout_transition=2表示在两个输入流之间的过渡期为2秒。
FFmpeg拼接音频的命令
另一种合并音频文件的方法是使用concat过滤器。这通常用于当你有多个音频文件,并且想要按顺序简单地拼接它们。首先,需要创建一个文本文件,列出所有要合并的音频文件,如下所示:
file '1.mp3'
file '2.mp3'
file '3.mp3'
然后,保存该文件(例如命名为concat.txt),并使用以下命令进行合并:
ffmpeg -f concat -i concat.txt -c copy output.mp3
在这个命令中,-f concat指定了使用concat格式,-i concat.txt指定了包含音频文件列表的文本文件,-c copy表示直接复制音频数据而不进行重新编码。
合并音频和视频的命令
在终端中运行以下命令即可将音频和视频合并为一个文件:
ffmpeg -i video.mp4 -i audio.mp3 -c:v copy -c:a aac -strict experimental output.mp4
参数说明:
- -i video.mp4:指定输入的视频文件。
- -i audio.mp3:指定输入的音频文件。
- -c:v copy:直接复制视频流,不重新编码。
- -c:a aac:使用 AAC 编码器处理音频流。
- -strict experimental:启用实验性 AAC 编码器。
- output.mp4:输出文件的名称。
其他合并音频和视频的命令方法
如果需要更简单的方式(如不重新编码),可以使用以下命令:
ffmpeg -i video.mp4 -i audio.mp3 -vcodec copy -acodec copy output.mp4
此方法直接复制音视频流,速度更快,但要求输入文件格式兼容。