package ffmpeg import ( "fmt" "os" "os/exec" "strconv" ) const ( FFPROBE = "/usr/bin/ffprobe" ) // Remove executes mega-rm src func Duration(fn string) (duration float64, err error) { // ffprobe -i "KatyDid's Channel, The JACK Show Reads Graham Nolans Chuck Dixon Tweet.mp3" -show_entries format=duration -v quiet -of csv="p=0" //"\"" + fn + "\"", args := []string{ "-i", `""` + fn + `""`, "-show_entries", "format=duration", "-v", "quiet", "-of", "csv=\"p=0\"", } fmt.Println("[ffmpeg]", FFPROBE, args) //_duration, err := exec.Command(FFPROBE, args...).Output() cmd := exec.Command(FFPROBE, args...) cmd.Stderr = os.Stderr data, err := cmd.Output() if err != nil { fmt.Println("[ffmpeg] error[0]:", err) fmt.Println(data) return 0, err } duration, err = strconv.ParseFloat(string(data), 64) if err != nil { fmt.Println("[ffmpeg] error[1]:", err) return 0, err } return }