Трансляция видео микшера в RTMP

defor

New Member
Добрый день.
Как-то нестабильно ретранслируется в RTMP. Сложно объяснить, но попробую. До пятницы все работало нормально.
Создаются WebRTC стримы -> создается микшер -> создается транспондер для этого микшера с указанием проициализированной RTMP линки на Azure Live Stream -> aктивный стрим добавляется в микшер, а старый оттуда убирается.
В 90% случаев на Azure все проигрывалось хорошо. Неудачи списывались на проблемы с Azure.
Поменяли выходное разрешение на микшере. Вместо дефолтных 1280х720, выставил требуемое 1080х1920 (вертикальное). После этого Azure перестал получать данные. Если верить event-логам на ажуре - до них доходит только аудио поток.
Изначально думалось, что проблемы с кодеками, которыми прогоняется выходной поток из микшера. После ковыряния логов нашли очень странные строки:

Что мы делаем не так? Заранее спасибо.
 

Max

Administrator
Staff member
1080х1920 (вертикальное)
Такой поток нормально играет, если забрать его с сервера напрямую?
Вертикальный выход микшера не тестировали. Проверим. Сообщим. Возможно микшер не поддерживает отрисовку в таком соотношении сторон.
 

defor

New Member
Я поток с микшера сразу отрисовываю, как превью. Отлично играет.
Собственно сегодня я вернул настройки соотношения сторон к дефолтным и отладочный репорт именно с 1280х720.
 

Max

Administrator
Staff member
В репорте пустая директория server_logs. Вышлите, пожалуйста, на support@flashphoner.com полные логи и дамп трафика для случая с Azure.
 

defor

New Member
Ну, директория пустая, видимо, потому что сам сервер ничего не сгенерил. Это, кстати, тоже вопрос. Мы перед тестом обычно вычищаем папку logs, а потом совершаем одни и те же действия: запаблишить стрим -> отрисовать этот стрим -> выбрать стрим активным -> запуск лайв стрима, что разбивается на следующие подшаги:
1) проинициализировать Azure Live Event
2) создать микшер
3) добавить выбранный стрим в микшер
4) создать транспондер с RTMP урлой, полученной на первом шаге
5) запустить Azure Live Event

После проверки видео на Azure (что в последние дни всегда неуспешно), действия повторяются в обратном порядке:
1) стопаем Azure Live Event
2) вырубаем микшер (транспондер грохается автоматически)
3) останавливается стрим

После этого генерируется репорт.
client_logs заполняются всегда, server_logs и cdr - периодически. Переделаем еще раз.

С дампом трафика уточните пожалуйста. Не в теме.
 

defor

New Member
Все что получилось отправил. server_logs не появляются)
 
Last edited:

Max

Administrator
Staff member
Добрый день
Мы перед тестом обычно вычищаем папку logs,
После удаления логов необходимо рестартовать сервер, иначе серверный лог записан не будет.
Кроме того, необходимо включить дебаговые клиентские логи
Code:
client_log_level=DEBUG
после чего либо рестартовать сервер, либо войти в CLI и перечитать настройки
Code:
reload node-settings
Пожалуйста, соберите дебаговые логи и дамп еще раз.
По дампу трафика, который есть, видно, что видео в сторону Azure идет
1589863558820.png

Попробуйте републиковать поток микшера на другой RTMP сервер (не Azure), например, локально на WCS rtmp://localhost:1935/live/testStream, будет ли играть этот поток?
Также проверьте, будет ли отображаться видео в Azure, если републиковать туда не поток микшера, а исходный поток напрямую. Соберите логи и дамп и для этого случая.
 

defor

New Member
Отправил полные логи:
- report-2020-05-19-08-21-41 (normal routine mixer+azure).zip - наш обычный сетап с микшером и републикацией в Azure
- report-2020-05-19-09-51-33 (transponder for active stream only, no mixer).zip - републикация выбранного стрима напрямую
Напрямую все работает. Микшер ничего не транслирует.

Попробуйте републиковать поток микшера на другой RTMP сервер (не Azure), например, локально на WCS rtmp://localhost:1935/live/testStream, будет ли играть этот поток?
Каюсь. Создать транспондер на локальный сервер не проблема. Только не знаю, как проверить этот поток)
 

Max

Administrator
Staff member
Отправил полные логи:
К сожалению, логи пока не получили, ждем.
Каюсь. Создать транспондер на локальный сервер не проблема. Только не знаю, как проверить этот поток)
Можно забрать поток с выхода транспондера по WebRTC, например, в примере Media Devices, он заодно покажет статистику по фреймам в потоке.
 

defor

New Member
Теперь при тестировании у меня появляется 5 стримов:
- камера PUBLISHING (WebRTC) - оригинальный поток
- камера PLAYING (WebRTC) - превью оригинального потока
- mixer PUBLISHING (WebRTC) - выходной поток микшера
- mixer PLAYING (WebRTC) - превью микшера, которое показывает, когда стартует Live Stream
- transponder PUBLISHING (Flash) - rtmp выход с транспондера
Я вернул rtmp_transponder_stream_name_prefix, чтобы появился пятый стрим. Он прекрасно проигрывается в примере Media Devices.
Теперь все становится еще более запутанным) Вроде как транспондер работает как нужно, но на Azure не проигрывается. В то же время, без микшера все играется и там и там. Причем выходное разрешение микшера без перегибов: стандартные 1280х720...
 

Max

Administrator
Staff member
Получили и проверили логи. Разницы не видно, в том числе по дампам. Создали тикет WCS-2702, о результатах сообщим здесь.
 

defor

New Member
Возможно это поможет. Добавил настройки битрейта микшера в растройках, и все заработало...
encoder_priority=OPENH264
mixer_video_bitrate_kbps=1500
 

defor

New Member
Более того, после первого успешного запуска оно работает даже после удаления настроек битрейта микшера...
 

Max

Administrator
Staff member
encoder_priority=OPENH264
Этот кодировщик уже используется по умолчанию
mixer_video_bitrate_kbps=1500
Возможно, это подойдет как временный фикс. Суть проблемы в том, что в RTMP потоке из микшера нет метаданных, поэтому Azure не играет поток. Когда-то эта проблема была решена для всех типов потоков, но недавно микшер был переделан, по умолчанию используется микшер реального времени. При этом часть настроек переключает микшер на предыдущую реализацию. Если переключиться явно
Code:
mixer_realtime=false
это поможет, но в этом случае микшер может давать задержки при проблемах во входном потоке. Так что будем эту проблему решать.
 

Max

Administrator
Staff member
Добрый день.
Возможно, проблема в том, что в выходном потоке RTMP транспондера после микшера нет метаданных, без этого Azure играть не будет. Пожалуйста, верните Ваши исходные настройки микшера и включите отправку метаданных
Code:
rtmp_transponder_send_metadata=true
 

defor

New Member
Спасибо. Буду тестировать дальше. Есть ощущение, что мы уже на финишной прямой)
 
Top