如何在视频中提取音频

1
ffmpeg -i input_video.mp4 -vn -acodec libmp3lame -q:a 2 output_audio.mp3
  • -i 输入文件
  • -vn 不处理视频
  • -acodec libmp3lame 使用libmp3lame编码器
  • -q:a 2 设置音频质量为2
  • output_audio.mp3 输出文件

如何给一段音频添加背景音乐

1. 将背景音乐音量设置为0.5

1
ffmpeg -i background_audio.mp3 -af "volume=0.5" background_audio_quiet.mp3
  • background_audio.mp3 背景音乐
  • background_audio_quiet.mp3 背景音乐音量设置为0.5

2. 将背景音乐和音频混合

1
ffmpeg -i input_audio.mp3 -i background_audio_quiet.mp3 -filter_complex amix=inputs=2:duration=longest  output_audio.mp3
  • inputs=2:duration=shortest 指定输入音频数量为2,并且以短的音频为基准 first以长视频为准 longest混合
  • output_audio.mp3 输出文件

如何混合后音频长度背景音乐一致

1
2
3
4
ffmpeg -i 1.mp3 -i temp_audio_1.mp3 -filter_complex "[1]anull[bg];[bg]aloop=loop=-1:size=2e+7[looped_bg];[0]anull[main];[looped_bg][main]amix=inputs=2:duration=first" temp_out_audio.mp3



降低采样率和声道数

1
2
ffmpeg -i input_audio.mp3 -ar 22050 -ac 1 input_audio_adjusted.mp3
ffmpeg -i background_audio.mp3 -ar 22050 -ac 1 background_audio_adjusted.mp3
  • -ar 22050 将采样率降低到 22050Hz,-ac 1 将声道数调整为 1。

合并
ffmpeg -i input_audio_adjusted.mp3 -i background_audio_adjusted.mp3 -filter_complex “[1]anull[bg];[bg]aloop=loop=-1:size=1e+6[looped_bg];[0]anull[main];[looped_bg][main]amix=inputs=2:duration=first” temp_out_audio.mp3

如何截取不要某一段音频

1
ffmpeg -i input_audio.mp3 -ss 00:00:00 -to 00:00:10 -c copy output_audio.mp3
  • -ss 00:00:00 开始时间
  • -to 00:00:10 结束时间
  • -c copy 不重新编码
  • output_audio.mp3 输出文件

1. 截取不要某一段音频

1
2
3
4
ffmpeg -i input_audio.mp3 -ss 00:00:00 -to 00:00:10 -c:a copy temp_audio_1.mp3
ffmpeg -i input_audio.mp3 -ss 00:00:30 -c:a copy temp_audio_2.mp3
cat temp_audio_1.mp3 temp_audio_2.mp3 > output_audio.mp3
rm temp_audio_1.mp3 temp_audio_2.mp3
  • ffmpeg -i input_audio.mp3 -ss 00:00:00 -to 00:00:10 -c:a copy temp_audio_1.mp3
  • -i input_audio.mp3:指定输入的原音频文件。
  • -ss 00:00:00:指定开始时间。
  • -to 00:00:10:指定结束时间。
  • -c:a copy:指定音频编码器为copy,不重新编码。
  • temp_audio_1.mp3:指定输出文件名。

2. 截取音频

1
ffmpeg -i input_audio.mp3 -ss 00:00:30 -c:a copy temp_audio_2.mp3
  • -i input_audio.mp3:再次指定输入的原音频文件。
  • -ss 00:00:30:指定开始时间。
  • -c:a copy:指定音频编码器为copy,不重新编码。
  • temp_audio_2.mp3:指定输出文件名。

3. 合并音频

1
cat temp_audio_1.mp3 temp_audio_2.mp3 > output_audio.mp3
  • 这一步是将前面截取得到的两个临时音频文件(temp_audio_1.mp3 和 temp_audio_2.mp3)进行拼接,拼接后的结果保存为 output_audio.mp3。

4. 删除临时文件

1
rm temp_audio_1.mp3 temp_audio_2.mp3

合并多个音频
先建文件夹 audio_list.txt 写入:
file ‘audio1.mp3’
file ‘audio2.mp3’
file ‘audio3.mp3’

1
ffmpeg -f concat -i audio_list.txt -c copy output_cat_audio.mp3