diff --git a/probe.go b/probe.go index 93ea902..86b795a 100644 --- a/probe.go +++ b/probe.go @@ -3,6 +3,7 @@ package ffmpeg_go import ( "bytes" "context" + "fmt" "os/exec" "time" ) @@ -33,13 +34,15 @@ func ProbeWithTimeoutExec(fileName string, timeOut time.Duration, kwargs KwArgs) } cmd := exec.CommandContext(ctx, "ffprobe", args...) buf := bytes.NewBuffer(nil) + stdErrBuf := bytes.NewBuffer(nil) cmd.Stdout = buf + cmd.Stderr = stdErrBuf for _, option := range GlobalCommandOptions { option(cmd) } err := cmd.Run() if err != nil { - return "", err + return "", fmt.Errorf("[%s] %w", string(stdErrBuf.Bytes()), err) } return string(buf.Bytes()), nil } diff --git a/probe_reader.go b/probe_reader.go index e45cc22..62c99f5 100644 --- a/probe_reader.go +++ b/probe_reader.go @@ -3,6 +3,7 @@ package ffmpeg_go import ( "bytes" "context" + "fmt" "io" "os/exec" "time" @@ -37,10 +38,12 @@ func ProbeReaderWithTimeoutExec(r io.Reader, timeOut time.Duration, kwargs KwArg cmd := exec.CommandContext(ctx, "ffprobe", args...) cmd.Stdin = r buf := bytes.NewBuffer(nil) + stdErrBuf := bytes.NewBuffer(nil) cmd.Stdout = buf + cmd.Stderr = stdErrBuf err := cmd.Run() if err != nil { - return "", err + return "", fmt.Errorf("[%s] %w", string(stdErrBuf.Bytes()), err) } return string(buf.Bytes()), nil }