Poor video quality from camera on old system

jfb

New Member
I have a rather old desktop that I have re-purposed for use with OBS to record video from a camera plus audio from another source (digital piano via USB). But the video quality is rather bad. I have plenty of room lights. I bumped the bit rate (from 2500 to 3000) which help some. Further bit rate increases don't seem to help. Top is already reporting that CPU% for OBS a bit over 80% when recording. I have been trying to use 1920x1080p, 30FPS. The result (after a bit of editing) will be uploaded to Youtube.

Any suggestions for improving things?

Current Video settings
  • Video encoder: FFmpeg VAPPI HEVC
  • VAAPI device: Lexa Pro [Radeon 540/530x/550/550x / RX 540X/550/550X]
  • Profile: Main
  • Level Auto
  • Rate Control: CBR (I tried CQP as well, no obvious difference)
  • Bitrate: 3000 Kbps (also tried 4000, & 5000, no improvement that I saw)
Camera settings
  • Device: Brio 500
  • Video format: Motion-JPEG
  • Resolution: 1920x1080
  • Frame Rate: 30
System info
  • Linux Mint 22 (Cinnamon desktop env)
  • Intel Core i7 860 @ 2.80GHz
  • Radeon RX 550
  • Logitech Brio 500 1920x1080p
  • OBS Project 30.2.3, from flatpak
 

AaronD

Active Member
My first guess is that your system just isn't enough. 80% CPU *might* be okay if the graph is dead flat and you know it always will be, but there's not a lot of headroom there for unexpected spikes.

Producing video is much more demanding than consuming it. The standards are made that way on purpose, because there are far more consuming devices and they need to be cheap and stupid. So the producing side does the vast majority of the work, to allow the consuming side to use some pretty low-effort decoding algorithms and still work well in terms of quality per bitrate.
So media encoding has become somewhat similar to programming, except that the cleverness and choice of optimization tricks is done automatically, instead of by a human, live in real-time if there are any live sources or destinations.

The machine that you're using for the producing side just can't keep up with "the vast majority of the work", to produce GB of what is more like optimized computer code than a set of pixels.
 

AaronD

Active Member
Also don't use flatpak, or any other container for OBS. Install it natively instead.

Containers are made for security. They're sandboxes. Few things get in, few things get out, and they emulate and duplicate a lot to guarantee function and take a performance hit in the process. That's all fine for self-contained apps that don't need much connection to anything else and don't need much performance, but video encoding is a constant demanding task and video production requires a lot of system resources. Not really compatible with a sandbox container.

You can make it function, but by the time you jump through all the hoops to piecemeal remove a major purpose of the container just to make it work at all, you're left with pretty much the worst of both worlds.

Don't use OBS in a container. Don't use the flatpak, snap, or any other non-native version. Always install OBS natively.

If you're really concerned/paranoid about privacy/security, have a dedicated machine for OBS that you consider to be perpetually compromised. Don't put anything on that physical machine that you don't want to the world to see, because media production in general tends to be a giant billboard, just by nature.
 
Top