mirror of https://github.com/stashapp/stash.git
39 lines
849 B
Go
39 lines
849 B
Go
package ffmpeg
|
|
|
|
import (
|
|
"regexp"
|
|
"strconv"
|
|
)
|
|
|
|
var TimeRegex = regexp.MustCompile(`time=\s*(\d+):(\d+):(\d+.\d+)`)
|
|
var FrameRegex = regexp.MustCompile(`frame=\s*([0-9]+)`)
|
|
|
|
func GetTimeFromRegex(str string) float64 {
|
|
regexResult := TimeRegex.FindStringSubmatch(str)
|
|
|
|
// Bail early if we don't have the results we expect
|
|
if len(regexResult) != 4 {
|
|
return 0
|
|
}
|
|
|
|
h, _ := strconv.ParseFloat(regexResult[1], 64)
|
|
m, _ := strconv.ParseFloat(regexResult[2], 64)
|
|
s, _ := strconv.ParseFloat(regexResult[3], 64)
|
|
hours := h * 3600
|
|
minutes := m * 60
|
|
seconds := s
|
|
return hours + minutes + seconds
|
|
}
|
|
|
|
func GetFrameFromRegex(str string) int {
|
|
regexResult := FrameRegex.FindStringSubmatch(str)
|
|
|
|
// Bail early if we don't have the results we expect
|
|
if len(regexResult) < 2 {
|
|
return 0
|
|
}
|
|
|
|
result, _ := strconv.Atoi(regexResult[1])
|
|
return result
|
|
}
|