Question / Help Mono Camera Support? Directshow (ZWO ASI120MM)

Greetings,

I am setting up a remote observatory for live streaming solar video to YouTube. I'm trying to get this camera (ZWO ASI120MM) to work with OBS, but I don't think the directshow options in OBS are able to properly detect and initialize the camera. It is a standard CMOS webcam sensor MT9M034 in an astronomy package. The manufacturer includes directshow drivers to use as a standard webcam. I have other software that properly reads from the camera as a directshow device using colorspace "mono8". The OBS log file states that the configuration fails and doesn't seem to give any details other than "could not get closest video media type". I'm guessing it is the colorspace hanging things up.

Here is the manufacturer's site with links to their drivers and the SDK if the devs can work something out as far as determining the problem (feel free to say, "I don't know what you are smokin', but we don't have time for this shit!"):

http://astronomy-imaging-camera.com/software/


OBS Log:

https://gist.github.com/b58401095c160f280657

Key log info:

DShow: Could not get closest video media type
23:15:05.218: ZWO Solar DirectShow: Video configuration failed

Any help would be appreciated.

Thanks,
fullmetalratchet
 

ecke101

New Member
Hi, I have the same problem in OBS Studio 32/64bit with my DV camera using firewire, but not in OBS Classic. Any ideas?

18:03:04.413: DShow: Could not get closest video media type
18:03:04.414: Video Capture Device: Video configuration failed
 
I probed my camera with ffmpeg to see what it's capabilities are. Turns out it outputs RGB8 raw as the only option (my raw capture program reports it as mono8). I am guessing OBS is balking at this input. I am looking at using ffmpeg to process and pass the stream to OBS. Hopefully that or something similar will work. I might peek at the OBS source.

Maybe it is as simple as adding a media source using the built in inputs, but I can't find any documentation for the lines "input" and "input format".
 
Ok, after more poking around with ffmpeg. It appears the "input" and "input_format" are standard interface descriptors. If I use "ASI120MM Camera (ZWO Design)" and "RGB8" which are what my camera is reported as, I get no video, but there is a display box outline that is roughly 1280x960 coming from somewhere (this is the native res of the camera). I know typically with ffmpeg you call your input and set parameters such as -s 1280x720 -framerate 15 -vcodec rawvideo -pix_fmt rgb8, but there is nowhere in OBS to do this that I can see.

I can use ffmpeg directly from the command line to output a stream to youtube from my camera by specifiying the above input and using -vcodec h264 -pix_fmt yuv420p -f flv -vf gray, etc on the output..., but not OBS, although I think it is trying to do something based on a proper sized red box appearing. OBS would make my life easier. Even ffmpeg doesn't handle a mono stream from a raw rgb8 source correctly, it is blue-ish and noisey unless I use the video filter command to make it grey. If I output rawvideo to avi it looks fine. I'm guessing the math on yuv is messing things up by trying to debayer a non-bayered sensor.

At least I'm learning stuff. I'll keep posting as I figure things out so at least there is an archive for the poor bastard in the future with my problems.
 
Thanks for the link, interesting topic which taught me some things that will be useful in the future.

I just want to remind anyone reading that the camera I am using is monochrome (no bayer) and outputs raw RGB8 in directshow. Typically this camera is used with custom software for imaging that controls the camera directly (non-dshow) and properly decodes the raw stream to mono8. The program can generate a raw stream to save as a monochrome AVI.

So one of my problems is RGB8 is not supported by OBS. The other problem is ffmpeg input functions in OBS do not appear to be fully operational. The final problem is monochrome data encoded in dshow to RGB8 causing false color using ffmpeg. I'm checking the camera SDK for other options that ffmpeg can interpret properly. I am not a good programmer, lol, but have taken a few introductory courses. It is slow going.

Suslik V, I have tried using the screen capture function and it works to produce a stream, but the quality is somewhat low, I assume from conversions of 1280x960 data to -> 1366x768 (monitor) -> scaled 75% -> screen capture. After conversion to 1280x720 and streaming compression the resulting image is less than stellar (pun intended).

Example of screen capture method (soft image):
https://youtu.be/447aL-lRHGI?t=14m4s

Here is a modified Microsoft Lifecam running directly from OBS (noisy and bloomy, which is why we want the astronomy camera running):
https://www.youtube.com/watch?v=XDF0COPpyz4
 

Suslik V

Active Member
What driver you are using: SI120MM Mono USB2.0 Camera Driver, ASI120MC Color USB2.0 Camera Driver ? (From the page you posted above).

Also, you need to try x64 system. Maybe RGB8 to RGB24 convertion completed only in x64win camera drivers. And then OBS studio will accept it.
 
I'm using the ASI120MM Mono USB 2.0 driver. The problem with their 64 bit driver is that it doesn't support directshow (per the manufacturer).
 
In the meantime, I just bought this: http://www.amazon.com/ELP-Megapixel-Illumination-Camera-Support/dp/B00SOR75FE/ref=sr_1_7?s=photo&ie=UTF8&qid=1457223876&sr=1-7&keywords=ar0130

It is the same sensor used in the color version of my camera (Aptina/Onsemi AR0130). It outputs YUY2 (422) format and MJPEG. It works with OBS and is sensitive with a pretty clean image. I don't think it has dedicated hardware gain, but for solar imaging it should work ok with no gain. I wouldn't try to image Saturn though because the exposure time would start dragging the framerate down.

I just designed the front enclosure and have it on the 3d printer while I begin designing the rear enclosure. I'll get back to the mono camera in a few days when I have more time to spare.

Thanks for the help!
 

Suslik V

Active Member
OK. I'm simply saw the '.ax' file in 'dx_x64' folder of the mentioned usb driver (when unpack it). It has RGB8 and RGB24 strings.
 
Top