WebRTC videochatt och videokonferenser stöd

WebRTC är en ny realtid video kommunikationsteknik. Support är inte tillgänglig på alla webbläsare och enheter men ökar. Det verkliga problemet i dagsläget är skalbarhet.

Skalbarhet

Eftersom WebRTC använder peering nätverk, det fortfarande måste finnas en närliggande nod för att distribuera strömmen till andra lokala värdar. Peering i ett globalt nätverk kan vara otroligt svårt.

Konventionella out-of-the-box WebRTC lösningar kräver varje klient att upprätta och upprätthålla separata anslutningar med alla andra deltagare i ett komplicerat nätverk där bandbredd belastningen ökar exponentiellt varje ytterligare deltagare läggs.

Programföretagen behöver grade serveranslutningar att live streama till flera användare och använder en vanlig hem ADSL-anslutning (som har har högre nedladdning och större uppladdning) orsakar verkliga problem.

När du testar med 2 eller några användare fungerar bra i demos och liten belastning prövningar, WebRTC gränser visar ofta i produktionsläge: blir oanvändbar när många användare tittar på samma HD ström och programföretaget anslutning är regelbunden.

Alla startup hoppas deras streaming program kommer att bli en stor succé, med tusentals tittarna. En artist streaming en full hd-video på 8 Mbit/s direkt till 100 tittare i olika världen platser skulle kräva upp till 800Mbps Ladda upp anslutning.
De flesta ADSL-anslutningar har under 100 Mbps överföring att tillåta sådana videoströmning till maximalt 12 användare.

En lösning är att använda en relay-server för strömmande pålitlig från och WebRTC klienter som genomförs med den BroadcastLiveVideo lösning.

Stöd för vanliga webbläsare och tillförlitlighet av genomförandet

WebRTC stöds inte för närvarande av standard PC webbläsare på äldre system (Internet Explorer för Windows och Safari för äldre Mac OS) eller generellt äldre versioner som används av många användare.
Detta skapar ett verkligt problem för organisationen nätverk med standard programvarudistributioner, äldre OS uppställningar, Studios och internet caffes med restriktiva administrativ programvara eller vanligt nybörjare användare som använder sina datorer med standardinställningen.
WebRTC stöds inte för närvarande på standard mobila webbläsare antingen, med undantag för senaste Android.
Medan WebRTC är populär teknik nördar och entusiaster, många vanliga användare kan inte komma åt sådan implementering eller kan använda endast begränsad funktionalitet.

WebRTC standarder är tidigt i processen för ratificering. Webbläsare som stöder WebRTC är inte helt transparent med uppdateringar vilket kan resultera i problem med genomförandet av WebRTC.

För mer information se dessa referenswebbplatser:

PC-webbläsare Aktie WebRTC RTMP
Internet Explorer + Edge (Windows standard) 9% Nr * Ja
Safari (MacOS standard) 13% Nej Ja
Chrome 57% Ja Ja
Firefox 9% Ja * Ja
Opera 5% Ja Ja

*Mozilla rapporter Navigator.getUserMedia som föråldrade funktioner och MediaDevices.getUserMedia som experimentella .
*IE stöder inte WebRTC alls men det finns planer på att införa visst stöd i Edge webbläsare .

PC webbläsaren marknadsandel visar WebRTC installationsprogrammet inte kommer att fungera för många PC-användare på grund av webbläsarstöd. Många av dessa användare med standard webbläsare är nybörjare eller begränsade av arbetsplatsen politik från att använda en annan webbläsare och är osannolikt att ändra deras webbläsare.
På mobiler WebRTC är stöd ännu lägre medan RTMP stöds både Android och iOS med apps.
RTMP strömmar kan publiceras på iOS och Android webbläsare som HLS.

WebRTC vs RTMP

För närvarande, WebRTC är fortfarande i utveckling diskussion för dess fullständiga genomförande RTMP är redan tillgängliga för alla realtid kommunikation projekt distributioner.

WebRTC kan vara en lösning för framtiden och RTMP är en lösning för närvarande som kan krävas för en stund.

WebRTC kan förlora den nuvarande kampen för dess standardisering och driftskompatibilitet, med många implementering förslag över toppen spindelväv beten eller med en avvikande marknaden strategi från Google, Microsoft, Äpple.

RTMP genomförs på ett tillförlitligt sätt på alla PC-webbläsare med Flash-plugin och som fristående applikationer för mobila och stationära OS.

Förmedlas (RTMP-Server) vs P2P (WebRTC eller Flash RTMFP)

Beroende på ISP och network setup inte kan en betydande andel av användare ansluta och strömma direkt till varandra på alla. Några upplever enorma latens (flera sekunder) och massiv ram förlust över P2P.

Testa din P2P nätverksfunktioner med detta RTMFP Connectivity checker .

Använda en relay-server är mest tillförlitliga lösningen för videokommunikation.

Vissa leverantörer säger bara 8% av användarna behöver RTMP men som kunde vara partisk med tanke på att de betonar WebRTC / RTMFP sessioner som inte kräver streaming server kostnader.
Vanligtvis går de flesta hem internet-anslutningar inte bra med P2P om användare inte är i samma eller mycket nära nätverk. Grade serveranslutningar är vanligtvis krävs för tillförlitliga P2P på denna teknik.

Säkerhet handlar med hjälp av webbläsare som stöd WebRTC

I januari 2015, TorrentFreak rapporterade att webbläsare som stöder WebRTC lider av en allvarlig säkerhetsbrist som äventyrar säkerheten för VPN-tunnlar, genom att tillåta användaren att läsa riktiga IP-adress. IP-adressen läsa begäranden inte visas i webbläsare utvecklarkonsolen, och de blockeras inte av gemensamma annons blockera/privacy plugins (aktivera online spårning av annonsörer och andra enheter trots försiktighetsåtgärder).

Om din webbläsare är WebRTC kompatibel testa detta IP-verktyg.

Slutet av Flash

Blixt planerades sättas ett decennium sedan men alternativ tog lång tid och webbläsare fortsatt stöd eftersom det var den enda pålitliga metoden att tillhandahålla vissa funktioner som sänder webbkamera.

För närvarande planerar webbläsare och utvecklarna att supporten upphör för Flash i slutet av 2020.

Flash-stöd kommer att avbrytas av webbläsare när andra tekniker blir tillgängliga och tillförlitliga för funktioner som tidigare tillhandahölls av Flash endast (strömmande video från webbkamera).

VideoWhisper RTMP nätet Session Check

För platser och integrationer där ytterligare säkerhetsåtgärder krävs, VideoWhisper Web Applications support login session check on Wowza RTMP side.

This is used to make sure no clients will be able to connect to rtmp server without having previously logged in on the website (with the _login.php scripts for php editions).
When a new client tries to connect to RTMP server with a session name, rtmp application will check on the web server if that client session exists. If web server does not confirm that client logged in, rtmp server will reject the connection. RTMP server will also check for a webKey that needs to be configured same way on rtmp and web server: this will prevent connections in case of web domain hijacking (only web server and rtmp server know the key, client app does not).

Notes

  • This will disable connections from external encoders (ie. FMLE) and players (ie. JwPlayer) to that rtmp address, as these will not provide a session name to check for validity. These apps can be supported with a more advanced solution that allows inserting a key in rtmp address and also continuous rtmp session control from web (rtmp reports online sessions to web scripts and these can terminate any rtmp session): RTMP Session kontroll
  • Usually, each installation will require its own rtmp side that checks session info with that installation. Otherwise you will have to tweak scripts to check on all installations.
  • This Wowza SE functionality is optional and can be disabled by leaving those properties blank.

RTMP Configuration

RTMP side web session check is currently supported for Wowza rtmp side. Download latest version of Wowza rtmp side, deploy to your server and update these settings in conf/videowhisper-web/Application.xml :


<Properties>
<Boende>
<Namn>acceptPlayers</Namn>
<Värde>True</Värde>
</Boende>
<Boende>
<Namn>webLogin</Namn>
<Värde>http://installation_url/rtmp_login.php?s=</Värde>
</Boende>
<Boende>
<Namn>webKey</Namn>
<Värde>VideoWhisper</Värde>
</Boende>
<Boende>
<Namn>webLogout</Namn>
<Värde>http://installation_url/rtmp_logout.php?s=</Värde>
</Boende>
</Properties>
</Ansökan>

Then restart WowzaMediaServer service. For troubleshooting check Wowza access logs. If errors occur in the error logs submit a ticket to VideoWhisper about this.

Web Configuration

Download latest Video Conference php edition and check these integration files:
rtmp.inc.phpstores session info when user authenticates from vc_login.php ; contains $webKey if you want to change it
rtmp_login.phpcalled by rtmp server to see if a session name is valid (authenticated); also gets canKick permission to allow user to kick clients
rtmp_logout.phpcalled by rtmp server when client with a session name disconnected (to cleanup session)

Configure settings.php to use the videowhisper-web rtmp address.

To integrate this on other editions or installations you will need to copy the 3 files mentioned above to installation folder and include rtmp.inc.php in the _login.php scripts that authorize the user.
Other changes could be required depending on particularities of each integration.

Sample Demo Configuration

Installation url: http://www.videowhisper.com/demos/vc_web
Using rtmp address: RTMP://videowhisper.com/videowhisper-web

<Boende>
<Namn>webLogin</Namn>
<Värde>http://www.videowhisper.com/demos/vc_web/rtmp_login.php?s=</Värde>
</Boende>
<Boende>
<Namn>webKey</Namn>
<Värde>VideoWhisper</Värde>
</Boende>
<Boende>
<Namn>webLogout</Namn>
<Värde>http://www.videowhisper.com/demos/vc_web/rtmp_logout.php?s=</Värde>
</Boende>

RTMP Session kontroll (including after login and for 3rd party encoders/apps)

In addition to session login control, VideoWhisper rtmp side for Wowza can also provide RTMP Session Control (special licensing is required for 3rd party servers).

This can be used to monitor 3rd party clients, other than VideoWhisper applications, like Wirecast, Flash Media Live Encoder (FMLE), Open Broadcaster Software (OBS), iOS/Android GoCoder app for rtmp live broadcasting.

I exemplet, if a broadcaster connects directly with an external encoder application, the website scripts can be notified about this to show his channel as LIVE.
Also web scripts can communicate back to rtmp server to disconnect a client when necessary.