Review: Svpro 3D Camera - for Android and Raspberry Pi


I've been sent a 3D camera addon to review - the Svpro SV-2560X3D-001 is a £65 stereo camera designed for Android. It will also work with a Raspberry Pi!

It looks a little like a Microsoft Kinect - a single bar with two embedded cameras. The camera resolution is 720p on each lens.

You can buy the camera from Amazon UK.

3D camera clipped to a phone, sat in a tripod

It clips on easily to a phone via a padded screw clamp. You need to install a dedicate 3D camera app in order to make it work. In the box you get the camera, two USB-OTG cables, a tripod and clamp, and a carrying pouch.

Let's take it for a spin!

Sample shots

Video

As you can see, the 3D effect is prominent.

Video quality is 2560x720. Framerate is variable depending on how fast your phone is. My Nexus 6 managed just 16fps, my S6 got to the slightly better 25fps.

Because the cameras are independent, their exposure and white balance aren't linked. This also means that occasionally one camera may drop a frame or exhibit tearing - while the other side remains unaffected.

The cameras work best in bright light. Too much motion and the JPEG encoding can't keep up. You can stream raw YUYV video off the device - but you need to either lower the framerate or resolution if you want the USB bandwidth to be sufficient.

Audio is aac, 44100 Hz, mono, fltp, 67 kb/s
You don't get stereo sound, which is a little bit of a disappointment. There are no microphones in the unit - audio comes from your phone's mic. I've removed the audio from the above videos

3D metadata isn't embedded - this is needed for sites like YouTube to recognise them as 3D videos.

TV Playback

I uploaded a sample video to YouTube - which has native 3D support. I was able to stream the video to my smart TV and watch it using 3D glasses.

A smart TV is playing a 3D video on YouTube

Photo

The Svpro app doesn't let you take photos! A bizarre omission. I cheated and used the phone's screenshot tool to capture these. Click for full size.

3D shot of Terence Eden

3D photo of a river

App

Android doesn't natively support external cameras - so you need to download the Svpro app. It's basic - you can record video and play video. That's it!

No photo capabilities, no resolution or quality settings, no framerate control, no video editing or upload to YouTube.

Worse, the app in the Google Play Store doesn't support Android 7.0 - you need to download it directly from http://www.svpro.cc/app/.

I found that the app would not keep the screen on while I was recording. You may need to adjust your phone's display settings if you want to keep the screen active.

On the positive side, it doesn't ask for crazy permissions - although you will need to grant it USB access.

Screenshot of an Android app asking for USB permissions

There are other apps on the play store which you can use, which show how good the Svpro app could be. For example, this is USB Dual Camera:
Screenshot of an Android app displaying two cameras and a host of options

That's not a perfect app, but it gives you an idea of the potential.

The Svpro app also seems quite slow - which sometimes leads to disappointing video results.

Raspberry Pi Linux support

Although this camera isn't advertised as working on Linux, it is a USB camera - and it works brilliantly!

Running lsusb gives us:

Bus 001 Device 004: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB
Bus 001 Device 005: ID 0ac8:9902 Z-Star Microelectronics Corp.
Bus 001 Device 006: ID 0ac8:9901 Z-Star Microelectronics Corp.

So this is a USB hub with two cameras attached to it! It shows up as /dev/video0 and /dev/video1 - and both cameras work perfectly!

Screenshot of Ubuntu showing left and right images from 3D camera

It supports YUV 4:2:2 (YUYV) and MJPG for video capture and, pleasingly, each camera is 1280*720 native. No interpolation!

The Raspberry Pi website has a quick tutorial on capturing images.

You can capture the MJPG directly from the camera. This is the quickest and most efficient way to get 25fps video out of the device - although the filesize is rather large (5MB per second).

avconv -f video4linux2 -input_format mjpeg -i /dev/video0 -t 00:00:05 -c:v copy output.mkv

That will only capture from one of the twin cameras. How do we get both? Here's a lazy way to capture dual USB cameras simultaneously.

avconv -f video4linux2 -input_format mjpeg -i /dev/video0 -t 00:00:05 -c:v copy outputL.mkv & avconv -f video4linux2 -input_format mjpeg -i /dev/video1 -t 00:00:05 -c:v copy outputR.mkv

That worked on my Pi 2 Model B - I'll write a blog post soon explaining other ways to do this.

Technology

At the start of the decade, my mate Ket was building his own 3D cameras. Literally two cameras wired together and mounted next to each other.

Some self-build 3D cameras.

It's incredible to think how quickly technology has progressed. For £65 you get a lightweight (50g) and tiny (92mm * 20mm * 20mm) camera pairing. The distance between the cameras is almost identical to the distance between my pupils. The view angle on each lens is 100°. Perfect for stereoscopic viewing.

But pushing all that video over a USB cable is tough. A more practical design may be to place the video processing within the unit - rather than relying on the USB bandwidth and phone speed being sufficient.

Downsides

There are a few little niggles with the Svpro.

  • For phones, it is Android only. At the moment the USB OTG functionality only works with Android. So you iPhone users are out of luck.
  • Dedicated Android app needed. An app like this needs to be polished, professional, and a joy to use. It isn't.
  • 720p is fine for a cheap camera - and matches the resolution of most 3D displays - but a bigger resolution would be welcome.
  • Framerate should be higher - although this is partially a limitation of the speed of the USB transfer and of your phone.
  • No binaural sound. Audio is recorded from your phone's microphone, so there's no stereo effect.

Those are minor problems. The only other issue I found was that on some devices, it would capture BGR video - the red and blue channels swapped around. Which gave this weird effect:
Screenshot of a video with weird inverted coloursNo idea why - I reported it to Svpro and they're looking into it.

To correct it using Linux requires ffmpeg's filter colorchannelmixer

ffmpeg -i in.mp4 -vf colorchannelmixer=rr=0:rb=1:br=1:bb=0 -acodec copy out.mp4

Recording from the Pi didn't exhibit these problems.

Buy it

If you want to get started with a 3D VR Camera - for playback on a Google Cardboard or other VR headset - this is a pretty good device. The app is basic, but the video quality is satisfactory if your phone is fast enough. The 3D effect is perfect. It's also a handy way to add stereo-vision to a Raspberry Pi robotics project.

15 thoughts on “Review: Svpro 3D Camera - for Android and Raspberry Pi

  1. I keep thinking about making my own dashcam with a Raspberry Pi, USB camera and a battery pack... Now I'm thinking with a 3D camera...Damn you! Would like to know what sort of power usage the setup would need.

    1. Oooh! Good plan! It said 1.2W on the box. It was running quite happily on a 2A charger, but I wasn't doing anything in the background.

  2. Nice review of the kit and affordable at £65! My camera kits all used a fork of the CHDK (Canon Hack Development Kit) called Stereo Data Maker. It was specifically designed to sync internal clocks between multiple cameras via USB, it unlocked some amazing camera features. Allowing for time lapse, motion detection.

    I love the the Raspberry Pi setup, that might be something i'd try out. I'm currently heading out on holiday with my FujiFIlm W3 - which has a micro HDMI output and stores images and videos as .mpo (side-by-side JPGs) The still camera quality is good, but video resolution and light sensitivity isn't that great. Playback / viewing on a 3DTV direct from the camera works really well. I also have a 3D auto-stereoscopic android tablet - pretty insane, the problem always seems to boil down to the software in these cases though. It is really awkward to use, but the results are stunning. Nice to see the kit get cheaper.

  3. So if you use the " dual USB camera" app this thing let's you take snapshots,if i understand correctly ? I'm not interested in video ,just still photo.

      1. It's not clear when you say that "it let you take photos" if you mean specifically with the SVPro camera. Are you saying that you can use the "USB Twin Cam" app on your phone to take still pictures using specifically the SVPro or using two separate USB cameras ?

  4. I would like to use the camera to get image frames of the side-by-side stereo pair that I could then process in my OWN Android app and use for processing in my app. I have tried to contact the company but, no response --do you know if they publish their Android App to figure out how to capture frames on the input USB. Do you have any knowledge of this?

  5. Hello,

    Could you tell me if this camera is sensitive to IR light? I'd like to be able to use it in no or low-light situations with an IR puck. One example would be to connect it to my android phone, start the app, touch the screen to hide the icons on the right, then stick it in a VR headset and walk around at night with the camera and IR light...sort of like a 3d night vision headset 🙂

      1. Thanks for the quick reply! Maybe I can just use some green LEDs or another color that isn’t bright white:). Not quite what I was hoping for but most modern cameras have an IR filter now.

  6. Nice post, Terrence. Do you know if the two cameras are hardware-synced when used on the Raspberry Pi?

    1. Not quite sure how I would test if cameras are hardware synced. Could you explain?
      That said, they present as two cameras attached to a USB hub - so I doubt it's anything sophisticated..

      1. Hardware-synced cameras will be be triggered using a common clock (crystal oscillator or such). That's the only way to ensure they won't drift apart eventually, little by little. So basically you'd loose stereoscopy at some point, possibly quite soon after the recording has started.

        I think it's possible they are still synced if they show up as two cameras. I guess no way of knowing for sure. I wrote the manufacturer but no reply so far. I think that one way to test this would be to record a video of a stopwatch (ideally one with millisecond precision) and see if the eyes get out of sync after a while. The longer the video the higher the chance of sync issues to show up. What do you think?

  7. I came across this device on a Kickstarter campaign a few years ago and although the concept is good, I immediately noticed a number of glaring problems with it. First is the fact that it does not have auto white balance. It is balanced only for daylight, which means that any interior shots have a yellow or green cast. The next problem is lack of sync between left and right cameras. I looked at recent SVPro sample clips and the problem is still there. In other words, they are not hardware synched. Incidentally, the same goes for the UCVR, the TwoEyes VR and the LucidCam. Watching clips made with these cameras results in eyestrain because the left and right streams are not in perfect sync.

    It's also quite a stretch to call this a "VR" camera. It's a 3D camera with wide angle lenses but they do not cover a wide enough field to be labelled "VR". A true VR camera must cover at least 180 degrees.

    As for "progress", I don't see how this is in any way better than what your friend Ket was using seven years ago. SDM is still the best way to sync two or more cameras (SDM can sync up to 60 cameras...) And one can buy used Canon compacts for as little as 10 pounds a piece that will produce better IQ than this does and offer much more versatility in terms of features. Sure, it's a fun gadget and easy to put in a pocket. However, in terms of versatility, it can't be compared to something like SDM.

Leave a Reply

Your email address will not be published. Required fields are marked *