fix: improve FFmpeg output parsing for resolution detection
This commit is contained in:
@@ -42,10 +42,19 @@ func (e *Encoder) GetMediaInfo(path string) (width, height int, interlaced bool,
|
|||||||
n, _ := output.Read(buf)
|
n, _ := output.Read(buf)
|
||||||
output.Close()
|
output.Close()
|
||||||
|
|
||||||
var w, h int
|
outputStr := string(buf[:n])
|
||||||
fmt.Sscanf(string(buf[:n]), "%dx%d", &w, &h)
|
|
||||||
|
|
||||||
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
|
return w, h, interlaced, nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user