2016-09-27 6 views
0

Я установил Wowza Streaming Engine на AWS с именем приложения «live». Я открыл все необходимые порты для Wowza на AWS для приема и повторной передачи видеопотока.Нельзя публиковать поток на Wowza Streaming engine. Сервер создает и немедленно уничтожает поток

Я принимаю поток из NVR в локальной сети и публикации видеопоток из машины Ubuntu, используя FFMPEG с командой ниже на Wowza Server.

ffmpeg -v debug -i "rtsp://888888:[email protected]:554/cam/realmonitor?channel=1&subtype=1" -acodec copy -vcodec copy -sn -f flv "rtmp://xx.xx.xx.xx:1935/live/channel1 live=true pubUser=un pubPasswd=pw" 

Это дает мне следующую ошибку после примерно 60 секунд на терминале.

Successfully parsed a group of options. 
Opening an output file: rtmp://xx.xx.xx.xx:1935/live/channel1 live=true pubUser=un pubPasswd=pw. 
Parsing... 
Parsed protocol: 0 
Parsed host : xx.xx.xx.xx 
Parsed app  : live 
RTMP_Connect0, failed to connect socket. 110 (Connection timed out) 
rtmp://xx.xx.xx.xx:1935/live/channel1 live=true pubUser=un pubPasswd=pw: Unknown error occurred 

Итак, я проверил журнал Wowza для любой подсказки, и я нашел это.

2016-09-27 08:22:31 UTC comment server INFO 200 - MediaCasterStreamValidator.init[live/_definst_]: Started 
2016-09-27 08:22:31 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Publish: AllowedEncoders: securityPublishValidEncoders:Wirecast/|FME/|FMLE/|Wowza GoCoder*|Lavf/|UA Teradek/|KulaByte/|VidBlaster/|XSplit/|PESA 
2016-09-27 08:22:31 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Publish: block duplicate stream names : false 
2016-09-27 08:22:31 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Publish: RTMP Authorization: password file:/usr/local/WowzaStreamingEngine/conf/publish.password 
2016-09-27 08:22:31 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Play: SecureConnection: securityPlayRequireSecureConnection:false 
2016-09-27 08:22:31 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Play: securitySecureTokenVersion property is missing, using SecureToken Version 1, play security enabled for RTMP only 
2016-09-27 08:22:31 UTC app-start application INFO 200 _definst_ live/_definst_ 
2016-09-27 08:22:31 UTC connect-pending session INFO 100 <incomming IP> - _defaultVHost_ live _definst_ 2.975 [any] 1935 rtmp://xx.xx.xx.xx:1935/live <incomming IP>` rtmp - unknown 1873157588 3178 3073 - - - - - - - - - - - - - rtmp://xx.xx.xx.xx:1935/live - 
2016-09-27 08:22:31 UTC connect session INFO 200 <incomming IP> - _defaultVHost_ live _definst_ 2.975 [any] 1935 rtmp://xx.xx.xx.xx:1935/live <incomming IP> rtmp - unknown 1873157588 3178 3073 - - - - - - - - - - - - - rtmp://xx.xx.xx.xx:1935/live - 
2016-09-27 08:22:32 UTC create stream INFO 200 - - _defaultVHost_ live _definst_ 0.0 [any] 1935 rtmp://xx.xx.xx.xx:1935/live <incomming IP> rtmp - unknown 1873157588 3297 3565 1 0 0 0 - - - - - - rtmp://xx.xx.xx.xx:1935/live rtmp://xx.xx.xx.xx:1935/live - rtmp://xx.xx.xx.xx:1935/live - 
2016-09-27 08:22:33 UTC destroy stream INFO 200 - - _defaultVHost_ live _definst_ 1.644 [any] 1935 rtmp://xx.xx.xx.xx:1935/live <incomming IP> rtmp - unknown 1873157588 3347 3796 1 0 0 0 - - - - - - rtmp://xx.xx.xx.xx:1935/live rtmp://xx.xx.xx.xx:1935/live - rtmp://xx.xx.xx.xx:1935/live - 
2016-09-27 08:22:33 UTC disconnect session INFO 200 1873157588 - _defaultVHost_ live _definst_ 5.198 [any] 1935 rtmp://xx.xx.xx.xx:1935/live <incomming IP> rtmp - unknown 1873157588 3347 3796 - - - - - - - - - - - - - rtmp://xx.xx.xx.xx:1935/live - 
2016-09-27 08:23:34 UTC app-stop application INFO 200 _definst_ live/_definst_ 

Таким образом, аутентификация сервера выполняется правильно, но сервер запускает поток и немедленно останавливается.

Может кто-нибудь пожалуйста, дайте мне указатель, чтобы посмотреть на эту ошибку?

+0

Я не помню, если это работает с Wowza, но попробуйте с '-f Flv RTMP: // [имя пользователя: пароль @] сервер [: порт] [/ приложение] [/ пример] [/ playpath]'. – aergistal

+0

@aergistal, я уже пробовал этот метод, но это вернуло мне сообщение об ошибке RTMP_0. Таким образом, я изменил команду и предоставил им 'pubUser = un pubPasswd = pw'. –

ответ

0

Похоже, ваша команда FFmpeg не отправляет строку агента пользователя (с-агента пользователя в логах доступа). Это помогает вашему Wowza-серверу определить, какие RTMP-соединения являются допустимыми издателями.

Следующая строка идентифицирует допустимые строки агента, сконфигурированные на сервере Wowza:

2016-09-27 08:22:31 UTC comment server INFO 200 - ModuleCoreSecurity.onAppStart[live/_definst_]: Publish: AllowedEncoders: securityPublishValidEncoders:Wirecast/|FME/|FMLE/|Wowza GoCoder*|Lavf/|UA Teradek/|KulaByte/|VidBlaster/|XSplit/|PESA 

Но ваша команда FFmpeg посылает строку unknown агента на основе журналов. Попробуйте следующее в выходной URL вашего FFmpeg командования:

"rtmp://localhost/live/myStream flashver=FMLE/3.0\20(compatible;\20FMSc/1.0) live=true pubUser=myuser pubPasswd=mypassword" 

Он должен передать строку агента, который соответствует одному из допустимых кодеров для вашего сервера Wowza.