Fixing picture glitches and freezes on the Logitech BRIO 4K webcam in Windows

At the worst possible moment, my C920 developed a horizontal line of dead pixels. I’m due to run an online event this weekend and I can’t do that without a half-decent webcam. But, with the lockdown in full effect, it seems that everyone has scrambled to buy them, and they’re out of stock everywhere – including Logitech’s own store. The RMA process is likely to take weeks, and I don’t have the luxury of waiting that long. I managed to find a BRIO 4K Stream Edition in stock at a rather inflated price, but with next-day delivery, so I reluctantly bought it.

This webcam is not very good. Logitech have really pushed to get a 4K picture, at the expense of poor reliability and compatibility. It’s clearly a first attempt.

The first issue I ran into was a glitchy picture. I plugged it in and it seemed to work, albeit with very poor picture quality, so I went and bumped it up to 2160p30 and got a bunch of glitches all over the picture. The same happened with 1440p30 and 1080p60. Not a particularly auspicious start. Switching to a different port managed to alleviate some of the glitching, but then it would freeze up or crash every few minutes.

Most of the advice out there boils down to guessing. Try a different USB port! Try reinstalling the Logitech software! Use MJPEG encoding! This is not very helpful, because it doesn’t actually focus on evidence, it’s just people doing things without understanding why and hoping it works.

So here’s what you should do:

Use the cable that came with the camera. I tried others, including USB C-to-C cables, and got worse results.

Update the firmware. My camera came with version 1.1 installed, and 1.3.14 is the latest at time of writing. Logitech’s website is useless if you have a Stream Edition webcam, because it only shows BRIO as a product on the support page, and while you might think that’d work, it won’t. Go to the Logitech FTP server (thanks to this particular forum post for the link) and look for the latest file that starts with LogiBrioStreamFWUpdate. If you’ve just got a regular BRIO then you want the latest BRIOFWUpdate executable instead. Once you’ve got it, run it, and do the update. I found that mine failed half way through the first time around, which may be related to it not re-registering as a device quickly enough after the first part of the update. I just ran it again and it updated fine the second time.

Ensure that you’ve got it plugged into a suitable USB port. I found that the BRIO is incredibly picky about which port you use, and that faster ports aren’t necessarily the best option. Using a USB 3.1 port that’s provided by an onboard ASMedia controller is less likely to work than a USB 3.0 port that’s directly provided by the chipset (PCH).

The best tool I found for ensuring this is USBTreeView. If you run it you’ll be presented with a tree of USB devices. You’re looking for one titled “USB Composite Device – HIDAudio, Image”. If you click on it you’ll get a bunch of technical information about the device, and if you look for the bit that lists child devices you’ll see that it says “BRIO 4K Stream Edition”. The first thing you want to look at is which hub the device is connected to. If it’s an Intel or AMD controller (depending on whether you’re using an Intel or AMD platform) then you should be fine. If it’s an ASMedia you’re almost guaranteed to have problems. If you’re using the USB-C port on an nVidia or Radeon card then you might want to try the motherboard ports. Make sure you’ve got it plugged into a first-party (i.e. Intel/AMD) hub, and that the hub is listed as USB 3.0 or higher.

If you scroll a little further through the technical details you’ll find a section called “Connection Information V2”, and in there you’ll see some flags called Usb110, Usb220, and Usb300. These show whether the device is configured to speak these particular protocols. You want Usb300 to be 1. If it’s not, then you’re going to have problems. This is what happened when I tried to use an ASMedia USB 3.1 port – it just failed and only negotiated USB 2.x instead. A few guides out there tell you to look at the “bcdUSB” value in the Device Descriptor section of this information, but this is not useful here, because it only shows you what protocol version the device can speak, not what has been negotiated.

Once you’ve got to here, you should be good to go. If you’re using Streamlabs OBS you can use 1080p60 and higher, because it supports the newer capture API needed for those higher capture rates, unlike OBS Studio and other software that use DirectShow capture. Anecdotally, I think Streamlabs OBS does not require you to enable MJPEG encoding for the camera, as it either automatically enables it or uses NVENC instead.

Overall, this is a really awful user experience, particularly at a time when I’m on a deadline. I’m very unimpressed with this product from Logitech. Even more so, because I had to pay a rather hefty premium to get hold of one. Perhaps they should focus on better quality 1080p60 cameras rather than jumping the gun to 2160p30 to get that “4K” label on the box.