WebRTC Gstreamer

Hi I am trying to upload/send video in the form of RTP packets over WebRTC to Wowza Streaming Engine by using Gstreamer.

Specifically I am using Gstreamer webrtcbin and wrote some code to be able to get video uploaded to the point of being able to upload video using the videotestsrc element. However, I am facing an issue where the communication with the given UDP ICE candidates is inconsistent.

As there is limited documentation on this, would like to confirm if these are the correct steps to video published via WebRTC:

  1. Connect to WebRTC(webrtc-session.json), set Gstreamer pipeline as playing
  2. Send publisher’s SDP information with type offer, set local description to publisher’s SDP
  3. Wait for reply with type answer which contains ice candidate info and remote sdp
  4. Add candidate list as ice candidates

The machine that I am trying to publish from is different machine from the server and have configured the address as the server’s LAN IP address. Also checked that able to publish video using Wowza’s Test publisher App and was able to publish with no issues.

However when running my own gstreamer pipeline and code, the behavior is inconsistent, I had received ICMP port unreachable errors during some sessions. Using Wireshark I see that there is UDP traffic going to the specified port in the ice candidate but I get a ICMP packet port unreachable packet from the server to client after a few packets.

This behavior seems to be inconsistent, sometimes it succeeds with a UDP packet going from the server to the client. While sometimes it gets the error.

Is there any additional config required for WebRTC publishing using Gstreamer?

Hello, I do not have any official wowza documentation or testing around webrtc with Gstreamer. If you do not get an answer in here from the community, you may want to ask in Stack Overflow or Reddit dev forums.