Всем привет!
Ситуация следующая есть n-ое количество ip камер, с которых необходимо конвертировать rtsp поток в изображение и желательно делать это параллельно.
Сделал тестовый пример с 3 камерами, выглядит следующим образом:
func convert1() {
cmd := "/usr/bin/ffmpeg"
args := []string{"-i", "rtsp://ip:port", "-f", "image2", "filename.ext"}
exec.Command(cmd, args...).Run()
}
func convert2() {
cmd := "/usr/bin/ffmpeg"
args := []string{"-i", "rtsp://ip:port", "-f", "image2", "filename.ext"}
exec.Command(cmd, args...).Run()
}
func convert3() {
cmd := "/usr/bin/ffmpeg"
args := []string{"-i", "rtsp://ip:port", "-f", "image2", "filename.ext"}
exec.Command(cmd, args...).Run()
}
func main() {
go convert1()
go convert2()
convert3()
fmt.Println("RTSP streams of videocameras successfully converted!")
}
В этом случае все отрабатывает отлично. Но как можно реализовать подобное, если мне допустим приходит информация о камерах в json и количество камер может быть все время разное. Как вариант преобразовывать json допустим в map, где ключи это наименования изображений, а значения - ссылки на rtsp потоки камер, либо наоборот. Затем проходится по этому map'у и производить конвертацию на основании тех данных, что содержатся в map'е. Тогда каким образом реализовать параллельную конвертацию, аналогично вышеприведенному примеру? Прошу помощи в решении данного вопроса.