title: which gstreamer pipeline settings are needed to process chrome's rtp stream?
body: <p>I'm streaming a webcam from a browser using webrtc to a server where the following setup works:</p>
  
  <ol>
  <li>using firefox and a modified echo-test html <a href="https://github.com/meetecho/janus-gateway" rel="nofollow">from janus gateway</a> I send the webcam stream to a janus server</li>
  <li>the janus server is running using a modified echotest plugin which simply udp-streams the given char *buf in janus_videorecv_incoming_rtp() to port 5060, just for testing purpose (<a href="https://github.com/Computician/janus-gateway/blob/master/plugins/janus_bidirectionalstreaming.c" rel="nofollow">pretty much like this</a>)</li>
  <li>the following gstreamer command line actually opens a window showing the streaming video</li>
  </ol>
  
  <p><code>GST_DEBUG=p*:5 gst-launch-1.0 -vvv udpsrc caps="application/x-rtp,media=video,clock-rate=90000,payload=96" port=5060 ! rtpvp8depay ! vp8dec ! autovideosink</code></p>
  
  <p>in the modified echo test javascript i remove a few lines from the sdp answer the browser will receive like the following:</p>
  
  <pre><code>//jsep.sdp = jsep.sdp.replace(/a=rtcp-mux[^\s]*\s*/g, '');
  jsep.sdp = jsep.sdp.replace(/a=rtpmap[^\s]*\s*red[^\s]*\s*/g, '');
  jsep.sdp = jsep.sdp.replace(/a=rtpmap[^\s]*\s*ulpfec[^\s]*\s*/g, '');
  jsep.sdp = jsep.sdp.replace(/a=fmtp[^\r\n]*\r*\n*/g, '');
  jsep.sdp = jsep.sdp.replace(/a=rtcp-fb[^\s]*\s*goog-remb[^\s]*\s*/g, '');
  </code></pre>
  
  <p>below, one can find the modified firefox sdp answer which works for above gstreamer command
  but the, in the same way, modified sdp answer doesnt work in case of chrome
  i thought about adjusting the payload in the gstreamer caps, but 32,33,96,100,120 didnt work</p>
  
  <p>so the question is: what is needed in case of chrome to get this to work?</p>
  
  <p>i also tried adding fir/pli requests like in videoroom.c from janus as <a href="https://groups.google.com/forum/#!topic/meetecho-janus/6g1vbp6yXDw" rel="nofollow">suggested here</a></p>
  
  <p>the gstreamer output in case of chrome is, where the command just keeps waiting at the last line:</p>
  
  <pre><code>0:00:00.025791492 22279      0x1954b90 DEBUG               pipeline gstpipeline.c:219:gst_pipeline_init:&lt;GstPipeline@0x1962180&gt; set bus &lt;bus2&gt; on pipeline
  Setting pipeline to PAUSED ...
  0:00:00.029798090 22279      0x1954b90 DEBUG               pipeline gstpipeline.c:282:reset_start_time:&lt;pipeline0&gt; reset start_time to 0
  Pipeline is live and does not need PREROLL ...
  /GstPipeline:pipeline0/GstUDPSrc:udpsrc0.GstPad:src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)96, encoding-name=(string)VP8-DRAFT-IETF-01
  Setting pipeline to PLAYING ...
  0:00:00.030045034 22279      0x1954b90 DEBUG               pipeline gstpipeline.c:377:gst_pipeline_change_state:&lt;pipeline0&gt; selecting clock and base_time
  0:00:00.030053523 22279      0x1954b90 DEBUG               pipeline gstpipeline.c:398:gst_pipeline_change_state:&lt;pipeline0&gt; Need to update start_time
  0:00:00.030058181 22279      0x1954b90 DEBUG               pipeline gstpipeline.c:403:gst_pipeline_change_state:&lt;pipeline0&gt; Need to update clock.
  /GstPipeline:pipeline0/GstRtpVP8Depay:rtpvp8depay0.GstPad:src: caps = video/x-vp8, framerate=(fraction)0/1
  /GstPipeline:pipeline0/GstVP8Dec:vp8dec0.GstPad:sink: caps = video/x-vp8, framerate=(fraction)0/1
  0:00:00.030111345 22279      0x1954b90 DEBUG               pipeline gstpipeline.c:443:gst_pipeline_change_state:&lt;pipeline0&gt; start_time=0:00:00.000000000, now=33:52:04.529345754, base_time 33:52:04.529345754
  /GstPipeline:pipeline0/GstRtpVP8Depay:rtpvp8depay0.GstPad:sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, payload=(int)96, encoding-name=(string)VP8-DRAFT-IETF-01
  New clock: GstSystemClock
  </code></pre>
  
  <p>chrome answer:</p>
  
  <pre><code>v=0
  o=- 8913399741269897639 2 IN IP4 127.0.0.1
  s=-
  t=0 0
  a=group:BUNDLE audio video
  a=msid-semantic: WMS janus
  m=audio 1 RTP/SAVPF 111 103 104 0 8 106 105 13 126
  a=mid:audio
  c=IN IP4 192.168.0.1
  a=sendrecv
  a=rtcp-mux
  a=ice-ufrag:l0n9
  a=ice-pwd:r1elT1Ew8lP3TNlzwAHUsC
  a=ice-options:trickle
  a=fingerprint:sha-256 C5:5F:DA:7D:84:47:B1:BF:6B:55:16:62:48:31:3E:D3:F1:7B:25:89:92:4A:4B:4D:4D:D9:D5:AF:EA:D8:15:44
  a=setup:active
  a=connection:new
  a=rtpmap:111 opus/48000/2
  a=rtpmap:103 ISAC/16000
  a=rtpmap:104 ISAC/32000
  a=rtpmap:0 PCMU/8000
  a=rtpmap:8 PCMA/8000
  a=rtpmap:106 CN/32000
  a=rtpmap:105 CN/16000
  a=rtpmap:13 CN/8000
  a=rtpmap:126 telephone-event/8000
  a=maxptime:60
  a=ssrc:600390024 cname:janusaudio
  a=ssrc:600390024 msid:janus janusa0
  a=ssrc:600390024 mslabel:janus
  a=ssrc:600390024 label:janusa0
  a=candidate:1 1 udp 2013266431 192.168.0.1 45728 typ host
  m=video 1 RTP/SAVPF 100 116 117 96
  a=mid:video
  c=IN IP4 192.168.0.1
  a=sendrecv
  a=rtcp-mux
  a=ice-ufrag:l0n9
  a=ice-pwd:r1elT1Ew8lP3TNlzwAHUsC
  a=ice-options:trickle
  a=fingerprint:sha-256 C5:5F:DA:7D:84:47:B1:BF:6B:55:16:62:48:31:3E:D3:F1:7B:25:89:92:4A:4B:4D:4D:D9:D5:AF:EA:D8:15:44
  a=setup:active
  a=connection:new
  a=rtpmap:100 VP8/90000
  a=rtcp-fb:100 ccm fir
  a=rtcp-fb:100 nack
  a=rtcp-fb:100 nack pli
  a=rtpmap:96 rtx/90000
  a=ssrc-group:FID 3188003624 3419969288
  a=ssrc:677441062 cname:janusvideo
  a=ssrc:677441062 msid:janus janusv0
  a=ssrc:677441062 mslabel:janus
  a=ssrc:677441062 label:janusv0
  a=candidate:1 1 udp 2013266431 192.168.0.1 45728 typ host
  m=application 0 DTLS/SCTP 0
  c=IN IP4 192.168.0.1
  </code></pre>
  
  <p>firefox answer:</p>
  
  <pre><code>v=0
  o=Mozilla-SIPUA-32.0.3 11426 0 IN IP4 127.0.0.1
  s=SIP Call
  t=0 0
  a=group:BUNDLE audio video
  a=msid-semantic: WMS janus
  m=audio 1 RTP/SAVPF 109 0 8 101
  a=mid:audio
  c=IN IP4 192.168.0.1
  a=sendrecv
  a=rtcp-mux
  a=ice-ufrag:BRBU
  a=ice-pwd:2W4fGNr//HejhiC4UIabW6
  a=ice-options:trickle
  a=fingerprint:sha-256 C5:5F:DA:7D:84:47:B1:BF:6B:55:16:62:48:31:3E:D3:F1:7B:25:89:92:4A:4B:4D:4D:D9:D5:AF:EA:D8:15:44
  a=setup:active
  a=connection:new
  a=rtpmap:109 opus/48000/2
  a=ptime:20
  a=rtpmap:0 PCMU/8000
  a=rtpmap:8 PCMA/8000
  a=rtpmap:101 telephone-event/8000
  a=fmtp:101 0-15
  a=ssrc:3725983979 cname:janusaudio
  a=ssrc:3725983979 msid:janus janusa0
  a=ssrc:3725983979 mslabel:janus
  a=ssrc:3725983979 label:janusa0
  a=candidate:1 1 udp 2013266431 192.168.0.1 56574 typ host
  m=video 1 RTP/SAVPF 120
  a=mid:video
  c=IN IP4 192.168.0.1
  a=sendrecv
  a=rtcp-mux
  a=ice-ufrag:jZ5b
  a=ice-pwd:dQQej9UIpPl5zuXBQNg3Nz
  a=ice-options:trickle
  a=fingerprint:sha-256 C5:5F:DA:7D:84:47:B1:BF:6B:55:16:62:48:31:3E:D3:F1:7B:25:89:92:4A:4B:4D:4D:D9:D5:AF:EA:D8:15:44
  a=setup:active
  a=connection:new
  a=rtpmap:120 VP8/90000
  a=rtcp-fb:120 nack
  a=rtcp-fb:120 nack pli
  a=rtcp-fb:120 ccm fir
  a=ssrc:1425382999 cname:janusvideo
  a=ssrc:1425382999 msid:janus janusv0
  a=ssrc:1425382999 mslabel:janus
  a=ssrc:1425382999 label:janusv0
  a=candidate:2 1 udp 2013266431 192.168.0.1 39063 typ host
  m=application 0 DTLS/SCTP 0
  c=IN IP4 192.168.0.1
  </code></pre>
  
  <p>UPDATE:
  i modified the sdp-answer so both firefox and chrome get nearly the same
  except for the "o=" and "s=" lines which i just copy from the sdp-offer
  <code>v=0
  o=- 7589782217972865757 2 IN IP4 127.0.0.1
  s=-
  t=0 0
  a=group:BUNDLE audio video
  a=msid-semantic: WMS janus
  m=audio 1 RTP/SAVPF 111
  a=mid:audio
  c=IN IP4 192.168.0.1
  a=sendrecv
  a=rtcp-mux
  a=ice-ufrag:g0kZ
  a=ice-pwd:d5oEody1jqIzDYUdf1fg6t
  a=ice-options:trickle
  a=fingerprint:sha-256 C5:5F:DA:7D:84:47:B1:BF:6B:55:16:62:48:31:3E:D3:F1:7B:25:89:92:4A:4B:4D:4D:D9:D5:AF:EA:D8:15:44
  a=setup:active
  a=connection:new
  a=rtpmap:111 opus/48000/2
  a=ssrc:1038736511 cname:janusaudio
  a=ssrc:1038736511 msid:janus janusa0
  a=ssrc:1038736511 mslabel:janus
  a=ssrc:1038736511 label:janusa0
  a=candidate:1 1 udp 2013266431 192.168.0.1 51232 typ host
  m=video 1 RTP/SAVPF 100
  a=mid:video
  c=IN IP4 192.168.0.1
  a=sendrecv
  a=rtcp-mux
  a=ice-ufrag:g0kZ
  a=ice-pwd:d5oEody1jqIzDYUdf1fg6t
  a=ice-options:trickle
  a=fingerprint:sha-256 C5:5F:DA:7D:84:47:B1:BF:6B:55:16:62:48:31:3E:D3:F1:7B:25:89:92:4A:4B:4D:4D:D9:D5:AF:EA:D8:15:44
  a=setup:active
  a=connection:new
  a=rtpmap:100 VP8/90000
  a=rtcp-fb:100 ccm fir
  a=rtcp-fb:100 nack
  a=rtcp-fb:100 nack pli
  a=rtcp-fb:100 goog-remb
  a=ssrc:2455978689 cname:janusvideo
  a=ssrc:2455978689 msid:janus janusv0
  a=ssrc:2455978689 mslabel:janus
  a=ssrc:2455978689 label:janusv0
  a=candidate:1 1 udp 2013266431 192.168.0.1 51232 typ host
  m=application 0 DTLS/SCTP 0
  c=IN IP4 192.168.0.1
  </code></p>