package main
import (
"fmt"
"log"
"os"
"os/exec"
"path/filepath"
"strings"
)
func main() {
// 获取程序执行路径
exePath, err := os.Executable()
if err != nil {
log.Fatal(err)
}
dirPath := filepath.Dir(exePath)
// 遍历指定目录下的所有ogg文件
err = filepath.Walk(dirPath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
if strings.ToLower(filepath.Ext(info.Name())) != ".ogg" {
return nil
}
// 转换为mp3格式
outName := strings.TrimSuffix(info.Name(), filepath.Ext(info.Name())) + ".mp3"
cmd := exec.Command("ffmpeg", "-i", path, "-acodec", "libmp3lame", "-q:a", "2", filepath.Join(dirPath, outName))
err = cmd.Run()
if err != nil {
log.Printf("Error converting %s to mp3: %v", path, err)
} else {
fmt.Printf("Converted %s to mp3\n", path)
}
return nil
})
if err != nil {
log.Fatal(err)
}
fmt.Println("All ogg files converted to mp3.")
}