diff --git a/internal/ffmpeg/ffmpeg.go b/internal/ffmpeg/ffmpeg.go index 5311aba0..a85be5b9 100644 --- a/internal/ffmpeg/ffmpeg.go +++ b/internal/ffmpeg/ffmpeg.go @@ -127,7 +127,7 @@ func parseArgs(s string) *ffmpeg.Args { var query url.Values if i := strings.IndexByte(s, '#'); i > 0 { - query = parseQuery(s[i+1:]) + query = streams.ParseQuery(s[i+1:]) args.Video = len(query["video"]) args.Audio = len(query["audio"]) s = s[:i] @@ -278,16 +278,3 @@ func parseArgs(s string) *ffmpeg.Args { return args } - -func parseQuery(s string) map[string][]string { - query := map[string][]string{} - for _, key := range strings.Split(s, "#") { - var value string - i := strings.IndexByte(key, '=') - if i > 0 { - key, value = key[:i], key[i+1:] - } - query[key] = append(query[key], value) - } - return query -} diff --git a/internal/streams/helpers.go b/internal/streams/helpers.go new file mode 100644 index 00000000..e59dab77 --- /dev/null +++ b/internal/streams/helpers.go @@ -0,0 +1,19 @@ +package streams + +import ( + "net/url" + "strings" +) + +func ParseQuery(s string) url.Values { + params := url.Values{} + for _, key := range strings.Split(s, "#") { + var value string + i := strings.IndexByte(key, '=') + if i > 0 { + key, value = key[:i], key[i+1:] + } + params[key] = append(params[key], value) + } + return params +}