Code refactoring for ffmpeg device and virtual

This commit is contained in:
Alex X
2024-05-22 12:58:21 +03:00
parent c41bddbbea
commit af05083a1f
3 changed files with 59 additions and 67 deletions

View File

@@ -189,21 +189,21 @@ func parseArgs(s string) *ffmpeg.Args {
s += "?video&audio"
}
args.Input = inputTemplate("rtsp", s, query)
} else if strings.HasPrefix(s, "device?") {
var err error
args.Input, err = device.GetInput(s)
if err != nil {
return nil
}
} else if strings.HasPrefix(s, "virtual?") {
var err error
if args.Input, err = virtual.GetInput(s[8:]); err != nil {
return nil
} else if i = strings.Index(s, "?"); i > 0 {
switch s[:i] {
case "device":
args.Input = device.GetInput(s[i+1:])
case "virtual":
args.Input = virtual.GetInput(s[i+1:])
}
} else {
args.Input = inputTemplate("file", s, query)
}
if args.Input == "" {
return nil
}
if query["async"] != nil {
args.Input = "-use_wallclock_as_timestamps 1 -async 1 " + args.Input
}