### 咱们想着将原音频和配音音频合并成一条音频,这里就须要进行音频同轨了。其命令是:ffmpeg -y -i D:\\ffmpeg_test\\org_video_sound_input.wav -i D:\\ffmpeg_test\\org_voice_input.wav -filter_complex amix=inputs=2:duration=longest D:\\ffmpeg_test\\org_voice_output.wav
## 将音频左右声道离开,用到 ffmpeg 的 map_channel
ffmpeg -y -i source.wav -map_channel 0.0.0 01left.wav -map_channel 0.0.1 01right.wav
### 音频截取, 截取 0 秒到 10 秒; 用 -ss 和 -t 选项, 从第 30 秒开始, 向后截取 10 秒的视频
ffmpeg -y -i source.wav -vn -acodec copy -ss 00:00:00 -t 00:00:08.784 ouput1.wav
ffmpeg -y -i source.wav -vn -acodec copy -ss 00:00:09.900 -t 00:00:00.530 ouputpe2.wav
ffmpeg -y -i source.wav -ss 00:00:09.900 -c copy -t 00:00:00.530 -codec copy ouputpe2.wav
//to 示意从什么工夫点完结
ffmpeg -y -ss 00:00:00 -to 00:00:08.784 -i source.wav -vn -acodec copy ouput1.wav
ffmpeg -y -ss 00:00:09.900 -to 00:00:10.150 -i source.wav -vn -acodec copy ouputpe2.wav
#### 补白, 手动生成一条 250ms 长的空白音频: test.wav, 设置采样率 8000, -ac 1 设置声道数为 1
# -ac 1: 声道数量转成 1 -ar 22050: 采样率转成 22050Hz -ab 64k: 比特率转成 64kb
ffmpeg -f lavfi -t 00:00:00.500 -i anullsrc -ar 8000 test3.wav -y
#### 音频拼接, 将多个 wav 按程序拼接生成一个 wav
ffmpeg -y -i "concat:ouput1.wav|test3.wav|ouputpe2.wav" -acodec copy result2.wav
### 将 3 个音频合成一个
ffmpeg -y -i ouput1.wav -i test3.wav -i ouputpe2.wav -filter_complex "[0:0] [1:0] [2:0] concat=n=3:v=0:a=1 [a]" -map "[a]" outputEnd.wav
### 设置采样率
ffmpeg -i 1.mp3 -i 2.mp3 -i 3.mp3 -filter_complex [0:0][1:0][2:0]concat=n=3:v=0:a=1[a] -map [a] -b:a 32k -ar 8000 4.mp3
### 双声道转单声道
ffmpeg -i 99.wav -ac 1 10.wav
Go 应用示例代码:
cmd := "ffmpeg -y -ss 00:00:00 -to 00:00:08.784 -i source.wav -vn -acodec copy ouput1.wav"
_, err := exec.Command("cmd", "/C", cmd).Output() //windows 下运行
//_, err := exec.Command("bash", "-c", cmd).Output() //linux 下运行
if err != nil {fmt.Println(fmt.Sprintf("Failed to execute command: %s,%s", cmd, err.Error()))
}
参考文档:
https://www.jianshu.com/p/2c0…
https://www.jianshu.com/p/7db…