Как создать свой собственный HLS-сервер?

Как создать свой собственный HLS-сервер Изучение

С вашим собственным потоковым сервером вы полностью контролируете передачу своего контента. Это легко решается через веб-сервер благодаря протоколу HTTP Live Streaming (HLS).

Как работает HTTP-стриминг?

Первоначально этот процесс был разработан Apple для собственных устройств, но сейчас HTTP Live Streaming (HLS) является одним из самых известных протоколов для потоковой передачи аудиовизуального мультимедиа в Интернете. Поскольку передача осуществляется через HTTP (один из краеугольных камней Интернета), любое устройство с доступом в Интернет может обрабатывать HLS.

При использовании HLS небольшие пакеты генерируются из потока данных во время потока. Затем их можно быстро загрузить с конечного устройства и соединить вместе. Это обеспечивает быструю передачу — в лучшем случае зрители потока ничего не заметят о разделении. Для обеспечения правильной композиции видео часть HLS также является индексным файлом. Это сообщает конечному устройству правильный порядок пакетов данных.

Разделение видео имеет еще одно преимущество: качество видео можно регулировать во время трансляции без необходимости полной перезагрузки потока. Следующий пакет просто загружается в более высоком или более низком качестве.

Затем вы можете интегрировать поток в свой собственный сайт — и это большое преимущество HLS. Плеер, отображающий поток, можно легко установить с помощью HTML5.

Зачем вам собственный потоковый сервер?

Потоковое вещание становится все более популярным — и не только благодаря таким порталам фильмов и сериалов, как Netflix или Amazon. Частные лица и небольшие компании также осознают потенциал прямых трансляций. Для компаний передачи интересны для презентации продуктов, например. Вебинары или семинары также можно проводить в потоковом режиме.

Технические характеристики оборудования для потоковой передачи HLS

Чтобы настроить подходящее серверное решение, вы должны сначала узнать, какие аппаратные требования предъявляет к нему HLS Streaming.

Мощность процессора (ЦП)

Вам не нужна большая вычислительная мощность, особенно если сервер потоковой передачи используется только для распределения потока данных. 2 ядра, каждое по 2 ГГц, например, должно быть достаточно для небольших проектов. Чтобы быть готовым к растущим требованиям, рекомендуется 4 ядра ЦП.

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

Оперативная память в основном используется для кэширования во время потоковой передачи. 2 ГБ оперативной памяти уже достаточно для небольших проектов. Если вы хотите реализовать более крупные проекты, вам следует перейти на 4 ГБ.

Читайте также:  "SIMD технология - применение и уникальные особенности"

Хранение на жестком диске (HDD/SDD)

Вам вряд ли понадобится место для хранения файлов сервера. В принципе, веб-сервер бережлив. 10 Гб уже может хватить. Тем не менее, мы рекомендуем быстрое хранилище SSD, чтобы на этом этапе не возникало узких мест. Таким образом, требования к хранению в основном связаны с видеофайлами, которые вы хотите сохранить на сервере. Поэтому, если вы записываете свой поток на жесткий диск сервера, вам потребуется гораздо больше места для хранения.

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

Быстрое соединение имеет первостепенное значение при потоковой передаче. Пропускная способность всегда должна быть достаточной, чтобы зрителям не приходилось сталкиваться с плохим качеством изображения или длительной загрузкой. Размер потока данных, который должна передавать серверная инфраструктура, зависит от качества видео и количества зрителей. Домашнего интернет-соединения для этого должно быть недостаточно, поэтому вам обязательно стоит запустить сервер потоковой передачи в профессиональном дата-центре.

Разместите потоковый сервер HLS в IONOS

В портфеле IONOS есть различные серверные решения:

  • Выделенный сервер : Собственное оборудование с процессорами AMD или Intel и поминутная оплата
  • vServer : виртуализация на высшем уровне — для независимости и безопасности
  • Облачный сервер : очень гибко масштабируется и подходит для самых разных приложений.

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

Наша рекомендация для вашего потокового сервера : если вы только начинаете использовать свой потоковый сервис или в любом случае ожидаете небольшой проект, мы рекомендуем Cloud Server M. При этом у вас есть два ядра процессора и 2 ГБ оперативной памяти. Кроме того, имеется быстрое хранилище SSD объемом 60 ГБ. Большое преимущество: как только ваши требования увеличатся, вы можете просто заказать дополнительные ресурсы. Вы также можете решить для себя, предпочитаете ли вы работать с Windows или Linux.

Учебник: Настройка потокового сервера

Вы можете настроить свой собственный сервер для прямой трансляции HTTP всего за несколько шагов. Необходимое для этого программное обеспечение находится в свободном доступе в Интернете. В этом примере мы используем сервер Windows с программным обеспечением Nginx.

Читайте также:  Введение в Cron - основы и практические примеры для начинающих

Шаг 1: Установите соединение с сервером

Для того, чтобы иметь возможность работать на вашем сервере, вы должны сначала установить к нему соединение. В IONOS войдите в свою учетную запись пользователя, а затем вызовите облачную панель (вы можете найти эту функцию в области «Сервер и облако»). В разделе » Подключение к удаленному рабочему столу » есть ссылка для скачивания. Щелкните здесь, чтобы загрузить данные, необходимые для подключения.

В Windows вы можете просто запустить загруженный файл, дважды щелкнув его, и вы попадете в программу «Подключение к удаленному рабочему столу». Там вам нужно только ввести пароль, который вы также можете найти в облачной панели. Откроется окно, в котором показан рабочий стол сервера.

В Windows вы можете просто запустить загруженный фай

В облачной панели IONOS вы найдете информацию о том, как подключиться к вашему будущему потоковому серверу.

Шаг 2: Установите Nginx

Для потоковой передачи HTTP используется стандартный веб-сервер на базе Nginx. При загрузке убедитесь, что программное обеспечение содержит модуль RTMP — он необходим для передачи — и предназначено для использования с сервером Windows.

Разархивируйте пакет программного обеспечения в любое место по вашему выбору, затем откройте командную строку Windows или Windows PowerShell и перейдите во вновь созданную папку Nginx. Запустите веб-сервер с помощью следующей команды:

start nginx

Сначала вы не заметите никаких изменений. Чтобы убедиться, что сервер действительно работает, вы можете посмотреть свой собственный IP-адрес в браузере. Теперь здесь должно быть видно сообщение от веб-сервера.

Шаг 3. Настройте конфигурацию

На следующем шаге вам нужно настроить конфигурацию веб-сервера. В соответствующей папке вы должны найти файл nginx.conf. В конце добавьте следующую часть RTMP :

rtmp {
    server {
        listen 1935;
        chunk_size 4000;
        application show {
            live on;
            hls on;
            hls_path /nginx/hls/;
            hls_fragment 3;
            hls_playlist_length 60;
            deny play all;
        }
    }
}

Вы можете сами выбрать путь для своего HLS-потока. Название «приложения» (здесь «показать») полностью зависит от вас. Важно только то, что вы продолжаете последовательно использовать конфигурации в других местах.

Вы также должны хранить настройки HTTP в файле конфигурации:

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        off;

    server_names_hash_bucket_size 128;

## Start: Timeouts ##
    client_body_timeout   10;
    client_header_timeout 10;
    keepalive_timeout     30;
    send_timeout          10;
    keepalive_requests    10;
## End: Timeouts ##

    server {
        listen       80;
        server_name  localhost;
    location /hls {
        add_header Cache-Control no-cache;
        if ($request_method = 'OPTIONS') {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Max-Age' 1728000;
            add_header 'Content-Type' 'text/plain charset=UTF-8';
            add_header 'Content-Length' 0;
            return 204;
        }

        types {
            application/vnd.apple.mpegurl m3u8;
            video/mp2t ts;
        }

        root /nginx/;
    }
}

Сохраните файл и перезапустите веб-сервер. Самый простой способ сделать это — остановить процесс или процессы Nginx в диспетчере задач, а затем снова запустить сервер с помощью команды.

Читайте также:  Как восстановить поврежденные файлы при обновлении и исправить ошибку 0x8007000d?

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

Чтобы ваш поток был загружен, вам нужно открыть порт. С IONOS это также возможно через облачную панель. В настройках брандмауэра (в разделе «Сеть») необходимо создать новую запись и включить TCP-порт 1935. Вам также следует открыть порт 80 для HTTP, если ваш сервер еще не открыл этот порт. Вы также предварительно указали эти два порта в файле конфигурации Nginx.

Чтобы ваш поток был загружен, вам нужно откр

Освободите соответствующие порты, чтобы передача могла работать.

Шаг 5: Запустите прямую трансляцию HTTP

Для прямой трансляции вам по-прежнему нужно правильное программное обеспечение. Программное обеспечение Open Broadcaster (OBS) особенно популярно среди стримеров. Затем введите туда следующий адрес:

rtmp://<ip address>/show</ip>

На этом этапе вы должны ввести IP-адрес сервера. Клиенты IONOS могут найти их, например, в Cloud Panel. В целях тестирования вы также можете ввести localhost вместо IP-адреса.

Шаг 6: Интегрируйте поток на веб-сайт

Теперь вы можете получить доступ к своему потоку с помощью медиаплеера, такого как VLC. Однако HLS позволяет предлагать поток через веб-сайт. Для этого необходимо либо адаптировать существующий веб-сайт, либо создать новый HTML-документ. Веб-сервер Nginx уже поставляется с HTML-документом: index.html. Введите туда следующий исходный код:

<!DOCTYPE html>
<html>
    <head>
    <meta charset=utf-8 />
    <title>HLS</title>
        <link href="js/video-js.css" rel="stylesheet">
        <script src='js/video.min.js'></script>
        <script src="js/videojs-http-streaming.js"></script>
    </head>
<body>

<div align="center">
    <video-js id="live_stream" class="video-js vjs-default-skin vjs-big-play-centered" controls preload="auto" autoplay="true" width="1280" height="720" poster="/poster.jpg">
    <source src="/hls/test.m3u8" type="application/x-mpegURL">

    <p class='vjs-no-js'>
      To view this video please enable JavaScript, and consider upgrading to a web browser that
      <a href='https://videojs.com/html5-video-support/' target='_blank'>supports HTML5 video</a>
    </p>
    </video-js>
    
  <script>
    var player = videojs('live_stream');
  player.play();
  </script>
</div>
    
</body>
</html>

Это рудиментарный веб-сайт, который отображает только проигрыватель Video.js с вашим потоком. Если вы хотите сделать трансляцию доступной для других, вам следует добавить дополнительный контент и сделать веб-сайт более привлекательным. Б. через CSS. Или вы встраиваете часть в существующий, уже оформленный веб-сайт. Важно, чтобы путь к видеофайлам был указан правильно: . Если вы хотите дать папке или файлу другое имя, вы также должны изменить его здесь.

Для того, чтобы плеер заработал, вам еще потребуются соответствующие файлы JavaScript и CSS. Их можно найти в официальном репозитории Video.js на GitHub. Поместите их в ту же подпапку, что и HTML-документы. Теперь на сайте виден видеоплеер с вашим стримом.

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