Приведу полный код решения вопроса на основе ответа Александра Павлюка, возможно другим пригодится:
package main
import (
"os/exec"
"sync"
)
func convert(stream, fileName string) {
cmd := "/usr/bin/ffmpeg"
args := []string{"-i", stream, "-f", "image2", fileName}
exec.Command(cmd, args...).Run()
}
func main() {
rtspStreams := map[string]string{
"filename.ext": "rtsp://ip:port",
"filename.ext": "rtsp://ip:port",
"filename.ext": "rtsp://ip:port",
}
var wg sync.WaitGroup
wg.Add(len(rtspStreams))
for fileName, stream := range rtspStreams {
go func(fileName, stream string) {
defer wg.Done()
convert(stream, fileName)
}(fileName, stream)
}
wg.Wait()
}