Обмен технологиями

Запись о проблеме с пропускной способностью потоковой передачи в интрасети в прямом эфире SRS

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Предыстория проблемы

сссрРазвернуто на облачном сервере, 32-ядерный процессор, память 64 ГБ, полоса пропускания 300 МБ.
Клиент извлекает поток из SRS и обнаруживает, что клиент внешней сети извлекает поток.Процессор и пропускная способность в норме. Однако если клиент интрасети получает поток, а количество людей, получающих поток, превышает 5, пропускная способность резко возрастает.
Вставьте сюда описание изображения

Поиск неисправностей

Используйте srs-bench для выполнения стресс-тестирования SRS, потоковой передачи SRS проигрывателя vlc и потоковой передачи SRS клиента.

Push-стриминг

Чтобы отправить поток, выберите ffmpeg для отправки потока.

ffmpeg -re -i C:UserswDesktoptest.mp4 -vcodec copy -acodec copy -f flv -y rtmp://27.128.236.38/live/livestream
  • 1

A.srs-стендовый тяговый поток

./objs/srs_bench -sr webrtc://27.128.236.38/live/livestream -nn 10
  • 1

Справочные статьи по компиляции и развертыванию srs-bench:Стресс-тест SRS – SRS-Bench

Вытягивающий поток B.vlc

媒体->打开网络串流
输入url:https://ip:8088/live/livestream.flv
  • 1
  • 2

Проведены стресс-тесты SRS-Bench, клиента и VLC в Сиане, Нанкине и Пекине соответственно.
Протоколы испытаний следующие:

среда1 человек5-человек6 человек10 человек30 человек
Сегмент А сети стресс-тестирования серверов Сианьнормальныйнормальныйаномальныйаномальныйаномальный
Сегмент B сети стресс-тестирования серверов Сианьнормальныйнормальныйнормальныйнестабильныйнестабильный
Сиань настоящий клиентнормальныйнормальныйнормальныйаномальныйаномальный
Испытание клиента Сиань под давлениемнормальныйнормальныйнормальныйаномальныйаномальный
Нанкинский сервернормальныйнормальныйнормальныйнормальныйнормальный
Нанкинский реальный клиентнормальныйнормальныйнормальныйнормальный/
Испытание клиента под давлением в Нанкиненормальныйнормальныйнормальныйнормальный/
Пекинский сервернормальныйнормальныйаномальныйаномальныйаномальный
Пекин реальный клиентнормальныйнормальныйнормальныйнормальный/
Проверка давления внешней сетинормальныйнормальныйнормальныйнормальныйнормальный
испытание давления vlcнормальныйнормальныйнормальныйнормальный/

Результаты проверки

Нагрузочный тест внешней сетевой среды, пропускная способность в норме, ЦП в норме
Стресс-тест среды интрасети: если в ней более 5 человек, пропускная способность увеличится в 10 раз.

Сравнение захвата пакетов

Вставьте сюда описание изображения

анализировать

Скорость задержки в аномальных средах выше, чем в нормальных, и происходят потеря пакетов и повторная передача.

Посетите официальный сайт SRSофициальный сайт срс
Базовый протокол — настройка части конфигурации webrtc в webrtc.

Первая часть, rtc_server, — это глобальная конфигурация сервера RTC. Некоторые ключевые конфигурации включают в себя:

enabled:是否开启RTC服务器,默认是off。
listen:侦听的RTC端口,注意是UDP协议。
candidate:服务器提供服务的IP地址,由于RTC的特殊性,必须配置这个地址。详细参考Config: Candidate
tcp.listen: 使用TCP传输WebRTC媒体数据,侦听的TCP端口。详细参考WebRTC over TCP
  • 1
  • 2
  • 3
  • 4

Вторая часть, конфигурация RTC на каждом виртуальном хосте, некоторые ключевые конфигурации включают в себя:

rtc.enabled:是否开启RTC能力,默认是off。
rtc.rtmp_to_rtc:是否开启RTMP转RTC。
rtc.rtc_to_rtmp:是否开启RTC转RTMP。
rtc.stun_timeout:会话超时时间,单位秒。
rtc.nack:是否开启NACK的支持,即丢包重传,默认on。
rtc.twcc:是否开启TWCC的支持,即拥塞控制的反馈机制,默认on。
rtc.dtls_role:DTLS角色,active就是DTLS Client(主动发起),passive是DTLS Server(被动接受)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Выяснилось, что конфигурация rtc.nack по умолчанию включена, а это означает, что если SRS обнаруживает потерю пакетов, он будет непрерывно повторно передавать данные.

в заключение

Изучив среду интрасети компании, мы обнаружили, что среда интрасети имеет ограничения пропускной способности. Когда пропускная способность потоковой передачи клиента превышает определенный размер, потоковая передача ограничивается.
В это время SRS считает сеть ненормальной, пакеты теряются и передаются повторно, поэтому пропускная способность продолжает расти.

решать

Вариант 1. Ослабьте ограничения пропускной способности в среде интрасети.

Преимущества: Обеспечьте стабильность прямой трансляции.
Недостатки: компании не могут контролировать пропускную способность клиентов, что увеличивает затраты.

Сценарий 2:

Преимущества: при нормальных обстоятельствах во внутренних и внешних сетях прямая трансляция осуществляется нормально, а потребление полосы пропускания невелико.
Дефект: неисправность сети, SRS не передает повторно потерянные пакеты, могут возникнуть такие проблемы, как мозаика и задержки.