GO调用FFMPEG小试

GO调用FFMPEG小试

Tags
Published
  • 太久没有捣鼓go了 都忘了 从头慢慢学一点
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.") }