Создайте свой собственный сервер потокового видео в реальном времени с помощью Linux

Большинство инструментов и сайтов для потокового вещания являются бесплатными для общественности, но они часто требуют создания учетной записи, предоставляя информацию, которую вы, возможно, не хотите отображать в Интернете. Они могут(can ) скрывать некоторый контент за рекламой и включать запутанные Условия обслуживания(Service) , которые они могут даже не соблюдать сами. 

Есть те, кому нравится возможность вести прямую трансляцию, но им не нужно, чтобы их видео были доступны для широких масс. Вместо этого они предпочли бы иметь больший контроль над своей трансляцией и контентом, который они производят. Программное обеспечение с открытым исходным(Open-source) кодом, такое как Linux , является лучшим ответом на это препятствие.

Думая о будущем(Thinking Ahead)

Прежде чем вы начнете настраивать свой собственный сервер потоковой передачи, вы должны задать себе несколько вопросов. Во- первых(First) , какое качество потока вы ищете? Далее(Next) , сколько зрителей вы ожидаете привлечь? Где вы будете хранить весь свой потоковый контент? Кто будет иметь доступ к этому контенту?

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

Вам нужно будет выяснить, какой протокол будет обрабатывать аудио- и видеочасть потоковой передачи. Протокол обмена сообщениями(Messaging Protocol) в реальном времени ( RTMP ) — отличный выбор, но есть и другие, такие как WebRTC , которые могут работать лучше в вашей ситуации. RTMP имеет широкую поддержку, поэтому в этой статье мы сосредоточимся на нем.

Еще одна вещь, о которой следует беспокоиться, — это вероятные задержки в вашей «живой» трансляции. То, что вы выходите в эфир, не означает, что все будет идеально. Видеопотоки(Video) необходимо кодировать, передавать, буферизовать и отображать, поэтому ожидайте необходимости небольшой настройки атрибутов потока.

Настройка Linux-сервера(Linux Server Setup)

Ubuntu Linux — мой личный фаворит, так что здесь я выберу именно эту версию. Для тех, кто предпочитает вариант с графическим интерфейсом(GUI) , доступен  Ubuntu Desktop .

  • Запустите(Fire) установщик Ubuntu и выберите настройки, которые лучше всего соответствуют вашим потребностям. Вы, вероятно, захотите установить некоторые статические сетевые настройки, так как это будет использоваться в качестве сервера.
  • Перезагрузите(Reboot) систему после установки, если она не делает этого автоматически. После загрузки системы Ubuntu установите все доступные обновления:
sudo apt update
sudo apt upgrade

Мы будем использовать веб-сервер Nginx(Nginx web server) для этого потокового сервера. Установите его:

sudo apt install nginx

Приобретите модуль RTMP , чтобы (RTMP)Nginx мог обрабатывать ваш медиапоток:

sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

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

sudo nano /etc/nginx/nginx.conf

Добавьте следующий код в конец файла конфигурации:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

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

Перезапустите Nginx(Restart Nginx) с новой конфигурацией:

sudo systemctl restart nginx

Настройка программного обеспечения для потоковой передачи(Streaming Software Setup)

Сервер готов, так что теперь пришло время настроить программное обеспечение для потоковой передачи. Давайте воспользуемся Open Broadcaster Software (OBS) в этом прогоне. 

  • Перейдите на сайт и выберите сборку для Linux . После запуска программного обеспечения настройте OBS с параметрами, которые лучше всего соответствуют вашему оборудованию.
  • Добавьте источник потоковой передачи, щелкнув + прямо под источником(Source) .

  • Для тестирования выберите Display Capture и введите имя источника.
  • Нажмите кнопку « ОК(OK) », и OBS отразит ваш рабочий стол.
  • Затем перейдите на вкладку « Файл(File) » и выберите « Настройки(Settings) » . 

В разделе «Поток» выберите для параметра « Тип потока» значение «Пользовательский…(set Stream Type to Custom…) » и введите следующий URL -адрес в поле « Сервер(Server) » :

rtmp://IPaddress/live 

Вместо IP- адреса(IPaddress) введите IP-адрес вашего потокового сервера.

Теперь создайте свой собственный ключ потока(Stream Key) и введите его в поле ключа потока . (Stream)Сделай это чем-то, что ты запомнишь, и запиши. Для дополнительной безопасности установите флажок « Использовать аутентификацию(Use authentication ) » и добавьте предпочитаемые учетные данные.

Завершите , нажав « Применить(Apply) », а затем кнопку « ОК(OK) » .

Теперь все должно быть настроено для потоковой передачи. Чтобы начать первую трансляцию, нажмите кнопку « Начать трансляцию(Stream Now) ». Кнопка изменится на «Остановить(Stop Streaming) трансляцию», если все сделано правильно. Показатели пропускной способности вашего потока появятся в нижней части окна OBS .

Станьте вашим первым зрителем(Be Your First Viewer)

Существует множество медиаплееров с открытым исходным кодом, поддерживающих RTMP , наиболее известным из которых является медиаплеер VLC(VLC media player) . Установите и запустите это программное обеспечение, перейдите на вкладку « Медиа(Media) » и выберите « Открыть сетевой поток»(Open Network Stream) в меню. 

У вас есть(Got) под рукой ваш потоковый ключ(Stream Key) ? Введите путь к вашему потоку и включите ключ потока(Stream Key) , который вы установили ранее, в его конец. Должно выглядеть так:

rtmp://IPaddress/live/SecretKey

Нажмите «Воспроизвести»(Play) , и вы увидите свой собственный поток в прямом эфире.

Дополнительные меры(Additional Measures)

Теперь, когда основы достигнуты, ограничение доступа к вашему потоковому серверу и возможность записывать и сохранять ваши видео — это два других фактора, которые могут вас заинтересовать.

По умолчанию любой может просматривать вашу трансляцию. Это может идти вразрез с целью создания сервера. Вы можете настроить ограниченный доступ с помощью брандмауэра Linux , файла .htaccess(.htaccess file) или встроенных элементов управления доступом в модуле RTMP(built-in access controls in the RTMP module) . Этот выбор остается за вами.

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

Установите(Set) существующий путь, чтобы Nginx мог писать в него. Введите следующее:

приложение в прямом эфире { (application live {)
             в прямом эфире; (             live on;)
             записать все; (             record all;)
             record_path /var/www/html/recordings;
             запись_уникальная включена; (             record_unique on;)
}

Это все, что вам нужно при настройке сервера потокового вещания с использованием ОС Ubuntu Linux(Ubuntu Linux OS) . Если вас больше интересует сервер потоковой передачи мультимедиа, не работающий в реальном времени, я бы предложил использовать Plex вместо OBS.



About the author

Я старший инженер-программист и разработчик изображений и приложений для iPhone с более чем 10-летним опытом. Мои навыки работы с аппаратным и программным обеспечением делают меня идеально подходящим для любого проекта корпоративного или потребительского смартфона. У меня есть глубокое понимание того, как создавать высококачественные изображения и способность работать со всеми различными форматами изображений. Кроме того, я знаком с разработкой для Firefox и iOS.



Related posts