@igor523

Проблема с nginx-rtmp-module. Что делать?

rtmp {
  server {
      listen 1935;
      application europaplus {
    live on;
    exec_options on;
    exec_pull ffmpeg -i http://ep128server.streamr.ru:8030/ep128 -c:a opus -b:a 60000 -vbr constrained -compression_level 10 -frame_duration 60 rtmp://localhost/$app/$name name=lowq;
}
  }
}


С такой конфигурацией nginx не отдает ничего. Подключение происходит, но flvstreamer на этом же компьютере пишет файл размером 13 байт. RTMP на windows подключается, но не ловит ничего. ffplay тоже молчит. Где я накосячил?

Вообще весь конфиг:

user www-data;
worker_processes 1;
pid /run/nginx.pid;

events {
	worker_connections 768;
	# multi_accept on;
}

rtmp {
  server {
      listen 1935;
      application europaplus {
    live on;
    exec_options on;
    exec_pull ffmpeg -i http://ep128server.streamr.ru:8030/ep128 -c:a opus -b:a 60000 -vbr constrained -compression_level 10 -frame_duration 60 rtmp://localhost/$app/$name name=lowq;
}
  }
}



http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

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

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# nginx-naxsi config
	##
	# Uncomment it if you installed nginx-naxsi
	##

	#include /etc/nginx/naxsi_core.rules;

	##
	# nginx-passenger config
	##
	# Uncomment it if you installed nginx-passenger
	##
	
	#passenger_root /usr;
	#passenger_ruby /usr/bin/ruby;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
# 
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}
  • Вопрос задан
  • 5607 просмотров
Решения вопроса 1
@sinyawskiy
Куча ошибок, поэтому ничего не работает.
1. у вас куча ошибок в ffmpeg вы копируете исходный поток "-c:a" но в тоже время изменяете битрейт перед rtmp://localhost/$app/$name нужно указать -f это значит формат вывода. Полностью, к сожалению, не помню все ключи.
2. вы должны публиковать поток сами на себя. то есть rtmp://localhost:1935/europaplus/lowq
3. exec_options on; - не нужно

Почитайте мою статью по этому поводу

Секцию http можно вообще попробовать упразнить.

Должно быть примерно так:
rtmp {
     server {
         listen 1935;
         application europaplus {
               live on;
               exec ffmpeg -i http://ep128server.streamr.ru:8030/ep128 -c:a opus -b:a 60000 -vbr сonstrained -compression_level 10 -frame_duration 60 -f rtmp://localhost:1935/europaplus/lowq;
               }
      }
}


Попробовал вот эту команду запустить в shell ffmpeg -i ep128server.streamr.ru:8030/ep128 у меня не коннектится. Надо тоже проверить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы