Teams CDN/eCDN

Je größer ein Teams Meeting wird und je mehr Teilnehmer sich an einem Standort tummeln, desto kritischer wird die Bandbreite. Extrem wird es bei einer Veranstaltung mit allen Mitarbeitern. Früher wurde die Kantine ausgeräumt oder eine externe Eventlocation gesucht. Heute bietet sich doch Teams an, oder nicht?

Herausforderung

Größere Konferenzen sind keine "Mesh-Veranstaltungen" sondern nutzen eine klassische zentralisierte Topologie: Der oder die Sprecher senden ihre Daten direkt oder über ein Transportrelay zur Multicast Unit (MCU), die aber heute nichts mehr mit "IP-Multicast" zu tun hat. Diese Unit sendet Audio/Video an alle Teilnehmer der Konferenz weiter. Nun müssen Sie sich aber nur die möglichen Orte vorstellen, an denen die Anwender und die MCU steht.

MCU Standort Clients Ergebnis   Beschreibung

Cloud

verteilt

Gut

Wenn die Anwender überwiegend im Homeoffice oder in unterschiedlichen Standorten sind und einen lokalen Internet Breakout nutzen, dann ist diese Lösung zu bevorzugen. Die Cloud-Provider wie Teams, WebEx Zoom haben in der Regel gute Anbindungen.

Cloud

Büro

Schlecht

Die Cloud-Lösung ist natürlich negativ, wenn Sie eine virtuelle Mitarbeiterversammlung abhalten wollen, die allesamt im gleichen Büro sitzen. In der Regel ist ihr Provider, ihre Firewall oder Internetanbindung dieser Last nicht gewachsen. Sie werden sich schon fragen, warum jeder Teilnehmer die gleichen Daten aus der Cloud beziehen muss und ob das nicht optimiert werden kann. Tunnel-VPN-Benutzer zählen sogar doppelt.

Büro

Büro

Gut

In dem Fall kann es besser sein, wenn Sie selbst einen Konferenzserver hosten. Das ist mit Skype for Business On-Premises einfach möglich und wenn es nicht grade über 250 Benutzer sind (Large Meetings bis 1000), sollte das eine handelsübliche Hardware verkraften.

Büro

Verteilt

Schlecht

Ein lokale Lösung ist natürlich nachteilig, wenn die Teilnehmer nicht lokal sind. Ob diese nun in einem anderen Standort sitzen und über die kostbaren WAN-Leitungen gehen oder im Homeoffice die Internetanbindung der Firma belasten, macht keinen großen Unterschied.

Erschwerend kommt nun hinzu, dass jedes Meeting anders ist und sie in der Regel gar nicht wissen, wo die Anwender den tatsächlich sind. Ein Homeoffice-User mit TunnelVPN und Konferenz in der Cloud zählt quasi doppelt als Bürobenutzer. Da hilft es auch nur wenig, wenn Teams abhängig von der verfügbaren Bandbreite die Bitrate, Auflösung und Qualität entsprechend reduzieren kann. 1000 Mitarbeiter an eine Standort, die nicht nur der Ansprache des Vorstandsvorsitzenden am Büro-PC lauschen sondern auch sein Bild und die Präsentation sehen wollen, generieren halt schon 2MBit/Client oder 2-3 Gigabit Dauerlast.

Option "Rudelgucken"

So blöde es klingen mag: Was früher schon in der Kantine oder dem Foyers der Firma möglich war, muss in der digitalen Welt nicht verpönt sein. Für solche Meetings kann es durchaus eine Lösung sein, die Personen in Gruppen auf einem Großbildschirm schauen zu lassen. Das lässt sich durch etwas Catering unterstützen und wenn in der Firma zu dem Zeitpunkt in vielen Besprechungsräumen dann die Übertragung stattfindet, ist die Aufmerksamkeit zudem gesichert. Nebenbei reduziert sich die Bandbreite vielleicht auf 10% und es gibt keine ausufernden Chat-Diskussionen und Like/Heart/Smile-Feedbacks.

So können sehr viel mehr Personen auch in den großen Standorten die Übertragung anschauen ohne die Bandbreite der Internetverbindung zu überlasten.

Daten CDN

Die Probleme von Firmen mit ihrem Internetanschluss haben neben Microsoft auch andere Hersteller erkannt. Im Internet gibt es "Content delivery Networks" wie Akamai, Cloudflare u.a., die an wichtigen Knotenpunkten ihre eigenen "Caching"-Server aufgebaut haben und an ihre Kunden diese Auslieferungslager verkaufen. Eine Webseite hat sehr viele statische Inhalte wie z.B. Bilder, JavaScript, CSS aber auch Video-Beschreibungen u.a. die von Anwender "onDemand" abgerufen werden, so dass nur noch die dynamischen Inhalte, z.B. Warenkörbe, Kundendaten etc. vom eigentlichen Server kommen müssen. Abgesehen von den Zusatzkosten für die Server gewinnen bei dem Modell alle Teilnehmer. Der Anbieter entlastet seine "Arbeitsserver" von der Auslieferung statischer Seiten und der Anwender bekommt die Daten schneller ausgeliefert. Auch die WAN-Leitungen werden entlastet, da Datenmenge nicht mehrfach über die lange Strecke übertragen werden können.

Microsoft nutzt diese Dienste auch und betreibt ein eigenes CDN z.B. für SharePoint:

Audio/Video-CDN

Für Teams wäre es doch interessant, wenn ich an großen Standorten auch so eine "Relaystation/Multipliaktor" aufstellen könnte?

Leider ist das aber nicht so einfach und so auch nicht vorgesehen. Zum einen verschlüsselt Microsoft Teams jeden Audio/Video/Sharing-Datenstrom per SRTP individuell zwischen der MCU und dem jeweiligen Client.. Das wäre aber noch änderbar. Anders als beim Fernsehen kann bei Teams aber jeder Anwender seine eigene Ansicht auswählen. Das CDN müsste also entweder transcodieren oder mehrere Streams von der MCU beziehen. Zuletzt müssten die Clients natürlich noch wissen, dass es ein CDN gibt und wann sie es nutzen dürfen.

Ich sage nicht, dass dies unmöglich wäre und ich bin sicher, dass Firmen mit großen Standorten hier auch von profitieren könnten. Selbst mittelständige Firmen mit einem großen Hauptstandort könnten für "Townhall"-Meetings den Aufbau eines solchen CDN-Servers überlegen. Marktbegleiter die Cisco u.a. erlauben die Installation eigener MCUs, die dann bei der Planung des Meetings ausgewählt werden können.

Von Microsoft gibt es keine passende Software für einen eigenen lokalen MCU-Server oder "Repeater" zum Aufbau an großen Standorten.

Teams eCDN/SDN

Aber Microsoft bietet eine eCDN-Funktion an, bei der Clients als "Repeater" funktionieren. In jedem Subnetz sind also Clients, die die Daten aus der Cloud beziehen aber mehr und mehr Clients im gleichen Netzwerk beziehen die Audio/Video-Daten dann von diesen Repeatern.

Natürlich hat Microsoft hier Vorkehrungen getroffen, dass wegfallende Repeater-Clients ersetzt werden etc.

Ehe Sie nun aber jubeln, sollten Sie den Einsatzbereich kennen.

Wichtig: Diese Funktion ist nur mit "Live Events" verfügbar und nicht mit regulären Teams Meetings

Der Hinweis, dass das eCDN nur mit Teams LiveEvent funktioniert, findet sich auch im Teams Blog zur Premium License:


Quelle: https://www.microsoft.com/en-us/microsoft-365/blog/2023/02/01/microsoft-teams-premium-cut-costs-and-add-ai-powered-productivity/ 

Sie brauchen also keinen Server und kein weiteres Setup, denn anscheinend übernimmt der Teams Client im "Live Event"-Mode die Funktion eines CDNs, um weitere Clients mit Daten zu beliefern. Die Funktion ist also nicht für normale Teams Meetings verfügbar und wir wissen alle, dass LiveEvents nicht die Lösung für alle sondern eher für spezielle Fälle sind.

Neben dem "Microsoft eCDN" gibt es noch andere 3rd Party-Anbieter, die eigene kostenpflichtige CDNs für LiveEvents anbieten.

Schon Jahrzehnte gibt es System von Riverbed, Cisco, u.a., die redundante Übertragungen optimieren. Mit SRTP ist das natürlich nicht so einfach. eCDN ist aber nicht kostenfrei. eCDN ist z.B. in der Teams Premium SKU (ca 10€/User) enthalten oder kann als eigeneständiges Moduls lizenziert werden.


Quelle: Microsoft Teams Premium Lizenzierung https://learn.microsoft.com/de-de/microsoftteams/teams-add-on-licensing/licensing-enhance-teams

Die FAQ-Beschreibung liefert weitere wichtige Informationen. Einmal sehen Sie einen Preis für die reine eCDN-Funktion aber wichtiger ist die Aussage zur Anzahl:


https://learn.microsoft.com/en-us/ecdn/how-to/purchasing?#how-much-does-microsoft-ecdn-cost

Es reicht nicht eine Lizenz für den Organisator eines LiveEvents zu kaufen sondern es müssen alle Benutzer lizenziert werden, die von der Funktion profitieren. Sie müssten also schon sehr genau bestimmen, welche Benutzer nicht in einem Live Event teilnehmen dürfen, damit Sie keine Lizenz benötigen würden.

Ich frage mich natürlich, warum diese Funktion 50ct/User/Monat kosten soll, die letztlich auch Microsoft viel Bandbreite erspart. Wir möchte ich zudem die "anonymen Liveevent-User" erfassen, wen ich eine große Veranstaltung abhalte.

Die Lizenzbeschreibung empfiehlt natürlich eine Lizenz pro Office 365 Seat aber sagt zugleich, dass keine aktive Kontrolle erfolgt. Sie können die eCDN-Lizenz auch nicht den Benutzern gezielt zuweisen, sondern sie ist dann einfach für alle aktiv und nur Kennzahlen von abgehaltenen Live Events können einen Rückschluss auf die Benutzer liefern, die davon profitiert haben:

Über ein eigenes Admin-Portal (https://admin.ecdn.microsoft.com/) können Sie die ECDN-Nutzung auswerten und sogar "Silent Tests" machen. In meinem Spiel-Tenant gibt es natürlich nicht viel zu sehen.


Auszug https://admin.ecdn.microsoft.com/analytics

Mehr Beispiele finden Sie auf der Microsoft Seite.

Alternatives Streaming

Es gibt aber noch andere Wege, ein Teams Meeting "größer" zu machen und speziell am Standort auch ganz ohne das Backend von Microsoft zu verteilen. Dies gilt insbesondere, wenn die Teilnehmer gar nicht die "komplette Teams Experience" benötigen sondern einfach nur zuhören/schauen sollen. Was sollte mich als Firma dann daran hindern, wenn ein PC im Netzwerk den Audio/Video-Stream empfängt und seinerseits an viele interne Clients verteilt? Das ist zwar kein automatischer Prozess aber für ein Townhall-Meeting kann dies durchaus eine geeignete Lösung sein. An die Audio/Video-Informationen kommen sie mit Teams über verschiedene Wege:

Zugang Beschreibung

Screen-Capture

Schon immer können Sie einfach den Bildschirm und die Soundausgabe eines Computer mit Programmen "aufzeichnen". Einige dieser Programme können die so erfassten Bilder und Töne aber direkt weiter streamen. Diese Technik nutzen Gamer beim Streamen ihrer Spiele z.B. auf YouTube in Echtzeit zu publizieren. Sie könnten das über den Weg auch mit ihren großen Teams-Meetings nutzen und über YouTube-Streaming eine ganz andere Teilnehmergruppe erreichen. Allerdings ist das sicher keine Lösung für große Firmenstandorte, denn auch YouTube hat keine lokalen CDN-Services

HDMI-Capture

Eine andere Variante ist der Abgriff des Bild- und Ton-Signals an den Ausgängen des Computers. Ein USB-Dongle, der HDMI-Daten erfasst und weiter verarbeitet ist unter 100€ zu erhalten und schon Microsoft hat so ein Setup für Events genutzt. Eine Beispiel habe ich hier beschrieben:

NDI-Streaming

Statt Daten per HDMI oder der Grafikkarte zu extrahieren, gibt es direkt einen NDI/SDI-Standard, mit dem auch Teams Clients gewisse Audio/Video-Ströme über das Netzwerk ausleiten können.

Die Funktion muss über Set-CSTeamsMeetingPolicy aktiviert werden.

Set-CsTeamsMeetingPolicy -Identity Global -LiveStreamingMode Enabled

RTMP-Streaming

Im April 2022 hat Teams eine Funktion erhalten, dass Mitarbeiter ihr Video auch per RTMP an Streamingplattformen senden können.

Die Funktion muss über Set-CSTeamsMeetingPolicy aktiviert werden.

Set-CsTeamsMeetingPolicy -Identity Global -LiveStreamingMode Enabled

LinkedIn Live

LinkedIn bietet auch die Möglichkeit Audio/Video an eine größere Teilnehmergruppe zu verteilen. Mit einer App für Teams kann ein Client die Meeting-Daten abgreifen und an LinkedIn weitergeben.

Wir haben gleich mehrere Optionen um Audio/Video von einem Client im Firmennetzwerk die Daten an andere "Verteilplattformen" zu bringen".

Lokaler Streaming Server

Interessant wird die Story aber nun, wenn Sie einen lokalen Streaming-Service bereitstellen können und die Benutzer an dem Standort einfach nur den Stream betrachten wollen. Ihr Setup wäre dann:

  • Ein oder mehrere Präsenter in Teams
    Die präsentierenden oder sprechenden Personen nutzen ganz einfach ihren Teams Client und sind im Meeting
  • HomeOffice in Teams
    Benutzer, die nicht am XL-Standort mit einem eigenen Streaming-Service sind, können ebenfalls mit Teams arbeiten.
  • Rudelgucken
    Die überwiegende Zahl der Anwender am großen Standorte sollte nicht Microsoft Teams nutzen, sondern z.B. auf der Intranet-Seite dem Audio/Video-Strom folgen.

Das funktioniert natürlich nur für "große" Teilnehmermengen, bei denen ein Organisator die Einladung entsprechend um den Link zum internen Streamingserver erweitert.

Ich habe nun keinen Bot gebaut, der einen Termin per Graph um den Link zu einem Streamingserver erweitert oder sogar den "Brücken-PC" dazu bringt, automatisch das Meeting zu duplizieren. Vielleicht macht jemand anderes ja mal eine Lösung daraus.

Damit bleibt aber noch die Frage, welche Plattform denn den RTMP-Stream annimmt und in einer Intranet-Seite eingebettet ausspielt. Früher gab es diese Dienste sogar von Microsoft. Erinnern Sie sich noch an den Microsoft NetShow Server, Windows Media Services, IIS Media Services u.a.?

Allerdings sind all diese Produkte mittlerweile veraltet und werden nicht mehr weiter entwickelt. Der "Markt" für das eigene Hosting solcher Systeme ist in Zeichen von Homeoffice und mobilem Arbeiten deutlich geringer geworden. Stattdessen gibt es die entsprechenden Cloud-Dienst wie eben Teams, LiveEvents, Azure Streaming Services etc. Genau diese Cloud-Angebote helfen uns aber nicht weiter, wenn wir sehr viele Teilnehmer am lokalen Standort haben.

Nun wird es wenig konkret, denn meine Erfahrungen mit "Fußball WM mit Windows Media Server streamen" sind einige Jahre her

Wir brauchen einen On-Premises Konferenz-Service, den die lokalen Teilnehmer möglichst einfach z.B.: per Browser nutzen können und Teams-Client das Audio/Video-Bild dort einspeist. Das System muss natürlich sicher, skalierbar und beherrschbar sein.

  • Microsoft Skype für Business
    Es klingt erst einmal seltsam aber natürlich können Sie z.B. einen einzelnen Skype for Business Frontend-Server als Konferenzsystem installieren. Windows Administratoren kennen sich damit vermutlich besser aus als eine Linux-Variante und eine Teilnahme per Webbrowser ist auch möglich.
  • Big Blue Button Server
    https://docs.bigbluebutton.org/
    Der Open Source Server wird bei diversen Schulen und Universitäten eingesetzt und kann natürlich auch in Firmen als Video-Konferenz-System seinen Dienst tun. Vielleicht wollen Sie den Service ja sogar als Online Learning Plattform umfangreicher nutzen.
  • Jitsi Meet https://jitsi.org/ https://jitsi.github.io/handbook/docs/devops-guide/
    https://de.wikipedia.org/wiki/Jitsi
    Auch Jitsi ist eine "Open Source"-Meeting-Plattform, die sie auf Linux oder als Docker-Container installieren können

Neben den Konferenzplattformen gibt es noch einfache Streaming Server, die einen RTMP-Stream annehmen und weiter verteilen. Das "Drumherum" wie eine Webseite etc. ist selbst beizusteuern.

Die Frage ist bei all den Systemen auch immer, wie sicher/stabil sie sind und wenn wirklich 1000 User mit 2MBit gleichzeitig schauen, dann sind 2GBit auch eine Hausnummer, die eine 1GBit-Karte nicht mehr schafft. Also muss da schon auch Rechenleistung und Hardware dahinter sein und es ist quasi nicht vorab simulierbar.

NGINX und RTMP

Auf der Suche nach einem Server bin ich relativ schnell auf NGINX gestoßen. Die Software gibt es für Linux und Windows und verschiedene Quellen beschreiben, wie schnell damit ein kleiner Webserver und Streamingserver aufzusetzen ist. Se installieren auf ihrem Windows oder Linux-Server einfach nginx mit dem RTMP-Modul und addieren folgendes in ihre Konfigurationsdatei. Bei "allow publish" muss natürlich die IP-Adresse des Clients hinein, die einen Stream senden darf.

rtmp {
        server {
                listen 1935;
                chunk_size 4096;
                allow publish 127.0.0.1;
                deny publish all;
                application teams {
                        live on;
                        record off;
                }
        }
}

Vergessen Sie nicht auch nicht auf dem Server den Port 1935 in der Firewall freizuschalten.

Nun brauchen wir noch eine Komponente, die die Daten von Microsoft Teams entweder über ein "Bildschirmfoto" oder besser noch über NDI annimmt und zum Stream sendet. Auch hier hat sich z.B. OBS Studio bewährt. Der Name "/teams" entspricht der application definition in der nginx-Konfiguration.

Allerdings sollten für ihre Anwender im Intranet dann eine kleine HTML-Seite vorbereiten, mit der Sie denn in einem Mediaplayer einen RTMP-Stream anschauen können.

Zwischenstand

Teams, Zoom, WebEx etc. sind leistungsfähige Konferenzsysteme aber stellen Netzwerkadministratoren vor größere Probleme, wenn viele Teilnehmer an einem Standort ist und jeder Teilnehmer seinen eigenen Audio/Video-Stream empfängt. Teams kann bei Live Events und passender Lizenz mit dem eCDN Abhilfe schaffen aber Live Events sind ein Spezialfall für ganz große Kreise. Reine Teams Meetings können bis zu 1000 Teilnehmer bedienen und darüber hinaus bis 10.000 eine "View Only"-Oberfläche anbieten. Das sollen Sie aber nicht mit vielen Clients an einem Standort versuchen.

Ich habe keine Empfehlung oder Musterinstallation für einen solchen Service. Diese Seite soll primär ein Denkanstoß sein und vielleicht entwickelt wir gemeinsam eine Lösung oder sie schicken mit einen Link zu ihrer Beschreibung, wie Sie an einem größeren Standort den Audio/Video-Strom eines Teams Meetings elegant an viele interne Clients verteilen ohne ihre Internet-Leitung zu strapazieren.

Weitere Links