"4K" Capture Device Limited to 960x540?

AaronD

Active Member
I have this, which takes live HDMI from a Canon Vixia HF R300 camcorder and connects to a USB 3 port:
IMG_20221210_115039644_HDR.jpg

...but the highest it goes in OBS is 960x540:
Screenshot_20221210_194636.png

Meanwhile, the camcorder says it's outputting 1920x1080 interlaced, as shown in the video preview.

How to get Full HD out of this? Or did I buy a dishonest product?

Ubuntu Studio 22.04 LTS, fully updated
OBS 28.1.2
 

AaronD

Active Member
I finally got around to playing with it some more. Updated OBS to v29.0.0 in the meantime.

Tried the camera again, same thing. Tried it with a PC source instead, 1920x1080!

Okay, so it's probably not the capture card. I wonder if it's getting confused with the interlacing? 1920x1080i is 540 lines per frame instead of 1080, so I wonder if it's just picking up on that? It's a proper-size frame, not the 1920x540 that is actually on the wire, so *something* must understand what interlacing means.

So I also wonder what I'm actually getting? De-interlaced 1920x1080, while the reported list is wrong? Or 960x540 like the list says, with horizontal pairs of pixels combined? (or every other one dropped?) I can also bump the frame rate up to 60fps, while the camera does 30, so maybe it *is* incorrectly treating each field as a separate frame.

At any rate, the capture card is probably fine, and I might need to look for a camera that does legitimate 1920x1080p30.
 

Tomasz Góral

Active Member
Is good, cheaper card that works.
Send progressive signal.
Because this card working as MJPEG accepts only progressive signals, other signal must be converted like interlaced. As you see from 1080i rescale to 960x540.
 

AaronD

Active Member
Is good, cheaper card that works.
Send progressive signal.
Because this card working as MJPEG accepts only progressive signals, other signal must be converted like interlaced. As you see from 1080i rescale to 960x540.
Good to know that about MJPEG, but I still would have expected a de-interlacer before that, that outputs the correct frame size, so that 1920x1080i becomes 1920x1080p, and *then* it's compressed:
HDMI in/thru -> de-interlace -> MJPEG -> USB

But I guess it doesn't do that. Do you happen to know of one that does? (doesn't have to be MJPEG, just something that OBS likes)

Or I can keep shopping for a camera too, that outputs 1920x1080p directly. Either way looks like it can work.
 

Tomasz Góral

Active Member
Use any grabber with USB3.0 and uncompressed signal.
Your device don't have true USB3.0.

I use Quad HDMI PCIE card, Avermedia GC553, GC311.
 

AaronD

Active Member
Your device don't have true USB3.0.
Really?! It has the pins for it, looking into the connector, but I guess that doesn't necessarily mean much.

Use any grabber with USB3.0 and uncompressed signal.

I use Quad HDMI PCIE card, Avermedia GC553, GC311.
So I guess I AM shopping again. Thanks for pointing that out.

I got this one because it was cheap and promised well, but I guess we know about getting what you pay for. Brands aside, what specs and general pricing should I look for?

This is a laptop, so PCIe isn't particularly suitable. Though I *am* toying with the idea of making a more permanent media rig with a dedicated computer, in which case it would. I'll have to think about that some more. Thanks!

Does your Quad HDMI card actually have 4 converters on it? So you can transition nicely between different inputs on the same card? The security market also has multiple-input HDMI capture cards, but they only have a single converter and a quick-and-dirty switch to feed it. The official app makes it look like it has multiple streams, but it only ever shows and records one at a time. And those search results are completely mixed in with the media-production ones that do have multiple converters.
It would sure be nice, if I'm getting an internal capture card anyway, to have multiple converters on it, but I need to make sure that that's actually true!
 

Tomasz Góral

Active Member
My card is BlackMagic DeckLink Quad HDMI, 4 independent input 4k 60 fps.
For laptops i suggest Sonnet Echo Express with Thunderbolt interface (ofcourse your laptops must have Thunderbolt 3 or 4).
I got 2x GC553, 3x GC311 (but last don't have uncompressed signal, only h.264 or MJPEG).
 

AaronD

Active Member
My card is BlackMagic DeckLink Quad HDMI, 4 independent input 4k 60 fps.
For laptops i suggest Sonnet Echo Express with Thunderbolt interface (ofcourse your laptops must have Thunderbolt 3 or 4).
I got 2x GC553, 3x GC311 (but last don't have uncompressed signal, only h.264 or MJPEG).
That's...some sticker shock! I really didn't have in mind for the video inputs alone to cost $100+ per channel! I'm sure there are cheaper things, not name brand, that are indistinguishable in every way, but of course the cheaper you go the more of a gamble it is...as shown above in this thread.

This laptop doesn't have Thunderbolt. Only USB3, a combined eSATA/USB2 port, the other standard connections for a laptop, and a dock on the bottom. The dock has USB 2 ports, the old DB9 serial and DB25 parallel ports, 2x PS/2, some more video outs, ethernet, basic analog audio, and another eSATA/USB2 that I have a mouse in.

So I'm pretty well stuck with USB3 capture cards, unless I build a dedicated rig, and then I can use the PCIe one. Thanks again for the pointers!
 

AaronD

Active Member
My card is BlackMagic DeckLink Quad HDMI, 4 independent input 4k 60 fps.
For laptops i suggest Sonnet Echo Express with Thunderbolt interface (ofcourse your laptops must have Thunderbolt 3 or 4).
I got 2x GC553, 3x GC311 (but last don't have uncompressed signal, only h.264 or MJPEG).
Based on that, I got 2 cards:
  • Decklink Duo 2, which has 4 BNC's for SDI, to replace 4 cheap HDMI -> USB captures that are fed from SDI -> HDMI converters in a desktop rig.
    • https://www.amazon.com/dp/B01EKGTZ8C
    • Ended up sending it back to Amazon because the user interface was practically unusable and I couldn't get it to work. Always a black screen in both OBS and their official app.
    • Support couldn't figure it out either, and said along the way that it's supposed to be backwards compatible with a previous Decklink Duo that was less configurable than this updated version, and inherited the UI from that. So the UI is somewhat understandable now, but that doesn't really excuse it.
  • AverMedia GC553, to replace the one in the original post here, for my laptop.
    • https://www.amazon.com/dp/B07DHV47HF
    • Plugged into my camera, which then says it's negotiated 1920x1080i (interlaced) with 2ch audio, but OBS couldn't get a picture there either. RGB color space was always black, and all the other modes were green. (receiving all 0's regardless, and that's how the color spaces work???)
    • Feeding it from the computer worked, which is 1920x1080p60 (progressive).
    • Put it back on the camera, still nothing, and then ran the passthrough to a DVI monitor via an adapter cord. (HDMI is backwards-compatible with DVI, so the cord is just wires directly from one pin to another) Then it worked! The monitor had funky colors, but OBS had it right, which is what I care about.
      • Unplugged the monitor from the passthrough, and OBS still has it. Played with the settings some more, and found that only the YUYV 4:2:2 color space would produce a picture at all, and the others were still solid green or black as before.
      • Also, selecting any different resolution from what's on the wire results in the solid color again (apparently not a scaler, and neither is OBS's input logic), so I'll probably just leave it as Unchanged.
      • Audio works too, from the camera mic through the GC553.
      • According to lsusb -t, it enumerates at 5000M, so it really is USB 3. Not a USB 2 chip behind a USB 3 connector like my original one is.
Seems odd to me that it needed the passthrough monitor to "boost" it into working, but it's not all that hard to incorporate a temporary signal switch into my workflow. I just happen to have a 4-in/1-out HDMI switch handy. Others might not be so lucky.

Maybe something needed the monitor's ID to get started, and then it works blindly until power-off??? Anyway, it looks like I have something that works...at least on my laptop. Still working on the desktop rig with SDI.



For anyone who might be following along, my laptop is:

Bash:
aaron@aaron-ubuntustudio-m6800:~$ uname -a
Linux aaron-ubuntustudio-m6800 5.15.0-60-lowlatency #66-Ubuntu SMP PREEMPT Tue Jan 24 14:26:16 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
aaron@aaron-ubuntustudio-m6800:~$
1676491143229.png

The desktop is much newer (and slightly better) hardware, but currently stuck on Lubuntu 20.04 because anything newer doesn't like the 4 identical USB capture cards. Once I get a decent 4-input card, I want it to be Ubuntu Studio 22.04 also. (probably installed from scratch, not an upgrade in-place)
 

Tomasz Góral

Active Member
Decklink duo, new version can send (monitor) and receive (record) signal, in setup card your select mode of work.
Camera typicaly send only yuv422 via hdmi. Canon R300 is old camera, maybe you can change resolution to lower on hdmi output, sometimes you must change recording mode.
 

AaronD

Active Member
Decklink duo, new version can send (monitor) and receive (record) signal, in setup card your select mode of work.
It's supposed to, yes.
By the time Support and I were done trying stuff and I had a few days to think about it, I'm pretty sure I did have the settings right, the UI is terrible, and I probably got a dud card.

Camera typicaly send only yuv422 via hdmi. Canon R300 is old camera, maybe you can change resolution to lower on hdmi output, sometimes you must change recording mode.
Another interesting point is that the monitor displays correctly when it's the only thing hooked up to the camera, but heavily magenta when it's running through the new AverMedia capture. But OBS using that capture with yuv422, is right. So I think the camera probably auto-selects which color space to use, and the monitor simply assumes RGB and displays accordingly.
It's not really a problem, because the camera has its own monitor built-in, and I normally drive the HDMI monitor from the computer anyway. Only for testing, or to satisfy an ID check, does it see the camera.

One of the reasons I got the AverMedia, in addition to the USB speed that you mentioned and the corresponding picture quality, was to deinterlace correctly and actually get a real 1920x1080 picture from the camera, which is its maximum resolution. It may be old, but it still works really well for what I do with it...except for the interlacing. Recording mode is as high-quality as I can get, because my SD cards are still big enough, and I use the recording for post-production. HDMI, of course, is for live and live-to-tape, both in OBS.
 

AaronD

Active Member
Do you have another camera?
To exclude the failure of the hdmi socket.
No I don't, but I don't think it's a failure either. It's just a quirk of how things work.

I think the camera sees the capture card first, figures out that it wants YUV color, and outputs that on purpose. Meanwhile the computer monitor only understands RGB, and the mismatch produces either magenta or green, depending on which direction the conversion should have happened but didn't.

As I don't need that monitor for the camera, except for its ID to get things working in the first place, it's really not a problem that needs to be fixed. The camera has its own built-in monitor that works just fine, and OBS understands the color space correctly. No more problems to be solved.

Except for not getting started in the first place I guess, but the workaround for that is not very much.
 

Tomasz Góral

Active Member
I don't think that, YUV color is for TV (is first choice for HDMI), video card build surface rgb or yuv. If you choice bad, reserved memory create wrong space and color be wrong. if you use yuv422 as planar surface (3 plans first Y and U and V), RGB is build little R G B R G B etc.
But Motion JPEG as source surface use yuv422 (but of course you can set to RGB).
 

AaronD

Active Member
Finally following up! After a few more tries, I ended up with an Elgato Cam Link 4K:
And I see that the price has gone up since then. :-(

It works perfectly! Except that it takes a setting change in that source to get the latency down from about 1 sec when OBS starts, to almost instant. Put the setting back, and it's still good. And I get a full-size frame at a decent frame rate.

I can live with the setting change, considering what it took to get to this point, but it'd still be nice to eliminate that step too, either by automating that change or by OBS "just working" on its own. I'll have to see if the Advanced Scene Switcher plugin can do the setting change as part of the Init macro that I already have.
 
Top