Не могу опубликовать поток на движке Wowza Streaming. Сервер создает и тут же уничтожает поток

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

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

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_

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

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


person Vishal P    schedule 27.09.2016    source источник
comment
Я не помню, работает ли это с Wowza, но попробуйте с -f flv rtmp://[username:password@]server[:port][/app][/instance][/playpath].   -  person aergistal    schedule 29.09.2016
comment
@aergistal, я уже пробовал этот метод, но он вернул мне ошибку отсутствия пакета RTMP_0. Итак, я изменил команду и предоставил им pubUser=un pubPasswd=pw.   -  person Vishal P    schedule 30.09.2016


Ответы (1)


Похоже, ваша команда ffmpeg не отправляет строку пользовательского агента (c-user-agent в журналах доступа). Это поможет вашему серверу 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.

person Michelle-B    schedule 31.10.2016