Многие знают, что популярная программа записи экрана или других источников – OBS Studio – позволяет сохранять видео на диск компьютера или транслировать через интернет на такие сервисы, как Twitch, YouTube и другие. В данной статье мы разберем еще одну встроенную возможность OBS Studio – трансляцию видео не в интернет, а по локальной сети.
Читайте также, что делать, если при захвате экрана в OBS Studio отображается чёрный экран.
Трансляция видео по протоколу UDP
Установите и запустите приложение OBS Studio, добавьте источник видео на сцену, например, экран или веб-камеру. Откройте окно настроек, нажав на соответствующую кнопку в интерфейсе программы.
В меню слева выберите пункт "Вывод", в самом верхнем поле "Режим вывода" переключитесь на пункт "Расширенный".
Появятся вкладки с расширенными настройками, перейдите на вкладку "Запись". В поле "Тип" выберите пункт "Пользовательский вывод (FFmpeg)".
В поле "Тип вывода FFmpeg" выберите пункт "На указанный адрес (URL)".
В данном примере мы будем использовать протокол UDP (User Datagram Protocol – протокол пользовательских датаграмм) для передачи видео по локальной сети. В конце статьи описан способ трансляции по протоколу RTP (Real-time Transport Protocol – транспортный протокол в реальном времени). В поле "Путь к файлу или URL-адрес" нужно указать адрес, на который будет транслироваться видео. Здесь присутствуют два варианта: указать адрес конкретного компьютера (режим unicast) или широковещательный IP (режим multicast).
Режим unicast
Если указать адрес конкретного компьютера, видео будет транслироваться только ему.
Перед тем как продолжить, нужно узнать IP-адрес устройства, которое будет принимать видеотрансляцию.
Просмотр IP-адреса компьютера с Windows
Нажмите комбинацию клавиш "Windows + R" на клавиатуре, в появившемся окне наберите команду:
cmd
и нажмите клавишу "Enter". В открывшемся окне командной строки выполните команду:
ipconfig
IP-адрес компьютера будет отображаться в строке "IPv4-адрес" раздела "Адаптер беспроводной локальной сети Беспроводная сеть" если компьютер подключен по Wi-Fi или раздела "Адаптер Ethernet" если компьютер подключен кабелем к сети.
Просмотр IP-адреса устройства на Android
В настройках Android выберите пункт Wi-Fi, в списке сетей нажмите на иконку просмотра деталей рядом с именем подключенной сети Wi-Fi. В списке подробностей будет отображаться IP-адрес, назначенный Android-устройству Wi-Fi сетью. Если Android-устройство (например, SMART TV) подключено к сети кабелем, смотрите пункт настроек "Ethernet".
URL-адрес для unicast-режима
Узнав IP-адрес устройства, на котором Вы собираетесь смотреть трансляцию, укажите в OBS Studio URL-адрес в следующем формате:
udp://192.168.0.104:9999?pkt_size=1316
где "192.168.0.104" – IP-адрес принимающего видеотрансляцию устройства в сети, "9999" – порт (можно указать любой другой свободный), "?pkt_size=1316" – параметр, отвечающий за размер MTU (maximum transmission unit – максимальная единица передачи данных), так как некоторые проигрыватели (например, VLC 3.0+) имеют внутреннее ограничение 1316 байт на принимаемый размер MTU для протокола UDP.
Режим multicast
В режиме мультикаста, видео смогут принимать несколько устройств, но данный способ создает огромную нагрузку на инфраструктуру сети (роутер и т. д.), что может привести к ее падению (как правило, лечится включением/выключением роутера). Кроме того, в некоторых локальных сетях данный способ вообще может не работать. Адрес мультикаста указывается в формате:
udp://224.0.0.1:9999?pkt_size=1316
Как видно он отличается от unicast’а общепринятым широковещательным IP-адресом 224.0.0.1. Для стандартно сконфигурированного роутера (основной шлюз – 192.168.0.1, маска подсети – 255.255.255.0) можно указать следующий широковещательный адрес: 192.168.0.255.
Настройки кодека
В выпадающем списке "Формат контейнера" выберите пункт "mpegts". Поле "Битрейт видео" отвечает за качество передаваемого видео. Значения по умолчанию "2500 Kbps" достаточно для качественной передачи Full HD 1080p видео по локальной сети, но при желании его можно увеличить или уменьшить. Поставьте галочку напротив пункта "Показать все кодеки (даже потенциально несовместимые)", в выпадающем списке "Кодировщик видео" выберите кодек "libx264". Если у Вас установлена видеокарта NVIDIA и она поддерживает аппаратное конвертирование H264, выберите кодек "h264_nvenc (libx264)".
В поле "Битрейт аудио" установите значение "96 Kbps". Так же, как и в случае с битрейтом видео, данное значение по желанию можно варьировать. В списке "Кодировщик аудио" выберите кодек "aac".
Нажмите кнопки "Применить" и "ОК", чтобы сохранить настройки.
Для запуска трансляции видео нажмите кнопку "Начать запись" (!!! именно "Начать запись", а не "Запустить трансляцию" !!!) в главном окне OBS Studio.
Просмотр видео
Смотреть видео можно на любом устройстве (компьютер, телефон, планшет, Smart TV и др.), подключенном к той же локальной сети, в которой находится компьютер с OBS Studio, транслирующий видео. Для воспроизведения видеотрансляции необходимо установить приложение-проигрыватель, поддерживающее работу с потоковым видео, передаваемым по протоколу UDP. Вы можете использовать любой подходящий плеер. Отлично справляется с этой задачей медиапроигрыватель VLC (есть версии для Windows, Android и других операционных систем).
Просмотр видеотрансляции в VLC для Windows
Откройте проигрыватель VLC, выберите команду меню "Медиа > Открыть URL…". В поле "Введите сетевой адрес…" введите адрес, который Вы указывали в программе OBS Studio, добавив символ "@" перед IP-адресом (параметр "?pkt_size=1316" можно опустить). Для режима unicast адрес будет следующего вида:
udp://@192.168.0.104:9999
Не забудьте поменять IP-адрес на свой. Для режима multicast нужно указать широковещательный IP-адрес:
udp://@224.0.0.1:9999
Также существует сокращенная запись, работающая для обоих режимов:
udp://@:9999
Нажмите кнопку "Воспроизвести" для запуска воспроизведения потокового видео.
Просмотр видеотрансляции в VLC для Android
Запустите приложение VLC, нажмите на иконку меню в левом верхнем углу, в открывшемся меню выберите пункт "Поток". В соответствии с тем, что Вы указали в OBS Studio, введите в поле "Сетевой адрес MRL" адрес unicast (192.168.0.104 замените на свой IP-адрес):
udp://@192.168.0.104:9999
широковещательный multicast:
udp://@224.0.0.1:9999
или сокращенный адрес потокового видео, работающий для обоих режимов:
udp://@:9999
Нажмите на иконку с треугольником для запуска воспроизведения потокового видео.
Трансляция видео по протоколу RTP
Так как RTP-протокол работает поверх UDP, настройки в OBS Studio будут почти такими, как описано выше. Отличия будут только в ссылке и контейнере видео. Ссылка для трансляции по RTP-протоколу в режиме unicast будет следующего формата:
rtp://192.168.0.104:1234
где 192.168.0.104 – IP-адрес принимаемого видео устройства в сети, 1234 – порт (можно указать любой другой свободный, главное, чтобы был четный). Параметр ограничения размера MTU для RTP-протокола добавлять не нужно. Формат контейнера нужно заменить на "rtp_mpegts". Настройки кодировщиков и битрейта такие же, как в примере с протоколом UDP.
В режиме вещания multicast IP-адрес меняется на широковещательный:
rtp://224.0.0.1:1234
Просмотр видеотрансляции в VLC
Для просмотра видеотрансляции на принимающем устройстве в плеере VLC правила указания адреса такие же, как и для UDP, только протокол заменяется на "rtp", т.е. для режима unicast (192.168.0.104 замените на свой IP-адрес):
rtp://@192.168.0.104:1234
для широковещательного режима multicast:
rtp://@224.0.0.1:1234
или сокращенная запись для обоих режимов:
rtp://@:1234
А как например транслировать камеру и рабочий стол по разным портам к примеру? И вообще как сделать 2 потока ?