::: warn Статья не дописана
:::
::: error Дописать про софт AVStream
:::
#Стрим нескольким получателям
Отправку потокового видео сразу нескольким получателям называют мультистримингом.
Это можно реализовать двумя способами: либо посылать все потоки прямо с площадки, где работает микшер, либо использовать сервер-посредник.
Существуют сервисы рестриминга, они обычно платные. Использовать ли их -- решать вам, исходя из ваших задач. Здесь подробнее разберем особенности мультистриминга с микшера, то есть, с места съемки.
Узкое место -- это канал связи на месте съемки. Обычно приходится беспокоится, чтобы хотя бы единственный поток не оборвался, готовят дублирующие каналы. Но бывает так, что за канал вы спокойны, можно прямо с микшера посылать потоки на несколько площадок. Просто помните, что битрейт, то есть, использование канала передачи данных, складывается по всем трем потокам и в случае, если канал будет нагружен (не обязательно вами), то вы с большей вероятностью рискуете получить сбой, причем, сразу по всем трем потокам.
Вариант с промежуточным сервером выглядит более надежным и по задействованию канала связи, и по нагрузке на микшер. Про нагрузку на микшер стоит рассказать подробнее.
Когда вы посылаете одинаковые потоки на разные адреса, можно обойтись без отдельного кодирования каждого потока, просто трафик увеличивается соответственно количеству потоков. Если же требования платформ отличаются и нужно готовить для них разные потоки, то на микшер ложится нагрузка по кодированию всего требуемого разнообразия потоков. Обычно микшер -- это персональный компьютер с программой-микшером. Мы в этом курсе разбираем работу с OBS, в коммерческой практике вы можете встретить, например, VMix -- мощный инструмент, но для технологий, изучаемых в этом курсе подходит плохо.
Вот у вас на компьютере работает довольно прожорливая программа, которая должна манипулировать видеопотоками в высоком разрешении, кодировать видео в запись и к этому кодировать то же выходное видео под разные требования -- обычный бытовой компьютер на этом уже покажет перегрузку процессора. Графические процессоры помогают справиться с такими задачами, но часто вычислительные мощности приходится экономить.
К этому добавляются ограничения в управлении и мониторинге трансляцией: режиссер и так занят, а трансляции частенько сбоят. И диагностикой проблем с конкретной платформой заниматься ему некогда, а придется -- тот же ВМикс логи показывает режиссеру на его компьютере, причем, нельзя остановить одну трансляцию, не прервав остальные.
Прерывание трансляции плохо не только тем, что зрители несколько секунд посмотрят на черный экран. Например, ВК при обрыве трансляции на определенное время прекращает событие и дальнейшая передача уже не видна по той же ссылке, там показывается запись. Аналогичное поведение можно видеть у Youtube.
Разгрузить процессор на месте стриминга можно, используя кодер -- такой же, каким захватывается изображение с компьютера в сетевой поток. Мы с такими устройствами будем работать в этом курсе. Кодеры обычно имеют встроенную возможность отправлять поток RTMP, как раз такие потоки принимаются стриминговыми платформами. Включаем кодер в выход для второго монитора, отправляем туда полноэкранную картинку с микшера -- вот и “бесплатный” для процессора способ вести трансляцию и не задумываться о нагрузке. Отметим, что это будет одна трансляция и управлять ею или диагностировать ее проблемы на стороне кодера практически невозможно.
Другой способ -- распределение задач между компьютерами. Если у вас есть возможность взять с собой два компьютера, то можно соединить их по сети (очень желательно -- гигабитной) и использовать протокол NDI для передачи выходного потока с микшера на вход такого же микшера на соседнем компьютере. Теперь режиссер может заниматься своими делами, а на втором компьютере инженер может вести запись и трансляцию, а в случае проблем пытаться их диагностировать.
Если вы решили делать мультистрим со своего устройства, то для этого в ОБС вам будет необходим плагин. Он добавит во вкладку Docks новую графу “multiple output”. Свой первый стрим настройте как обычно. Дальше перейдите в multiple output и добавьте новую цель. Дайте ей название, добавьте сервер и ключ. Ютуб пишет свой rtmp сервер рядом с ключом трансляции, в отличие от твича. Ссылку на сервера для него вы найдёте в материалах к уроку.
Нужно также решить, требуется ли вам перекодирование. Если в параметрах энкодера вы выберете взять из обс, то нагрузка на ваш компьютер будет гораздо меньше: ему не придётся перекодировать дополнительный поток для другой платформы. Поэтому, если все выбранные вами платформы готовы принять одинаковые потоки и не выставляют особенных требований, то старайтесь избегать дополнительного кодирования.