get ffprobe error from stderr

Signed-off-by: lee <lixiang12407@gmail.com>
This commit is contained in:
lee
2023-03-22 23:59:53 +08:00
parent d2a537fd00
commit 165696a57b
2 changed files with 8 additions and 2 deletions

View File

@@ -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
}

View File

@@ -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
}