<div dir="ltr">I can't get Chrome to understand or render h264 content sent by another chrome peer. Honestly I have no idea where the problem is. Here's the scenario:<div>* chrome (87) produces an offer with h264 video, sendonly, and connects to one instance of webrtcbin</div><div>* A second remote peer connects to a second instance of webrtcbin. In this case, webrtcbin produces the offer. I connect video content received from webrtcbin1 to webrtcbin2, by repayloading (webrtcbin1 > rtph264depay > rtph264pay > webrtcbin2). Webrtcbin produces an offer with h264 video. The second chrome peer  responds with an answer, accepting the offer.</div><div>* The second chrome peer fires the ontrack event for the new video stream, but it doesn't actually understand the video. I've attached the stream to a video element, but it doesn't render. Furthermore, chrome://webrtc-internals reports "unknown" for the codec and the decoderImplementation. </div><div><br></div><div>Now, to narrow things down, on the server side I have tried taking the stream received from webrtcbin1 and rendering it onscreen (rtp624depay ! avdec_h264 ! videoconvert ! videoscale ! autovideosink) and it renders just fine, proving that at the least the rtp is decoded properly and the h264 decode process produces good video. Thus - the chrome provided video must be correct.<br></div><div><br></div><div>I've also tried inserting an h264parse element between the depay and payload elements, and that had no effect. </div><div><br></div><div>I have *also* tried depayloading, decoding, re-encoding, and re-payloading, and that works just fine. Remote side understands the stream. </div><div><br></div><div>For the record, I'm using the following code to make chrome provide h264:</div><div><br></div><div>const video_transceiver = peer.addTransceiver('video', {"direction": "sendonly"})<br>const capabilities = RTCRtpSender.getCapabilities('video')<br>const noVP8 = capabilities.codecs<br>    .filter(codec => codec.mimeType.toLocaleLowerCase() != "video/vp8")<br>    .filter(codec => codec.mimeType.toLocaleLowerCase() != "video/vp9");<br>video_transceiver.setCodecPreferences(noVP8);<br></div><div><br></div><div>Does anyone have any insight?</div></div>