When chrome 94 pixel streaming crash in ue 4.26

I Know chrome update to 94
I know unreal update to 4.27
but we have so many project use 4.26
do we have some soultion?
can some body help?

Error message
Failed to parse answer’s SDP

//to line 382 of “PixelStreaming\SignallingWebServer\scripts\app.js”

webRtcPlayerObj.onWebRtcOffer = function (offer) {
   if (ws && ws.readyState === WS_OPEN_STATE) {

         //add this line
  	removeExtmapAllowMixed(offer);
  	let offerStr = JSON.stringify(offer);
  	console.log(`-> SS: offer:\n${offerStr}`);
  	ws.send(offerStr);
  }
};

//add fun

function removeExtmapAllowMixed(desc) {
  /* remove a=extmap-allow-mixed for webrtc.org < M71 */
  if (!window.RTCPeerConnection) {
      return;
   }
  if(desc.sdp.indexOf(’\na=extmap-allow-mixed’) !== -1){
  const sdp = desc.sdp.split(’\n’).filter((line) => {
  return line.trim() !== ‘a=extmap-allow-mixed’;
  }).join(’\n’);
  desc.sdp = sdp;
  return sdp;
}
1 Like

thanks a lot
谢谢大哥

Didn’t work for me, not sure what i should do! any other solution please?

I saw your solution and tried it, but it didn’t. Another solution was to use Opera and it worked since it uses the older version. At the same time i had upgraded my project to 4.27, it worked on all browsers however the custom html buttons and functionality doesn’t work at all. I wonder if you have any idea how to fix it.
Posted the question here:

This code works, however with some adjustments:

//to line 382 of “PixelStreaming\SignallingWebServer\scripts\app.js”

webRtcPlayerObj.onWebRtcOffer = function (offer) {
	if (ws && ws.readyState === WS_OPEN_STATE) {
		offer = removeExtmapAllowMixed(offer); //add this line
		let offerStr = JSON.stringify(offer);
		console.log(`-> SS: offer:\n${offerStr}`);
		ws.send(offerStr);
	}
};

//add removeExtmapAllowMixed function

function removeExtmapAllowMixed(desc) {
	/* remove a=extmap-allow-mixed for webrtc.org < M71 */
	if (!window.RTCPeerConnection) {
		return;
	}
	if(desc.sdp.indexOf("\na=extmap-allow-mixed") !== -1) {
		const sdp = desc.sdp.split("\n").filter((line) => {
			return line.trim() !== "a=extmap-allow-mixed";
		}).join("\n");
		desc.sdp = sdp;
	}
	return desc;
}

未来之幸 solution worked for me with this code

//to line 382 of “PixelStreaming\SignallingWebServer\scripts\app.js”

webRtcPlayerObj.onWebRtcOffer = function (offer) {
	if (ws && ws.readyState === WS_OPEN_STATE) {
		offer = removeExtmapAllowMixed(offer); //add this line
		let offerStr = JSON.stringify(offer);
		console.log(`-> SS: offer:\n${offerStr}`);
		ws.send(offerStr);
	}
};

//add removeExtmapAllowMixed function

function removeExtmapAllowMixed(desc) {
	/* remove a=extmap-allow-mixed for webrtc.org < M71 */
	if (!window.RTCPeerConnection) {
		return;
	}
	if(desc.sdp.indexOf("\na=extmap-allow-mixed") !== -1) {
		const sdp = desc.sdp.split("\n").filter((line) => {
			return line.trim() !== "a=extmap-allow-mixed";
		}).join("\n");
		desc.sdp = sdp;
	}
	return desc;
}
1 Like

To be precise when i add the above the player doesn’t even show up! only the html buttons.

this works form me