feat: Adds Audio Channel Metadata - #1036
This commit is contained in:
committed by
Deluan Quintão
parent
0079a9b938
commit
e12a14a87d
@@ -73,7 +73,7 @@ var (
|
||||
durationRx = regexp.MustCompile(`^\s\sDuration: ([\d.:]+).*bitrate: (\d+)`)
|
||||
|
||||
// Stream #0:0: Audio: mp3, 44100 Hz, stereo, fltp, 192 kb/s
|
||||
bitRateRx = regexp.MustCompile(`^\s{2,4}Stream #\d+:\d+: (Audio):.*, (\d+) kb/s`)
|
||||
audioStreamRx = regexp.MustCompile(`^\s{2,4}Stream #\d+:\d+.*: (Audio): (.*), (.* Hz), (mono|stereo|5.1),*(.*.,)*(.(\d+).kb/s)*`)
|
||||
|
||||
// Stream #0:1: Video: mjpeg, yuvj444p(pc, bt470bg/unknown/unknown), 600x600 [SAR 1:1 DAR 1:1], 90k tbr, 90k tbn, 90k tbc`
|
||||
coverRx = regexp.MustCompile(`^\s{2,4}Stream #\d+:\d+: (Video):.*`)
|
||||
@@ -151,9 +151,14 @@ func (e *Parser) parseInfo(info string) map[string][]string {
|
||||
continue
|
||||
}
|
||||
|
||||
match = bitRateRx.FindStringSubmatch(line)
|
||||
match = audioStreamRx.FindStringSubmatch(line)
|
||||
if len(match) > 0 {
|
||||
tags["bitrate"] = []string{match[2]}
|
||||
tags["bitrate"] = []string{match[7]}
|
||||
}
|
||||
|
||||
match = audioStreamRx.FindStringSubmatch(line)
|
||||
if len(match) > 0 {
|
||||
tags["channels"] = []string{e.parseChannels(match[4])}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -175,6 +180,18 @@ func (e *Parser) parseDuration(tag string) string {
|
||||
return strconv.FormatFloat(d.Sub(zeroTime).Seconds(), 'f', 2, 32)
|
||||
}
|
||||
|
||||
func (e *Parser) parseChannels(tag string) string {
|
||||
if tag == "mono" {
|
||||
return "1"
|
||||
} else if tag == "stereo" {
|
||||
return "2"
|
||||
} else if tag == "5.1" {
|
||||
return "6"
|
||||
}
|
||||
|
||||
return "0"
|
||||
}
|
||||
|
||||
// Inputs will always be absolute paths
|
||||
func (e *Parser) createProbeCommand(inputs []string) []string {
|
||||
split := strings.Split(conf.Server.ProbeCommand, " ")
|
||||
|
||||
Reference in New Issue
Block a user