golang实现wav文件转换为mp3文件

时间:2024-03-11 14:42:29

  本文并非golang内置的库进行wav转mp3,而是通过golang调用Linux的lame命令进行转换。

  在Linux环境下,默认情况是没有安装lame,所以首先需要安装lame(个人保存下载文件:http://www.linuxfromscratch.org/blfs/view/stable/multimedia/lame.html)。

  Linux lame 安装及使用:
  1. 解压lame压缩文件:tar -vzxf lame-3.**.*.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
// 反过来将mp3转为wav的linux命令:mpg123 -w 123.wav 123.mp3