Why is the resolution shown lower than what the camera manufacturer advertises?
Because the constraint passed to getUserMedia is only a request; the browser negotiates with the hardware and with any other application currently using the camera, and the final value, revealed by getSettings(), can land below the theoretical maximum printed on the product box.
Does the test work if I have more than one camera connected to my computer?
Yes: the browser offers a device picker right inside its own permission interface, and the chosen track exposes its specific deviceId through getSettings(), which allows switching cameras without reloading the page if the site implements that option.
Why does an error appear when I open this page outside HTTPS?
Because getUserMedia requires a secure context, meaning HTTPS or localhost; an address on plain HTTP on the local network, for example, has the call blocked by the browser itself before any permission prompt can appear.
Does frame rate drop along with resolution too?
It can drop independently: cameras often lower frameRate automatically in dark environments to lengthen the exposure time of each frame, even while the negotiated resolution stays the same one requested by the original constraint.