LINUX.ORG.RU

Сообщения Zane

 

Передача $args в nginx через rtmp-request

Форум — Admin

Всем доброго времени суток.

Не получается передать дополнительные аргументы в Nginx через pull-request.

Работаю с CentOS7 и Nginx+rtmp-module. Схема следующая: я открываю rtmp-ссылку rtmp://192.168.22.209:1934/test_pull/stream?id=qweqweqweqweqwe в VLC, затем Nginx обрабатывает эту ссылку и по exec_pull запускает скрипт get_stream.sh, передавая в него переменные $app - имя приложения(test_pull), $name - имя потока(stream) и $args - дополнительные аргументы (id=qweqweqweqweqwe). После этого скрипт get_stream.sh запускает поток ffmpeg, передавая ему часть параметров, и видеопоток пушится туда, где мы его запросили. Всё отрабатывает нормально, но только не передаётся переменная $args, хотя в access логах она отображается.

Фрагмент лога Nginx rtmp-access:

192.168.22.162 - 6 [29/Jan/2021:09:41:39 +0300] "test_pull" "stream" "id=qweqweqweqweqwe" "LNX 9,0,124,2" "" "rtmp://192.168.22.209:1934/test_pull" "" PLAY 17335193 #465 29

Конфиг Nginx:

server {
    listen *:1934;
    buflen 1s;
    notify_method get;

    application test_pull {
        live on;
        respawn off;
        drop_idle_publisher 30s;
        allow publish 127.0.0.1;
        allow play all;
        exec_pull /usr/scripts/get_stream.sh $args $app $name;
    }
}

Код скрипта get_stream.sh:

#!/bin/bash

reqid=$1
src_live=$2
src_stream=$3


echo "$(date '+%H:%M:%S') $1 $2 $3" >> /usr/scripts/test.log

/sbin/ffmpeg -i "rtmp://127.0.0.1:1933/test" -vcodec copy -acodec copy -bsf:a aac_adtstoasc -f flv "rtmp://127.0.0.1:1934/test_pull/$src_stream"

В свой лог скрипт выводит только переменные $app и $name, а $args почему-то до него не доходит, хотя выходит, что Nginx её получает, раз пишет в лог. Пробовал запустить этот же конфиг на другой машине с Ubuntu, думая, что проблема может быть в сборке Nginx`a, но там ситуация точно такая же. Менял порядок переменных, прописывал этот конфиг в nginx.conf вместо include, но ничего не помогает, переменная $args не передаётся в мой скрипт.

 ,

Zane
()

Не устанавливается драйвер графики Intel.

Форум — Linux-hardware

Всем доброго времени суток.

Имеется ПК с Centos7, настроенный когда-то и кем-то. Нужно собрать ffmpeg с поддержкой Intel QuickSync. Для тестов я взял другой комп, накатил туда Centos7 минимальную, по мануалу установил драйвера для графики и собрал ffmpeg, запустил, протестил - всё ок.

Когда я взялся за рабочий комп, чтобы повторить все те же действия, то столкнулся с проблемой при установке драйвера Intel: после установки одного из пакетов требуется ребут, после чего создаётся /dev/dri, где появляется список драйверов с именами графических устройств. На рабочем ПК этого не произошло, и даже если я вручную создаю каталог /dev/dri, то после ребута он удаляется. Проц QuickSync поддерживает. В логах ничего интересного или подозрительного не нашёл, кроме:

kernel: You have booted with nomodeset. This means your GPU drivers are DISABLED
kernel: Any video related functionality will be severely degraded, and you may not even be able to suspend the system properly
kernel: Unless you actually understand what nomodeset does, you should reboot without enabling it

Убрал этот параметр, загрузился без него(это сообщение больше не появляется), повторил 2 раза установку дров с ребутом, но результата это не дало.

В чём ещё может быть дело? В гугле ничего не нашёл, возможно потому что опыта с Линуксом практически нет и не знаю что именно нужно искать. Может быть есть ещё какие-то параметры, отвечающие за графику, либо ещё какие-то махинации нужно проделать?

 , , ,

Zane
()

RSS подписка на новые темы