Wowza Community

Edge browser webRTC support

I am testing the demo publisher code cross browser. And the server is not initiating candidates with Edge browser and unpublishing itself automatically without a detailed log. Edge supports the webRTC api now.

The SDP mangling in the publisher demo breaks it but, so needs to be commented out, trying many things fails to get it working.

Does it need a turn server configured still ?

My configuration needs to be this to get Firefox even working

192.168.5.25,udp

It just simply stops

—524.533------------------------- 2019-12-2803:18:56AEDTcreatewebrtcINFO200–_defaultVHost_webrtc_definst_0.001-80null127.0.0.1webrtc-known318697284001000myStream-----nullnull-null- 2019-12-2803:18:56AEDTcommentserverINFO200-WebRTCCommands.sendOffer[myStream]: audioCodec:opus_defaultVHost_webrtc_definst_524.536-80null127.0.0.1webrtc-known31869728400-------------null- 2019-12-2803:18:56AEDTcommentserverINFO200-WebRTCRTPHandler.bind: port:1_defaultVHost_webrtc_definst_524.536-80null127.0.0.1webrtc-known31869728400-------------null- 2019-12-2803:18:56AEDTcommentserverINFO200-WebRTCRTPHandler.bind: port:2_defaultVHost_webrtc_definst_524.536-80null127.0.0.1webrtc-known31869728400-------------null- 2019-12-2803:18:56AEDTcommentserverINFO200-WebRTCCommands.sendOffer[myStream]: videoCodec:H264_defaultVHost_webrtc_definst_524.536-80null127.0.0.1webrtc-known31869728400-------------null- 2019-12-2803:18:56AEDTcommentserverINFO200-WebRTCRTPHandler.bind: port:3_defaultVHost_webrtc_definst_524.537-80null127.0.0.1webrtc-known31869728400-------------null- 2019-12-2803:18:56AEDTcommentserverINFO200-WebRTCRTPHandler.bind: port:4_defaultVHost_webrtc_definst_524.537-80null127.0.0.1webrtc-known31869728400-------------null- 2019-12-2803:18:56AEDTcommentserverINFO200-WebRTCCommands.sendResponse[myStream]: Assigning port: 6976_defaultVHost_webrtc_definst_524.537-80null127.0.0.1webrtc-known31869728400-------------null- 2019-12-2803:18:56AEDTcommentserverINFO200-WebRTCCommands.sendOffer[myStream]: iceCandidate:candidate:0 1 UDP 50 192.168.5.25 6976 typ host generation 0_defaultVHost_webrtc_definst_524.537-80null127.0.0.1webrtc-known31869728400-------------null- 2019-12-2803:19:06AEDTcommentserverINFO200-WebRTCSession.shutdown[318697284]: Shutdown WebRTC session.—534.552------------------------- 2019-12-2803:19:06AEDTunpublishwebrtcINFO200–_defaultVHost_webrtc_definst_10.058-80null127.0.0.1webrtc-known318697284001000myStream-----nullnull-null- 2019-12-2803:19:06AEDTdestroystreamINFO200–_defaultVHost_webrtc_definst_10.059-80null127.0.0.1webrtc-known318697284001000myStream-----nullnull-null- 2019-12-2803:20:06AEDTapp-stopapplicationINFO200_definst_webrtc/definst—594.873------------------------- 2019-12-2803:52:20AEDTcommentserverINFO200-WebSocketSession.destroy[1949582494]: source:client status:-1 description:Unknown—2528.487-------------------------

Hello @Daniel Rossi,

The Origin/Edge configuration of Wowza Streaming Engine does not support WebRTC.

https://www.wowza.com/docs/webrtc-workflows-in-wowza-streaming-engine

Regards,

Alex C

Wowza Support

Edge browser support for WebRTC not Edge server. Well that is another support constraint altogether. So different origin servers are required for connectivity and publishing because Edge servers are not supported ? The systems I work on have origin and edge servers setup for HLS playback.

Live streaming has a requirement for 608 captions also, so the lack of data channels or sending embedded text tracks is a concern, and limit the use of WebRTC and may have to use in the future SRT mpegts publishing / HLS playback.

I fixed up the out of date demo code to work for Safari. So Chrome,Firefox and Safari is working. I can get Edge browser working up to recieving the remote stream which is blank, nothing is received, and it fails to continue further to adding the peer candidate. It should continue going through the candidate connection state of checking then connected but it doesn’t. Does it need a turn server ?

Here is the updated demo code.

https://downloads-electroteque-org.s3.amazonaws.com/webrtc.zip

Hi @Daniel Rossi, thanks for clarifying you were inquiring about webrtc with edge browser. For WebRTC, we support Chrome/Firefox/Safari (limited). No support at this time for Microsoft Edge with WebRTC or any mobile platform. (please see the doc Alex linked to above).

We do provide Edge support for Wowza Player HLS playback, just not for webrtc workflows.

However, there are developers in our slack community experimenting with this and while we don’t officially support it right now, we encourage you to test and share your results in our webrtc slack here. You may find some of the old threads in there interesting and helpful.

Also, in your testing, remember that not all browsers support all codecs with WebRTC. H.264 is the most widely supported webrtc codec, but for best performance we recommend using VP8 video with Opus or Vorbis audio.

Or you can enable the transcoder and transmux it for testing.

Please review webrtc limitations and options here.

I tried to join slack, I think I already did but can’t back in ?. Its failing to gather candidates so won’t continue it requires udp debugging somehow. It doesnt use ORTC anymore.

Safari code is fixed up with my code above. It requires promises and not callbacks. Safari tests were not working.

I found a problem with publishing, wowza requires bitrate control or else the picture is pixelated, at least a max bitrate of 2000. I am still trying to find more limitations.

Chrome has a new api for dynamic max bitrate control and doesnt need sdp mangling, the other browsers still do, Im not sure yet if this will work with wowza. I’ll try and report my findings to slack then.

Chrome has a new api for selecting codecs which is returned in the offer sdp. The other browsers still need sdp mangling also.

I am implementing these changes in my forked simple-peer project and hopefully still works with wowza.

I want to move onto mobile testing next, and perhaps even see if ffmpeg / gstreamer webrtc publishing can work. If ffmpeg webrtc can work then OBS can be used for publishing via a plugin.