"Raw" source recording of USB/UVC/webcams

binba

New Member
Hi, I'm planning a workflow with 1 or more USB "webcam" sources, and in addition to the streaming, I want to locally record the highest available quality for possible later editing.
  1. Can you confirm there's no normal way in OBS to record the original video as it comes via USB? And normally you'd recompress and record the stream ("program out") with high-enough codec settings balancing CPU load etc.
    I understand how that would fit OBS' workflow since it's practically impossible to avoid recompression (decode/encode) in most workflows. But if you're really doing nothing to the video (like 1 source, no switching, no processing etc.) you should be able to avoid recompression. Most editing software behaves similarly in "same as source" mode, attempting to avoid recompression if you're really just copying frames in identical codec settings.
  2. Alternatively, have you tried running ffmpeg alongside OBS to "grab" the source (or sources) and record them in stream-copy mode? If it works it should actually be pretty darn efficient - almost no CPU cycles needed. You get the highest possible quality in the smallest possible file with lowest possible CPU load.

    Looks like so far users resorted to a workaround of recording a big multiview canvas, incurring a clunky workflow, recompression, and CPU penalty - this could solve all 3 problems. If your editing software doesn't like whatever codec settings the webcam was using, you could always transcode later.

  3. Would ffmpeg watching or talking to the USB camera interfere with OBS, though?


Specifically in my case, it started without OBS at all - but with the Blackmagic ATEM Mini Pro. It's meant to "compete" with OBS, but one severe limitation is its "offline" recording quality. If you use its single (uncompressed) HDMI "video out" for multiview you need to eke whatever quality you can from its USB-C output. At best it behaves as a UVC device (virtual webcam), so in such a workflow, ideally you'd take that data stream, record it "raw" locally, and compress it for streaming. Yes I know that in such a workflow OBS is acting as a GUI replacement for ffmpeg. :)
 

Tomasz Góral

Active Member
OBS is video mixer, who save output - not source.

If you need save source use more OBS instances.

Of course you can use ffmpeg to save source (need CPU/GPU time depending on the codec) and copy source to output on local port (ffmpeg can set more than one output, one for saving camera, second to copy source).
Editing software is lite diffrent 'same as source' most ofen refers to fps, bitrate or resolution, some software can copy unchanged part of source, but they work on encoded source. Signal from camera is not compressed, e.g. FullHD 50fps yuv420 is almost 3 Gb/s, after encode size goes down e.g. 5 Mb/s is huge different.
 
Top