Video- und Audiokonferenz für Unity3D mit WebRTC von LiveSwitch / IceLink für jede von FrozenMountain unterstützte Plattform. Inklusive Mehrparteien-Konferenzen (SFU & MCU).
[Update]
Zurzeit sind wir dabei, all dies mit zusätzlichen Funktionen neu zu implementieren und ein SDK zu erstellen, das mit bestehenden LiveSwitch- oder IceLink-Implementierungen verwendet werden kann. Wenn Sie an unserer bevorstehenden privaten Beta teilnehmen möchten, senden Sie eine E-Mail mit Ihrem Anwendungsfall an ls4unity-beta@auerflorian.com. ls4unity-beta@auerflorian.com including your usecase.
Über das Projekt
Zur Unterstützung von Video- und Audiokonferenzen auf den drei Zielplattformen wurde LiveSwitch von FrozenMountain gewählt. Es basiert auf IceLink (WebRTC für alle Browser und nativen Plattformen von FrozenMountain) und WebSync (Signalisierung, Chat & Datensynchronisation von FrozenMountain) mit der Möglichkeit für Mehrparteienkonferenzen (SFU & MCU).
FrozenMountain ermöglicht es uns, die modernsten Codecs wie VP8 und VP9 zu verwenden. Das Projekt wurde für Unity (Android und iOS) sowie für WPF entwickelt. Es gibt aber auch andere Plattformen, die leicht angesprochen werden können. Z.B. macOS, tvOS, Linux, UWP (Hololens!), iOS und Android sowohl nativ als auch Xamarin, alle Browser.
Warum WebRTC
WebRTC (Web Real-Time Communication) ist ein kostenloses Open-Source-Projekt, das Webbrowsern und mobilen Anwendungen Echtzeitkommunikation (RTC) bietet [...]. Es ermöglicht Audio- und Videokommunikation innerhalb von Webseiten [und Anwendungen], indem es direkte Peer-to-Peer-Kommunikation ermöglicht [...].
Keine "Out-of-the-Box"-Lösung von FrozenMountain
FrozenMountain unterstützt viele Plattformen für IceLink, WebSync und LiveSwitch. Es gibt auch Bibliotheken für Unity3D. Aber im Moment stellt FrozenMountain uns keine Quellen und Senken für Audio oder Video zur Verfügung. Außerdem muss man die Unity3D-spezifische Nutzung der hardwarebetriebenen Codecs zum Laufen bringen. Man muss also alles selbst machen, ohne Hilfe von FrozenMountain (wenn man nicht für professionelle Dienste bezahlt). Es war ein langer und steiniger Weg, den wir gehen mussten. Aber am Ende hat es funktioniert. Wir haben es geschafft, Audioquellen und -senken plattformunabhängig zu implementieren, so dass wir sie für jede Plattform verwenden können, auf der die Magie von C# und .NET läuft. Die Video-Senken und -Quellen verwenden Hardware-Encoder und benötigen einen Codec für jede Plattform (plattformspezifische Arbeitslast). Diese Art der Implementierung von WebRTC auf Unity3D kann für LiveSwitch und auch für IceLink verwendet werden.
Einige sehr zeitaufwendige Bugs
- VPX-Encoder konnte nicht initialisiert werden. ABI-Version stimmt nicht überein -> falsche VP8/VP9-Encoder-Version
- VPX-Encoder konnte nicht initialisiert werden. Ungültige Parameter -> falsche Initialisierungsparameter für Encoder
Quellcode
Wir möchten der Gemeinschaft etwas zurückgeben. Diese Implementierung wurde im Rahmen eines größeren Projekts durchgeführt, daher kann der Quellcode nicht weitergegeben werden. Aber Sie können sich an uns wenden, wenn Sie Hilfe benötigen.