如何在视频中提取音频
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
|