本文并非golang内置的库进行wav转mp3,而是通过golang调用Linux的lame命令进行转换。
在Linux环境下,默认情况是没有安装lame,所以首先需要安装lame(个人保存下载文件:http://pan.baidu.com/s/1qWp71G4#path=%252Fsharesoft%252Flinux%252Flame)。
Linux lame 安装及使用:
1. 解压lame压缩文件:tar -vzxf lame-3.98.4.tar.gz
2. 转到解压后的文件目录,依次执行:“./configure --enable-shared”,“make”,“make install”
3. lame使用方法:lame xxx.wav xxx.mp3 (这样就能把xxx.wav文件转换为xxx.mp3文件)
接下来将通过golang调用Linux的lame命令来实现wav转mp3。
1 package main 2 3 import ( 4 "log" 5 "os" 6 "os/exec" 7 ) 8 9 func main() { 10 wav_file := "/root/input.wav" // 需要转换的wav文件 11 mp3_file := "/root/output.mp3" // 转换后mp3文件存放路径 12 cmd := exec.Command("lame", wav_file, mp3_file) 13 err := cmd.Run() 14 if err != nil { 15 log.Fatal("Convert wav to mp3 error. ", err) 16 return 17 } 18 // wav转mp3成功后,如有必要则可删除wav原文件 19 os.Remove(wav_file) 20 } 21 22 // 成功的将 wav 文件转换了 mp3 文件 23 // 原 wav 文件大小:97.70KB 24 // 转换后 mp3 文件大小:9.79KB