Вернуться   HitForum - Форумы Мариупольской Городской Сети > HiTech > Linux и всё вокруг него

Linux и всё вокруг него OC Linux и всё, всё, всё. Включая *NIX

Ответ
 
Опции темы
Старый 01.03.2017, 17:29   #1
Эксперт
 
Аватар для Малышъ
 
Мужчина
Регистрация: 05.04.2006
Адрес: Матрица
Возраст: 32
Сообщений: 1,703
Вес репутации: 19 Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)


Отправить сообщение для Малышъ с помощью ICQ
По умолчанию Nginx+rtmp в LAN по HTTP

Есть необходимость вещать видеопоток со звуком в локальную сеть. Для сего мероприятия решено использовать ПО [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] (оно уже закуплено и активно используется) и простенький "сервер" на Ubuntu Server 16.xx.x LTS + Nginx + rtmp + ffmpeg
vMix умеет отдавать rtmp-поток, но его нужно вещать куда-то. Просто широковещательно не хочет (ну как не хочет, можно только по http с малым битрейтом и сплошными квадратиками). Решено было поднять свой rtmp-сервер/ретранслятор. Установил, как писал выше Убунту, установил ffmpeg, Nginx и rtmp-модуль. Конфиг rtmp:
Скрытый текст:
user@rtmp-server:~$ cat /usr/local/nginx/conf/nginx.conf

#user nobody;
worker_processes 1;

rtmp_auto_push on; #автоматическая ретрансляция потока

#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;

#pid logs/nginx.pid;


events {
worker_connections 1024;
}


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

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

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

#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 [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!]
#}

# 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;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$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;
# server_name localhost;

# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;

# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;

# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;

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

}

#Блок взял на Хабре, но он, походу, не отрабатывается
rtmp {
server {
listen 1935;
chunk_size 4096;

application live {
live on;
record off;
exec ffmpeg -i rtmp://localhost/live -threads 1 -c:v libx264 -profile:v baseline -b:v 350K -s 640x360 -f flv -c:a aac -ac 1 -strict -2 -b:a 56k rtmp://localhost/1;
}
application live360p {
live on;
record off;
}
}
}

user@rtmp-server:~$



В итоге трансляция работает только в VLC по ссылке rtmp://rtmp-server/live , в виндозном медиаплеере не работает. Картинка идет такая, как выдает vMix, лагов и тормозов нет.

Вопрос следующий:
1. Как заставить проигрывать на штатном плеере?
2. Как вывести поток по http (т.е. прямо на этом же сервере открыть страничку трансляции)
3. Как правильно оценить нагрузку на "сервер" при вещании? Смотрел сетевую статистику через jnettop, проц через top. Планируемая нагрузка от 5 коннектов до нескольких сотен или сколько потянет проц/сеть
Малышъ вне форума   Ответить с цитированием
Старый 02.03.2017, 11:50   #2
Местный житель
 
Аватар для SergP
 
Мужчина
Регистрация: 07.04.2005
Адрес: Mariupol
Возраст: 41
Сообщений: 258
Вес репутации: 13 SergP скоро станет знаменитым(-ой)


Отправить сообщение для SergP с помощью Skype™
По умолчанию Ответ: Nginx+rtmp в LAN по HTTP

Посмотрите может здесь найдете интересное.
[Только зарегистрированные пользователи могут видеть ссылки. Регистрация!]
SergP вне форума   Ответить с цитированием
Старый 02.03.2017, 11:59   #3
Эксперт
 
Аватар для Малышъ
 
Мужчина
Регистрация: 05.04.2006
Адрес: Матрица
Возраст: 32
Сообщений: 1,703
Вес репутации: 19 Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)


Отправить сообщение для Малышъ с помощью ICQ
По умолчанию Ответ: Nginx+rtmp в LAN по HTTP

SergP, спасибо за предложение, но не совсем мой случай (( хотя и интересное решение.

По сути - у меня есть уже сервер трансляций, но хотелось бы его немного допилить, точнее его функционал.
Малышъ вне форума   Ответить с цитированием
Старый 11.03.2017, 10:35   #4
Проезжий
 
Аватар для diana_lu
 
Мужчина
Регистрация: 11.03.2017
Адрес: Киев
Сообщений: 6
Вес репутации: 0 diana_lu нейтрален(-на)

По умолчанию Ответ: Nginx+rtmp в LAN по HTTP

а какой у Вас сервер для трансляций стоит?
diana_lu вне форума   Ответить с цитированием
Старый 11.03.2017, 10:46   #5
Эксперт
 
Аватар для Малышъ
 
Мужчина
Регистрация: 05.04.2006
Адрес: Матрица
Возраст: 32
Сообщений: 1,703
Вес репутации: 19 Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)


Отправить сообщение для Малышъ с помощью ICQ
По умолчанию Ответ: Nginx+rtmp в LAN по HTTP

diana_lu, вещание поднимается через vMix (по [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] короткое видео как это происходит). В качестве rtmp-server выступает описанный выше комп. Он и транслирует все в сеть.
Малышъ вне форума   Ответить с цитированием
Старый 03.05.2017, 16:42   #6
Эксперт
 
Аватар для Малышъ
 
Мужчина
Регистрация: 05.04.2006
Адрес: Матрица
Возраст: 32
Сообщений: 1,703
Вес репутации: 19 Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)


Отправить сообщение для Малышъ с помощью ICQ
По умолчанию Ответ: Nginx+rtmp в LAN по HTTP

Появилось немного свободного времени на работе и решил продолжить эксперимент.
Снес полностью nginx и установил с нуля, правлю конфиг не спеша и более вдумчиво. Теперь пытаюсь вывести трансляцию на простую web-морду через jwplayer. Завис пока на этапе заворачивания трансляции в плеер. Конфиг ниже под спойлером, красным пометил проблемную часть кода.

Скрытый текст:
<!DOCTYPE html>
<html>
<head>
<script src="//rtmp-server/jwplayer/jwplayer.js"></script>
<script>jwplayer.key="/g==";</script>
<title>Welcome to STREEM-Server!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to STREEM-Server!</h1>

<div id="myElement">Player is loading...</div>

<script type="text/javascript">
jwplayer("myElement").setup({
file: "rtsp://localhost/live",
image: "/files/image/image.img",

width: 1280,
height: 720,
title: "Streem"
});
</script>


<p><em>Thank you for using our server.</em></p>


<p><em>Powered by nginx.</em></p>
</body>
</html>



Кто сталкивался с подобным (rtmp-потокс самого себя забрать и вывести в плеер) - направьте на правильный путь.
Малышъ вне форума   Ответить с цитированием
Старый 05.06.2017, 14:42   #7
Эксперт
 
Аватар для Малышъ
 
Мужчина
Регистрация: 05.04.2006
Адрес: Матрица
Возраст: 32
Сообщений: 1,703
Вес репутации: 19 Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)Малышъ великолепен(-на)


Отправить сообщение для Малышъ с помощью ICQ
По умолчанию Ответ: Nginx+rtmp в LAN по HTTP

Появилось не большое окошко в потоке работы и решил переделать вообще все! Админы дали виртульную машину на гипервизоре, поставил с нуля туда Ubuntu Server 16.04.4 LTS, далее все по минимуму (mc, build-essencial), прописал руками в сорсюлист репозиторий nginx и установил штатно версию 1.12.0, скачал дополнительно rtmp-module-master и пересобрал, используя настройки предварительно установленного nginx. По мере того как просил ставил дополнительные библиотеки.
После скачал jwplayer и закинул его в домашний каталог.
Вот что получилось:

nginx.conf
Скрытый текст:

user nginx;
rtmp_auto_push on;
worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

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

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

include /etc/nginx/conf.d/*.conf;
}
rtmp {
server {
listen 1935;
application live {
live on;
}
}
}


index.html
Скрытый текст:
<!DOCTYPE html>
<html>
<head>
<script src="//10.0.0.157/jwplayer.js"></script>
<script>jwplayer.key="5o5=";</script>
<title>Welcome to STREAM-Server!</title>
</head>
<body>
<h1>Welcome to STREAM-Server!</h1>
<div id="myElement">Player is loading...</div>
<script type="text/javascript">
jwplayer("myElement").setup({
width: "75%",
height: "75%",
file: 'rtmp://10.0.0.157/live',
image: 'http://10.0.0.157/offline.jpg',
aspectratio: '16:9'
});
</script>
<p><em>Thank you for using our server.</em></p>
<p><em>Powered by nginx.</em></p>
</body>
</html>


На скринах загруженная страничка и ошибка при попытке запустить плеер.

Может кто сталкивался с таким?
Изображения
Тип файла: jpg Screen1.jpg (433.8 Кб, 8 просмотров)
Тип файла: jpg Screen2.jpg (422.0 Кб, 8 просмотров)
Малышъ вне форума   Ответить с цитированием
Ответ

  HitForum - Форумы Мариупольской Городской Сети > HiTech > Linux и всё вокруг него


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаленное администрирование, настройка, безопасность, nginx, rasdotsu Поиск и предложение услуг 0 29.10.2014 12:21
http://193.43.255.25 XuTMeH Свои работы 0 18.10.2007 14:12

© 2003 - HitLine.
Часовой пояс GMT +3, время: 02:25.