What do you need help with?

Displaying Video from an external HMDI/DVI source on ODG Glasses


Video data can be displayed in the glasses, transmitted over USB or IP (WiFi or Ethernet).  The lower latency approach is to use UVC protocol over USB, mainly because data sent over IP over WiFi requires a video encode/decode; UVC can be uncompressed.  

Over USB:

One way we've found is to use a HMDI/DVI to USB Adapter, and a ODG battery pack for plugging in the adapter.  We've successfully used this adapter:


and played video using this Android App:


This works on both R-6 and R-7.  Looks like this:


Update for 4K Inogeni and Marshmallow:

The 4K HDMI / USB 3.0 Inogeni unit does work fine with the latest firmware in the Inogeni unit. I updated the firmware in the 4K Inogeni unit to v6.21 (latest as of Sept 2017). There's a tool you need to download to your development host, depending on your OS, called the INOGENI Updater App; see this software update page.

It looks like you may need a newer version of CameraFi to run on the Marshmallow OS release (ReticleOS 4.1.14). See this article to know which OS you have: what-version-of-ReticleOS-software-I-m-running?

ReticleOS 4.x, use the -2 apk that is attached.
ReticleOS 3.5.x, use the -1 apk that is attached.

When you start the App up the first time after a reboot, and plug in the USB from the Inogeni into the Power Hub, you will need to swipe thru a couple of screens (left to right on the -1 apk, top to bottom on the -2 apk) and you have to flip into selector mode to do that, and then when you get to the last page, there's a UI button to click to begin; you need to go back into cursor mode to do that. Once you've done all that, you'll get a prompt to "Allow the app CameraFi to access the USB device". There's also a check box "use by default for this USB device". Check that and click ok.

Note - on the -2 version of CameraFi, when it asks you if you want to update, hit cancel; the update doesn't appear to work, and causes the App to exit.


Over IP:

If transmitting video streams over IP, usually protocols like H.263 or H.264 are used (these have hardware based codecs on the platform).  There are many Android Apps that can play video from a standard stream.  VLC is the one we've used the most often. The latency for this approach is usually > 1/2 second, and can but up to 2-3 seconds depending on the size of the configured jitter buffer in the player.

If you want to remotely display content from a computer monitor, instead of using an HDMI to network or WiFi adapter (these exist, and convert to video over IP, as mentioned above), it makes more sense to use software on the Host computer to capture the frames and transmit them over the network directly. VNC is an open source App that does this. Windows OS supports this natively, and you can get an RDP client that runs on Android to view and control the Windows computer. Or, if you are just interested in viewing content from a computer monitor, there's iDisplay.

 iDisplay -  It's from this company: http://www.shape.ag/en/
It lets you map a virtual extended display from your host (works on Mac and Windows) to a mobile device.  It's up on our ODG AppCenter: https://appcenter.osterhoutgroup.com/#/app/com.idisplay.virtualscreen/details (It's $15.99 per device, a lot less than the hardware solution).



How you measure latency depends on what your video source is.  To give an example for the USB approach, using a Laptop as a video source with a stopwatch app running on it, an HDMI to USB converter, connected to the glasses, we measured ~ 220 - 250 milliseconds delay from the Laptop display to the glasses display. We estimate that the latency of the HDMI out of the laptop is ~ 80-100 milliseconds, and that the HDMI to USB converter, USB and UVC conversion and display in the glasses is ~ 140 milliseconds.  This was 720p 60 fps video.  

Although we've seen worse latency on various IP method, note that iDisplay is very fast. Using the same approach, on a Mac host, we measured about 5-6 frames delay at 60 fps, which amounts to about 85-110 milliseconds delay from what is being displayed on the host to when it is visible on the R-7. This was with both the host and R-7 on the same WiFi Access Point, and subnet.



3D, Audio :

The Application that plays the video can be made to display both 2D and stereoscopic 3D video.  We think that most folks who have this use case are going to want to build their own player; the ones we've looked at don't currently natively support S3D.  Also note that the audio stream is accessible as well (the Inogeni adapter shows up as 2 USB devices - a camera and an audio source), but again, we have not found a off-the-shell player that plays audio with the video. [If you know of one, let us know!].

Have more questions? Submit a request


  • Avatar

    You didn't describe how to connect the INOGENI to the power hub. I have all the equipment you described in my lab but the INOGENI does not power up from the battery pack while it works perfectly when connected to a laptop. Any ideas?

Powered by Zendesk