From 165696a57b69fd6ded7d33ea863b3f9e3f91077b Mon Sep 17 00:00:00 2001 From: lee Date: Wed, 22 Mar 2023 23:59:53 +0800 Subject: [PATCH] get ffprobe error from stderr Signed-off-by: lee --- probe.go | 5 ++++- probe_reader.go | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) 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 }