diff --git a/internal/encoder/encoder.go b/internal/encoder/encoder.go index 434e23f..518236d 100644 --- a/internal/encoder/encoder.go +++ b/internal/encoder/encoder.go @@ -42,10 +42,19 @@ func (e *Encoder) GetMediaInfo(path string) (width, height int, interlaced bool, n, _ := output.Read(buf) output.Close() - var w, h int - fmt.Sscanf(string(buf[:n]), "%dx%d", &w, &h) + outputStr := string(buf[:n]) - interlaced = strings.Contains(string(buf[:n]), "TFF") || strings.Contains(string(buf[:n]), "BFF") + var w, h int + for i := 0; i < len(outputStr)-10; i++ { + if outputStr[i] >= '0' && outputStr[i] <= '9' { + fmt.Sscanf(outputStr[i:], "%dx%d", &w, &h) + if w > 0 && h > 0 { + break + } + } + } + + interlaced = strings.Contains(outputStr, "TFF") || strings.Contains(outputStr, "BFF") return w, h, interlaced, nil }