JSFiddle - React, Tailwind, and code Playground

HTML

<button id="button">Open Video Stream</button>
<video id="video"></video>

JavaScript

let cameras;

const reliable_function = async () => {
	const stream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: "environment" }});
  const video = document.querySelector("#video");
  video.srcObject = stream;
  video.onloadedmetadata = function(e) {
    video.play();
  }
}

const unreliable_function = async () => {
	await navigator.mediaDevices.getUserMedia({ video: true });
  const devices = await navigator.mediaDevices.enumerateDevices();
  cameras = devices.filter(device => device.kind == "videoinput");
  console.log(cameras);
	// CHANGE DEPENDING ON YOUR REAR CAMERA INDEX IN THE `cameras` array 
  const rear_camera_idx = 3;
	const stream = await navigator.mediaDevices.getUserMedia({ video: { deviceId: { exact: cameras[rear_camera_idx].deviceId }}});
  const video = document.querySelector("#video");
  video.srcObject = stream;
  video.onloadedmetadata = function(e) {
    video.play();
  }
}

document.querySelector("#button").addEventListener("click", async () => {
  // await reliable_function();
  await unreliable_function();
})