Создайте сервер SRT: настройте свой собственный сервер потоковой передачи

Создайте сервер SRT Изучение

Secure Reliable Transport (SRT) — это протокол с открытым исходным кодом, который можно использовать для отправки видеопотоков через Интернет. Если вы настроите свой собственный потоковый сервер SRT, вы будете независимы от других платформ.

Что такое SRT-сервер?

С помощью сервера SRT вы транслируете видеопотоки в режиме реального времени через Интернет. Будь то живое или записанное видео — сервер отправляет поток всем людям, которые хотят вас посмотреть. Собственный сервер не зависит от таких платформ, как Twitch или YouTube.

Протокол SRT имеет открытый исходный код, и пользователи могут свободно использовать потоковое решение. Для передачи видео SRT использует протокол пользовательских дейтаграмм (UDP), который регулирует передачу. Однако SRT добавляет в UDP некоторые интересные факторы, которые делают протокол (как следует из названия) безопасным и надежным.

Чтобы сделать передачу безопасной, SRT дополнительно использует шифрование AES-128 или AES-256. Получатели должны знать ключ, чтобы иметь возможность обрабатывать сигнал. Невовлеченные третьи стороны не имеют возможности перехватить или даже изменить поток в смысле атаки «человек посередине».

В отличие от других средств передачи, Интернет не является особенно стабильной сетью. Потеря данных происходит регулярно во время передачи. Чтобы противодействовать этому, SRT полагается на протокол ARQ. Это проверяет, все ли блоки данных поступили на принимающую сторону, и возвращает их отправляющему устройству. Если подтверждение для пакета данных не получено, эти отсутствующие пакеты — и только они — отправляются повторно. Весь процесс проходит настолько быстро, что вы не замечаете никаких выпадений при просмотре стрима.

Преимущества сервера SRT

Имея собственный сервер SRT, вы можете воспользоваться сразу несколькими преимуществами:

  • Независимость : когда вы настраиваете свой собственный потоковый сервер, вы полностью контролируете, что и как вы транслируете.
  • Открытый исходный код : протокол может свободно использоваться и адаптироваться всеми пользователями.
  • Безопасность : SRT добавляет сквозное шифрование к вашему потоку. Это означает, что нежелательные третьи лица не могут видеть ваши потоки.
  • Качество : С вашим сервером SRT вы можете сами решить, какой формат файла вы хотите передать. Также возможны высококачественные кодеки, такие как HEVC.
  • Стабильность : благодаря использованию протокола ARQ поток остается стабильным, даже если интернет-соединение вызывает проблемы.
Читайте также:  Пошаговое руководство по активации кнопки после успешной отправки данных на сервер в Flutter

Факт

Haivision, компания, которая изобрела протокол, получила премию «Эмми» в 2018 году. Комитет рассматривал SRT как важный вклад в дальнейшее развитие передачи видео через Интернет.

Требования к собственному серверу SRT

В принципе, вы можете запустить потоковый сервер SRT на своем ПК или ноутбуке дома. Но это рекомендуется только в ограниченной степени: эта версия возможна только в том случае, если у вас очень небольшая аудитория. Преимущество профессионального сервера в том, что он всегда доступен и может без проблем обрабатывать большой объем доступа. На что обратить внимание при аренде сервера?

Процессор (ЦП)

Сервер SRT почти не требует процессора. Если вы используете сервер только для раздачи своих видеопотоков, достаточно одного ядра процессора. Только если вы также используете сервер для других задач, таких как кодирование потока или даже в качестве игрового сервера, вам нужно планировать большую мощность процессора.

Оперативная память (ОЗУ)

Оперативная память вряд ли имеет решающее значение для выбора подходящего серверного пакета. Для стрима достаточно 1 гигабайта оперативной памяти. Только с более крупными проектами вы должны разрешать больше оперативной памяти.

Дисковое пространство

Серверу, который вы настроили для своих потоков SRT, почти не требуется место на диске. Вам потребуется соответствующий объем дискового пространства только в том случае, если вы также используете сервер для хранения мультимедиа. Это было бы возможно, например, если вы храните там видео, которые затем транслируете. Запись потоков на сервер также возможна и требует соответственно большого количества места.

Пропускная способность

Вам нужна большая пропускная способность, особенно для высококачественных потоков, которые вы хотите использовать для охвата большого количества людей. С профессиональными хостерами вы обычно получаете достаточную пропускную способность, чтобы транслировать с идеальным качеством изображения даже для многих зрителей.

Сервер SRT в IONOS: какой пакет подходит?

Вы можете легко создать свой потоковый сервер SRT на IONOS. Вы можете выбрать один из трех различных вариантов:

  • Выделенный сервер : с этим типом сервера у вас есть собственный физический экземпляр, которым вам не нужно делиться ни с кем.
  • VPS : этот вариант, также известный как vServer, предоставляет вам полностью виртуализированный экземпляр сервера.
  • Облако : С облачным сервером вы получаете полную гибкость, потому что дополнительные мощности могут быть забронированы быстро и легко.
Читайте также:  Эффективные способы использования сервисов в middleware для разработки на ASP.NET Core

Вы можете выбрать все серверы разных «размеров». Есть пакеты со сравнительно небольшим объемом оперативной памяти, места на жестком диске и мощностью процессора, а есть очень объемные.

При выборе сервера цена также играет роль. Облачные серверы обычно недороги и оплачиваются в IONOS поминутно. Вы платите только за те ресурсы, которые вы забронировали. Эту модель биллинга также можно найти с выделенным сервером. Однако этот тип сервера обычно намного дороже, поскольку вы арендуете готовое устройство. Виртуальный частный сервер (VPS) стоит между двумя другими, но имеет фиксированную ежемесячную плату.

Создание сервера SRT: шаг за шагом

Для создания собственного сервера SRT лучше всего использовать операционную систему Linux. Затем вы можете использовать бесплатное программное обеспечение SRT Live Server (SLS). В этом уроке мы используем Ubuntu. Сервер можно установить полностью через терминал. Вам не нужен визуальный пользовательский интерфейс. Так что обслуживать сервер через SSH-соединение не проблема.

Шаг 1: Установите SRT и библиотеки

Сначала вы обновляете свою систему и устанавливаете важное программное обеспечение и библиотеки, необходимые для настройки сервера. К ним относятся, например, cmake (средство программирования) и OpenSSL (библиотека шифрования).

apt update
apt upgrade
sudo -i
apt install libinput-dev make cmake tcl openssl zlib1g-dev gcc perl net-tools nano ssh git zip unzip tclsh pkg-config cmake libssl-dev build-essential -y

Затем получите журнал SRT с GitHub:

git clone https://github.com/Haivision/srt.git
cd srt
./configure
make
git checkout v1.4.3 && ./configure && make -j8 && make install
cd ../

Шаг 2: Установите SRT Live Server

Теперь вы можете загрузить и установить серверное программное обеспечение с Gitlab.

git clone https://gitlab.com/mattwb65/srt-live-server.git
cd srt-live-server
git checkout v1.4.3 && ./configure && make -j8 && make install
make -j8

Вы должны увидеть сообщение об успешной установке.

Шаг 3: Настройте сервер

Вы также получите готовый файл конфигурации с программным обеспечением. Вы можете использовать или адаптировать их, или, как в этом руководстве, создать новый файл и оставить только старый в качестве резервной копии.

mv sls.conf sls.bak
pico sls.conf

Теперь заполните этот новый файл конфигурации. Следующий код является хорошей основой для вашего собственного сервера:

srt {
    worker_threads 1;
    worker_connections 200;
    http_port 8181;
    cors_header *;
    log_file /dev/stdout;
    server {
        listen 8282;
        latency 2000;
        domain_player play;
        domain_publisher live;
        default_sid play/stream/example;
        backlog 10;
        idle_streams_timeout 10;
        app {
            app_publisher stream;
            app_player stream;
        }
    }
}

В конфигурационном файле особенно важны следующие моменты: С одной стороны, вы освобождаете два порта. В нашем случае это 8181 и 8282. На практике можно выбрать и другие порты, лишь бы они больше нигде не использовались. С другой стороны, информация после «default_sid» важна. Вместо «пример» вы также можете ввести другой термин. Этот идентификатор потока интересен для некоторых инструментов потоковой передачи.

Читайте также:  10 лучших редакторов кода и IDE Python

Сохраните введенные данные и выйдите из документа. Теперь вам нужно правильно назначить пути, и вы можете запустить сервер. Чтобы остановить сервер, используйте комбинацию клавиш [Ctrl] + [C].

cd bin
ldconfig
./sls -c ../sls.conf

Если сервер SRT запущен, вы можете отслеживать проц

Если сервер SRT запущен, вы можете отслеживать процессы через терминал.

Шаг 4: Освободите порты

Чтобы люди могли получить доступ к вашим потокам, вам все равно нужно открыть порты. Вы уже указали, какие это в файле конфигурации: 8181 и 8282. Кроме того, включите порт для доступа по SSH.

ufw allow 8181/udp
ufw allow 8181/tcp
ufw allow 8282/udp
ufw allow 8282/tcp
ufw allow 22/tcp
ufw allow 22/udp

Кроме того, вы также освобождаете порты в настройках брандмауэра. В IONOS вы можете найти эту опцию на облачной панели в пункте меню «Сеть».

Кроме того, вы также освобождаете порты в настройках бран

Также откройте необходимые порты в настройках брандмауэра.

Шаг 5: Отправить трансляцию

После того, как сервер настроен, вы можете отправлять и получать на него потоки. Для этого можно использовать различные инструменты. Эти программные решения особенно подходят для потоков SRT:

  • OBS : Streaming Studio популярна для широкого спектра видеопотоков, например. B. также для потоков Twitch.
  • Larix Broadcaster : мобильное приложение позволяет использовать камеру вашего смартфона для потоковой передачи.
  • VLC : Медиаплеер VLC также может работать с протоколом SRT.

Независимо от того, какое программное обеспечение вы используете, для настройки потока вам нужен IP-адрес вашего сервера и порт, который он разрешает. В нашем случае это 8282. Кроме того, SRT имеет два важных режима: caller и listener. В SRT вызывающая сторона — это отправляющая сторона. Соответственно, слушатель является принимающим объектом.

В зависимости от того, какими программами вы пользуетесь, могут понадобиться дальнейшие настройки, но в принципе URL по схеме:

srt://[IP-Adresse]:[Port]?mode=[caller/listener]

Например, когда вы отправляете свой поток на сервер, URL-адрес может выглядеть так:

srt://192.168.0.1:8282?mode=caller

Вы даете своим зрителям URL-адрес с режимом прослушивания. Они могут ввести адрес как сетевой источник в VLC player и смотреть его. Затем вы используете URL-адрес для отправки в приложении Larix или в OBS.

Оцените статью
Блог о программировании
Добавить комментарий