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.
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.

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.
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.

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:
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!

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.
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:
No 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.
- The 3D camera is available on Amazon UK for £65.
- You can also get it direct from the manufacturer for around $80.
Terence Eden says:
Ket says:
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.
Pascal Willem says:
Terence Eden says:
Francois says:
Lynne Grewe says:
@edent says:
Daniel says:
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 🙂
@edent says:
Daniel says:
Ubiq says:
@edent says:
That said, they present as two cameras attached to a USB hub - so I doubt it's anything sophisticated..
Ubiq says:
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?
Francois says:
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.