###我们想着将原音频和配音音频合并成一条音频,这里就需要进行音频同轨了。其命令是:
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...
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。