Incorrect video image from Logitech C910 camera

Steps causing the bug to occur

  1. Add “Make Video Input” and write “Logitech Camera” in the (Name) data type.
  2. Add “Receive Live Video” node
  3. Add “Render Image to Window” node
  4. Connect them up.
  5. Run Composition

How did the result differ from what you expected?

The image is purple and blue and not at all what the image should look like. See attached The BLue and Purple image is from inside Vuo and the image where you can see the phone is a Quicktime X Window with the live camera feed, it’s also correct when opened in Quicktime 7.6.6

When did you first notice this bug?

Each time I connect the Logitech C910 camera in Vuo 0.9.0.

Have you found a workaround?

No.

Other notes

  • Vuo version: 0.9.0
  • macOS version: OS X 10.9

Camera Test.vuo (1.75 KB)

Vuo and Logitech C910 image.jpg

Thanks for testing, @cwilms-loyalist. I’ve added some extra camera debugging info (via Console.app) to the upcoming release. In about a week we should have a Vuo 1.0.0 alpha build ready — when that’s ready, could you connect up your C910 and report back?

Sure I’ll let you know how the new build works with the C910.

Also I just realized it’s detecting an odd resolution that doesn’t match the camera output. Where does it get this information? Is there a way to specify what the Device camera settings should be? You can also see that the blue image isn’t just blue but is scrambled as well and only shows a portion of the area that the coloured image shows, I imagine that’s all part of the wrong resolution being detected.

Hi! I had same problem with my Logitech web cam (I do not know the model…).
I run Vuo 1.1. with mac book air 2013.

BTW THe Logitech C910 works properly now, the C920 still has some issues. A current work around for the C920 is to launch QuickTimeX and select File>New Movie Recording and change the selected camera to your Logitech model (if it’s not already selected). This forces the camera to report it correct image info to VUO and it display properly. Hope this helps with your situation.

The same problem exists with FaceTime HD camera on MacBookAir6,2 on version 1.1.1. If i remember correctly there was no such bug in 1.1.0…

Teo — and Susi, if you’re using something other than Logitech C920 — would you mind trying something to give us more information about the problem?

  1. In Terminal, run defaults write org.vuo.Editor debug -boolean true. This enables debug mode for Vuo.
  2. Run a composition using the camera you’re having trouble with, such as File > Open Example > vuo.video > Show Camera.
  3. Copy the output from Console and paste it in a reply here.
  4. In Terminal, run defaults delete org.vuo.Editor debug to disable debug mode.

This is my console output from a Microsoft LifeCam Cinema. Output video through Vuo is green and magenta, through QT it’s normal.

VuoQtListener.m:78  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelBufferPixelFormatTypeKey  : (null)
VuoQtListener.m:79  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatName                : (null)
VuoQtListener.m:80  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatConstant            : 846624121
VuoQtListener.m:81  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatCodecType           : (null)
VuoQtListener.m:82  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatFourCC              : (null)
VuoQtListener.m:83  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatBitsPerBlock        : 32
VuoQtListener.m:84  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatOpenGLFormat        : GL_YCBCR_422_APPLE
VuoQtListener.m:85  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatOpenGLInternalFormat: GL_RGB
VuoQtListener.m:86  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatOpenGLType          : (unknown: 85ba)
VuoQtListener.m:87  -[VuoQtListener initWithDevice:id:callback:]  kCVPixelFormatOpenGLCompatibility : 1
VuoQtListener.m:340  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelBufferPixelFormatTypeKey  : (null)
VuoQtListener.m:341  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatName                : (null)
VuoQtListener.m:342  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatConstant            : 846624121
VuoQtListener.m:343  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatCodecType           : (null)
VuoQtListener.m:344  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatFourCC              : (null)
VuoQtListener.m:345  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatBitsPerBlock        : 32
VuoQtListener.m:346  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatOpenGLFormat        : GL_YCBCR_422_APPLE
VuoQtListener.m:347  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatOpenGLInternalFormat: GL_RGB
VuoQtListener.m:348  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatOpenGLType          : (unknown: 85ba)
VuoQtListener.m:349  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  kCVPixelFormatOpenGLCompatibility : 1
VuoQtListener.m:351  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  --------------------------
VuoQtListener.m:376  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  ColorSpace: kCGColorSpaceModelRGB
VuoQtListener.m:397  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  encodedSize: 1280x800
VuoQtListener.m:400  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  displaySize: 1280x800
VuoQtListener.m:403  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  cleanRect:   1280x800 @ 0,0
VuoQtListener.m:416  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  Frame [yuvs] 1280x800 flipped=1 bpr=2560 ds=2048032 (planar=0 planes=0 0x0 bpr=2560)
VuoQtListener.m:418  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  bytes per block: 2
VuoQtListener.m:431  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  extraColumnsOnLeft: 0 extraColumnsOnRight: 0 extraRowsOnTop: 0 extraRowsOnBottom: 0
VuoQtListener.m:443  -[VuoQtListener captureOutput:didOutputVideoFrame:withSampleBuffer:fromConnection:]  CIImage Size: 1280.000000, 800.000000  

Thanks, @cwilms-loyalist, @susi, @dumski, and @martinusmagneson! We believe these camera issues have been fixed in Vuo 1.2.0, so I’m tentatively marking this resolved.

I still get extremely low frame rates using the exact same composition from my Logitech C920 however my C910 works like a dream. Any idea why this would be?

@cwilms-loyalist, possible workaround: Launch QuickTime Player, open a movie recording window, select the C920 and select “maximum quality”, then run the Vuo composition. On the system we tested on, the framerate went from 10 fps to 24 fps. Does it work for you?

Looks like QuickTime Player is using some special secret code that Apple hasn’t made public to set the quality, so unfortunately there doesn’t appear to be an easy way we could fix this in Vuo.

ok, that’s still the work around then. I’ll continue to do that. I get similar results to you with the frame rate more than doubling when changed in QuickTime Player.

I just found this.

The Logitech C920 only provides 30fps at 1080p with applications that supports H.264 directly, and can pull in the H.264 stream directly from the camera. The C920 does on-board H.264 compression, but most applications don’t support pulling the compressed stream straight from the camera; instead, they have to decompress then re-compress the stream, dropping the framerate.

Does that sound right? Does VUO support H.264 camera streams?

That’s probably what QuickTime Player is doing internally to speed up the framerate, that is not made available to 3rd-party developers. (As far as we have been able to find. If anyone knows otherwise, please chime in.)