Fix ffmpeg error output (#176)

This commit is contained in:
WithoutPants
2019-11-05 08:34:57 +11:00
committed by Leopere
parent fee2de5547
commit be12a9f5a1
4 changed files with 15 additions and 10 deletions

View File

@@ -91,6 +91,7 @@ func (e *Encoder) run(probeResult VideoFile, args []string) (string, error) {
}
buf := make([]byte, 80)
var errBuilder strings.Builder
for {
n, err := stderr.Read(buf)
if n > 0 {
@@ -100,6 +101,8 @@ func (e *Encoder) run(probeResult VideoFile, args []string) (string, error) {
progress := time / probeResult.Duration
logger.Infof("Progress %.2f", progress)
}
errBuilder.WriteString(data)
}
if err != nil {
break
@@ -113,7 +116,8 @@ func (e *Encoder) run(probeResult VideoFile, args []string) (string, error) {
err = waitAndDeregister(probeResult.Path, cmd)
if err != nil {
logger.Errorf("ffmpeg error when running command <%s>: %s", strings.Join(cmd.Args, " "), stdoutString)
// error message should be in the stderr stream
logger.Errorf("ffmpeg error when running command <%s>: %s", strings.Join(cmd.Args, " "), errBuilder.String())
return stdoutString, err
}

View File

@@ -14,7 +14,7 @@ type SceneMarkerOptions struct {
func (e *Encoder) SceneMarkerVideo(probeResult VideoFile, options SceneMarkerOptions) error {
args := []string{
"-v", "quiet",
"-v", "error",
"-ss", strconv.Itoa(options.Seconds),
"-t", "20",
"-i", probeResult.Path,
@@ -40,7 +40,7 @@ func (e *Encoder) SceneMarkerVideo(probeResult VideoFile, options SceneMarkerOpt
func (e *Encoder) SceneMarkerImage(probeResult VideoFile, options SceneMarkerOptions) error {
args := []string{
"-v", "quiet",
"-v", "error",
"-ss", strconv.Itoa(options.Seconds),
"-t", "5",
"-i", probeResult.Path,

View File

@@ -2,8 +2,9 @@ package ffmpeg
import (
"fmt"
"github.com/stashapp/stash/pkg/utils"
"strconv"
"github.com/stashapp/stash/pkg/utils"
)
type ScenePreviewChunkOptions struct {
@@ -14,7 +15,7 @@ type ScenePreviewChunkOptions struct {
func (e *Encoder) ScenePreviewVideoChunk(probeResult VideoFile, options ScenePreviewChunkOptions) {
args := []string{
"-v", "quiet",
"-v", "error",
"-ss", strconv.Itoa(options.Time),
"-t", "0.75",
"-i", probeResult.Path,
@@ -38,7 +39,7 @@ func (e *Encoder) ScenePreviewVideoChunk(probeResult VideoFile, options ScenePre
func (e *Encoder) ScenePreviewVideoChunkCombine(probeResult VideoFile, concatFilePath string, outputPath string) {
args := []string{
"-v", "quiet",
"-v", "error",
"-f", "concat",
"-i", utils.FixWindowsPath(concatFilePath),
"-y",
@@ -50,7 +51,7 @@ func (e *Encoder) ScenePreviewVideoChunkCombine(probeResult VideoFile, concatFil
func (e *Encoder) ScenePreviewVideoToImage(probeResult VideoFile, width int, videoPreviewPath string, outputPath string) error {
args := []string{
"-v", "quiet",
"-v", "error",
"-i", videoPreviewPath,
"-y",
"-c:v", "libwebp",

View File

@@ -12,7 +12,7 @@ type ScreenshotOptions struct {
func (e *Encoder) Screenshot(probeResult VideoFile, options ScreenshotOptions) {
if options.Verbosity == "" {
options.Verbosity = "quiet"
options.Verbosity = "error"
}
if options.Quality == 0 {
options.Quality = 1