Technologieaustausch

SRS-Live-Broadcast-Intranet-Streaming-Bandbreitenproblemaufzeichnung

2024-07-12

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

Problemhintergrund

srsBereitgestellt auf einem Cloud-Server, 32-Kern-CPU, 64 GB Speicher, Bandbreite 300 MB.
Der Client ruft den Stream von SRS ab und stellt fest, dass der externe Netzwerk-Client den Stream abruft.CPU und Bandbreite sind normal. Wenn jedoch der Intranet-Client den Stream abruft und die Anzahl der Personen, die den Stream abrufen, 5 überschreitet, steigt die Bandbreite sprunghaft an.
Fügen Sie hier eine Bildbeschreibung ein

Fehlerbehebung

Verwenden Sie srs-bench, um SRS-Stresstests, VLC-Player-SRS-Streaming und Client-SRS-Streaming durchzuführen

Push-Streaming

Um den Stream zu pushen, wählen Sie ffmpeg aus, um den Stream zu pushen.

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

A.srs-Bank-Pull-Flow

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

Referenzartikel zur SRS-Bench-Kompilierung und -Bereitstellung:SRS-Stresstest – SRS-Bench

B.vlc-Pull-Stream

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

Durchführung von SRS-Bench-, Client- und VLC-Stresstests in Xi'an, Nanjing und Peking
Die Prüfprotokolle lauten wie folgt:

Umfeld1 Person5 Personen6 Leute10 Personen30 Personen
Xi'an-Server-Stresstest-Netzwerksegment Anormalnormalabnormalabnormalabnormal
Xi'an-Server-Stresstest-Netzwerksegment Bnormalnormalnormalinstabilinstabil
Xi'an echter Kundenormalnormalnormalabnormalabnormal
Kundendrucktest in Xi'annormalnormalnormalabnormalabnormal
Nanjing-Servernormalnormalnormalnormalnormal
Nanjing echter Kundenormalnormalnormalnormal/
Kundendrucktest in Nanjingnormalnormalnormalnormal/
Peking-Servernormalnormalabnormalabnormalabnormal
Echter Kunde aus Pekingnormalnormalnormalnormal/
Externer Netzwerkdrucktestnormalnormalnormalnormalnormal
VLC-Drucktestnormalnormalnormalnormal/

Validierungsergebnisse

Stresstest der externen Netzwerkumgebung, Bandbreite ist normal, CPU ist normal
Stresstest der Intranet-Umgebung: Bei mehr als 5 Personen steigt die Bandbreite auf das Zehnfache

Vergleich der Paketerfassung

Fügen Sie hier eine Bildbeschreibung ein

analysieren

In abnormalen Umgebungen ist die Verzögerungsrate höher als in normalen Umgebungen, und es kommt zu Paketverlusten und Neuübertragungen.

Schauen Sie sich die offizielle Website von SRS anOffizielle SRS-Website
Kernprotokoll – Konfiguration des webrtc-Teils der Konfiguration in webrtc

Der erste Teil, rtc_server, ist die globale RTC-Serverkonfiguration. Zu den wichtigsten Konfigurationen gehören:

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

Der zweite Teil, die RTC-Konfiguration in jedem Vhost, umfasst einige wichtige Konfigurationen:

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

Es wurde festgestellt, dass die Konfiguration von rtc.nack standardmäßig aktiviert ist. Dies bedeutet, dass SRS die Daten kontinuierlich erneut überträgt, wenn ein Paketverlust festgestellt wird.

abschließend

Nach der Untersuchung der Intranet-Umgebung des Unternehmens stellten wir fest, dass die Intranet-Umgebung Bandbreitenbeschränkungen aufweist. Wenn die Streaming-Bandbreite des Clients eine bestimmte Größe überschreitet, ist das Streaming eingeschränkt.
Zu diesem Zeitpunkt betrachtet SRS das Netzwerk als abnormal und Pakete gehen verloren und werden erneut übertragen, sodass die Bandbreite weiter ansteigt.

lösen

Option 1: Bandbreitenbeschränkungen in der Intranetumgebung lockern

Vorteile: Gewährleisten Sie die Stabilität des Live-Streamings
Nachteile: Unternehmen können die Client-Bandbreite nicht überwachen, was zu höheren Kosten führt

Szenario 2:

Vorteile: Unter normalen Umständen ist Live-Streaming im internen und externen Netzwerk normal und der Bandbreitenverbrauch gering.
Defekt: Netzwerkanomalie, SRS überträgt verlorene Pakete nicht erneut und es können Probleme wie Mosaike und Verzögerungen auftreten.