Сборка сервера потокового мультимедиа nginx rtmp (суперподробно)_nginx rtmp кластер
Сборка сервера потокового мультимедиа nginx rtmp (суперподробно)_nginx rtmp кластер

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

Простой процесс настройки прямой трансляции

Узнав от других экспертов, Weibo считает, что ему следует описать полный процесс прямой трансляции. Хотя это просто, это даст ощущение макроса:

Как использовать: Разархивируйте два файла инструментов, а затем поместите nginx-rtmp-module-master в каталог первого уровня распакованного файла nginx.

Способы настройки файла conf\nginx-win-rtmp.conf: Видетьhttp://blog.csdn.net/fireroll/article/details/51985688 #user nobody; # multiple workers works ! worker_processes 2;

Язык кода:javascript
копировать
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events { worker_connections 8192; # max value 32768, nginx recycling connections+registry optimization = # this.value * 20 = max concurrent connections currently tested with one worker # C1000K should be possible depending there is enough ram/cpu power # multi_accept on; }

rtmp { server { listen 1935; chunk_size 4000; application live { live on; } } }

http { #include /nginx/conf/naxsi_core.rules; include mime.types; default_type application/octet-stream;

Язык кода:javascript
копировать
#log_format  main  '$remote_addr:$remote_port - $remote_user [$time_local] "$request" '
#                  '$status $body_bytes_sent "$http_referer" '
#                  '"$http_user_agent" "$http_x_forwarded_for"';

#access_log  logs/access.log  main;

#     # loadbalancing PHP
#     upstream myLoadBalancer {
#         server 127.0.0.1:9001 weight=1 fail_timeout=5;
#         server 127.0.0.1:9002 weight=1 fail_timeout=5;
#         server 127.0.0.1:9003 weight=1 fail_timeout=5;
#         server 127.0.0.1:9004     weight=1 fail_timeout=5;
#         server 127.0.0.1:9005 weight=1 fail_timeout=5;
#         server 127.0.0.1:9006 weight=1 fail_timeout=5;
#         server 127.0.0.1:9007 weight=1 fail_timeout=5;
#         server 127.0.0.1:9008 weight=1 fail_timeout=5;
#         server 127.0.0.1:9009 weight=1 fail_timeout=5;
#         server 127.0.0.1:9010 weight=1 fail_timeout=5;
#         least_conn;
#     }

sendfile        off;
#tcp_nopush     on;

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 ##

#gzip  on;

server {
    listen       80;
    server_name  localhost;


    location /stat {
        rtmp_stat all;
        rtmp_stat_stylesheet stat.xsl;
    }
    location /stat.xsl {
        root nginx-rtmp-module/;
    }
    location /control {
        rtmp_control all;
    }

    #charset koi8-r;
    #access_log  logs/host.access.log  main;

    ## Caching Static Files, put before first location
    #location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
    #    expires 14d;
    #    add_header Vary Accept-Encoding;
    #}

# For Naxsi remove the single # line for learn mode, or the ## lines for full WAF mode
    location / {
        #include    /nginx/conf/mysite.rules; # see also http block naxsi include line
        ##SecRulesEnabled;
     ##DeniedUrl "/RequestDenied";
     ##CheckRule "$SQL >= 8" BLOCK;
     ##CheckRule "$RFI >= 8" BLOCK;
     ##CheckRule "$TRAVERSAL >= 4" BLOCK;
     ##CheckRule "$XSS >= 8" BLOCK;
        root   html;
        index  index.html index.htm;
    }

# For Naxsi remove the ## lines for full WAF mode, redirect location block used by naxsi
    ##location /RequestDenied {
    ##    return 412;
    ##}

## Lua examples !
#         location /robots.txt {
#           rewrite_by_lua '
#             if ngx.var.http_host ~= "localhost" then
#               return ngx.exec("/robots_disallow.txt");
#             end
#           ';
#         }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000; # single backend process
    #    fastcgi_pass   myLoadBalancer; # or multiple, see example above
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#    listen       8000;
#    listen       somename:8080;
#    server_name  somename  alias  another.alias;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

# HTTPS server
#
#server {
#    listen       443 ssl spdy;
#    server_name  localhost;

#    ssl                  on;
#    ssl_certificate      cert.pem;
#    ssl_certificate_key  cert.key;
#    ssl_session_timeout  5m;
#    ssl_prefer_server_ciphers On;
#    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#    ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!eNULL:!MD5:!DSS:!EXP:!ADH:!LOW:!MEDIUM;

#    location / {
#        root   html;
#        index  index.html index.htm;
#    }
#}

} Если требуется поддержка потоковой передачи HLS: Затем измените его следующим образом: RTMP { сервер { послушайте 1935 год; размер_куска 4000; application hls {путь push-запроса #rtmp жить дальше; вкл. hls_path C:\nginx\hls; hls_fragment 5 с; } } } Примечание. hls_path — это m3u8, а путь хранения файлов ts — это продолжительность каждого ts;

  • Запустить сервер Введите cmd Windows; cd nginx-1.7.11.3-Gryphon nginx.exe -c conf\nginx-win-rtmp.conf
  • Убедитесь, что конфигурация прошла успешно Откройте браузер и введите localhost, если он появится.

Указывает на успешное соединение

  • Используйте ffmpeg для отправки потоков Используемый ресурс — mp4 с именем test.mp4 (при его обработке я для удобства помещаю видеофайл в каталог ffmpeg) Введите выигрыш cmd, перейдите в каталог ffmpeg. Если вы не являетесь администратором, вы можете использовать следующую форму: (cd +/d + путь), а затем введите команду: ffmpeg -re -i localFile.mp4 -c copy -f flv rtmp://localhost/live/streamName Примечание. Если прямая передача потока mp4 не удалась, вы должны сначала выполнить ремикс его в FLV (в конце концов, FLV и RTMP оба принадлежат Adobe и используются вместе).
  • Используйте ffplay для получения потоков ffplay rtmp://localhost/live/streamName
  • в заключение Таким образом, можно завершить простой процесс прямой трансляции.

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

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose