Nginx создает сервер живого видео [легко понять]
Nginx создает сервер живого видео [легко понять]

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

Пострадал перенос начала занятий в школе из-за эпидемии,В этот период по всей стране продвигается онлайн-обучение.,Платформа edx MOOC была создана некоторое время назад.,Но чего не хватает?,Это Интернетпрямая трансляцияпреподавание,провести день,Успешно построено,Запишите для дальнейшего использования.

1. Основной технический маршрут

Среди них сервер использует nginx + nginx-rtmp-module, поток push использует OBS-Studio, а поток pull использует воспроизведение веб-страницы html5.

2. Установка сервера прямой трансляции

Среда centos7, графический интерфейс рабочего стола не установлен, серверная версия

yum install -y gcc yum install -y openssl openssl-devel yum insall -y pcre pcre-devel yum install -y zlib zlib-devel

git clone https://github.com/arut/nginx-rtmp-module.git

wget http://nginx.org/download/nginx-1.9.9.tar.gz

tar -zxvf nginx-1.9.9.tar.gz cd nginx-1.9.9

./configure –prefix=/usr/local/nginx –add-module=/root/nginx-rtmp-module –with-http_ssl_module make && make install

После обычной компиляции и установки вы увидите каталог /usr/local/nginx.

Конфигурационный файл

nano /usr/local/nginx/conf/nginx.conf

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

rtmp { server { listen 1935; #Прослушивающий порт chunk_size 4000; #Максимальный размер блока для интеграции потока, чем больше установлено это значение CPU Чем меньше нагрузка #Добавляем поддержку hls application hls { Путь push-запроса #rtmp live on; #Открыть в режиме реального времени hls on; #Openhls hls_path /usr/local/nginx/html/hls; #Путь для сохранения push-файла должен иметь разрешение на запись hls_fragment 5s; # Каждый файл содержит5секундывидеосодержание }

application hls1 { # Второй канал прямой трансляции… жить дальше; вкл. hls_path /usr/local/nginx/html/hls1; hls_fragment 10 с; } } }

После сохранения запустите сервер

./sbin/nginx -c ./conf/nginx.conf

Например, после изменения конфигурации используйте команду nginx -s reload, чтобы перечитать конфигурацию.

3. Прямая трансляция

OBS-Studio-23.2.1-Full-x64 Зеленая версия скачана из Интернета, установка не требуется, просто распакуйте и пользуйтесь

Настройте сервер потоковой передачи. Ключ потоковой передачи — это имя файла кэша потоковой передачи на сервере.

Если поток отправки нормальный, вы можете увидеть сгенерированный файл в каталоге /usr/local/nginx/html/hls.

[root@gdcmxy sbin]# ls /usr/local/nginx/html/hls поток-0.ts поток-1.ts поток.m3u8 4. Pull стриминг, то есть прямая трансляция

Использование веб-страницы HTML5

<!DOCTYPE html> <html> <head> <title>игрок</title> <!– Импортированный videojs имеет версию 7.0 или выше. Он интегрирует библиотеку протокола VHS и может воспроизводить потоковое видео HLS. –> <link href=”css/video-js.min.css” rel=”stylesheet” type=”text/css”> <script src=”js/video.min.js”></script> <!– представилvideojs-flash.jsПлагин в основном предназначен для воспроизведенияrtmpвидеопоток–> <script src=”js/videojs-flash.min.js”></script> </head> <body> <video id=’myvideo’ width=960 height=540 class=”video-js vjs-default-skin” con

Обычное использование прямой трансляции

5. Прямая трансляция готовых видеофайлов

Вы можете установить ffmpeg на сервер в качестве источника воспроизведения.

Установить:

yum install -y epel-release rpm rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7 yum repolist rpm –import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm yum repolist yum install -y ffmpeg

использовать:

ffmpeg -re -i testvideo.mp4 -c copy -f flv rtmp://192.168.49.129:1395/live/stream

Левая часть изображения ниже — это эффект воспроизведения, а правая — ffmpeg, отправляющий поток.

На изображении ниже воспроизводятся видеофайлы с двумя каналами принудительной потоковой передачи и двумя каналами потоковой передачи по запросу. Изображение плавное и без давления.

Ссылки на многие статьи здесь не указаны, спасибо!

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/132419.html Исходная ссылка: https://javaforall.cn

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода