VMware Horizon

Real-Time Audio-Video (RTAV) for Horizon View, Part 3

By Peter Brown, Senior R&D Manager, VMware

For information about what’s new with Horizon Real-Time Audio-Video, read this 2023 blog.

In my first Real-Time Audio-Video (RTAV) blog post, I introduced RTAV for Horizon View virtual desktops and discussed configuration primarily on the Windows platform. Then, in my second RTAV blog post, I talked about the added support for RTAV on Linux View Clients in Horizon View Client version 2.2. The new View Client version 2.3 has just been released, and I am excited to announce that we now also support RTAV on the Mac OS X View Client! I want to take this opportunity to provide some details about RTAV with respect to OS X and how it can be installed, used, and configured.

Mac OS X Support for RTAV

In Mac OS X View Client version 2.3 and later, we now support RTAV (that is, webcams and audio-in). RTAV is supported on OS X 10.8.0 and later (Mountain Lion and Mavericks). For earlier versions of OS X, RTAV functionality is not enabled with the new View Client.

RTAV only works when using the PCoIP display protocol (not with HTML Access or RDP sessions to Horizon View virtual desktops).

On the guest desktop, you can continue to use one of the following:

Once the View Client has been installed, provided you have the View Remote Experience Agent installed on the guest desktop, RTAV should just work. No configuration should be necessary, and webcams and/or audio-in devices will work with RTAV.

As is the case with Windows and Linux View Clients, the defaults are configured as followed:

  • RTAV is enabled by default (provided you have a compatible View Client and Agent with a feature pack)
  • Video resolution of 320×240 pixels, 15fps
  • Default audio-in system device
  • Automatic webcam selection

You can override any of the default settings.

Note that you should NOT forward the webcam or audio devices into the guest desktop using USB redirection. If you forward these devices, they will not be available for use with RTAV.

Audio Device Selection

The audio-in device can be selected from System Preferences > Sound on the Mac. The Input tab shows all available audio-in devices.

MicScreenShot

If you want to select a new audio-in device, select it from the list of available devices. Note that if you change the input device, you will need to disconnect from the Horizon View desktop session and reconnect before your changes take effect with RTAV.

To reduce background noise, it is suggested that you select the Use ambient noise reduction option, especially if using the internal microphone.

Mac OS X RTAV Configuration

The RTAV defaults on OS X are the same as on Windows. Images are captured from a video device (which is automatically selected) at 320×240 pixels, 15fps. Audio is captured from the default system audio in the device.

If you want to change these defaults, you can do so via the Mac defaults command line using the Mac terminal window. The domain for RTAV is com.vmware.rtav.

In the Mac terminal window, set a new configuration value as follows:

defaults write com.vmware.rtav <keyname> <value>

Valid key names are:

Key Name

Comment

 

IsDisabled

Set to 1 or 0. Defaults to RTAV being enabled (0).

 

srcWCamFrameWidth

 

Required image width in pixels. Defaults to 320.

srcWCamFrameHeight

 

Required image height in pixels. Defaults to 240.

srcWCamFrameRate

 

Defaults to 15fps. Valid options are 1 to 25.

srcWCamId

See Selecting a Specific Preferred Webcam if you don’t want to use the auto-selected webcam device.

srcAudioInId

Preferred audio device if you don’t want to use the default system audio-in device.

As an example, if you wanted to set the default resolution to 640×480 pixels (rather than 320×240), then configure this as follows:

defaults write com.vmware.rtav srcWCamFrameWidth 640
defaults write com.vmware.rtav srcWCamFrameHeight 480

(Remember that the maximum image size and frame rate you set on the Mac can be restricted by administrative policies applied to the guest desktop—see my first RTAV blog post for further details.)

To display the current manual configurations, type the following:

 

defaults read com.vmware.rtav

Note: This will display only information for keys that you have manually configured.

As an example, the following screenshot shows the required image width and height being set to 640×480 pixels, and then reading out the values using the defaults read command. The current resolution is shown as set to 640×480 pixels, with a default webcam source of Logitech.

LogScreenShot

To delete a configuration value previously committed, type:

defaults delete com.vmware.rtav <keyname>


If you do change any configuration value, you should disconnect and then reconnect to the desktop session for the changes to take effect.

Log Files

The client side RTAV log file is generated for each desktop session. Its file name is created based on the Process ID (PID) of the client program that initiated the session. Logs can be found in:

~/Library/Logs/VMware/vmware-RTAV-12345.log               
   (where 12345 is the PID of the current session)


These log files are useful if you need to configure a preferred webcam or audio-in device, as in the following section.

Selecting a Specific Preferred Webcam

It is expected that most people will use the integrated camera in Mac computers. However, it may be necessary to use external webcams in some instances. You can configure settings to select a specific webcam that is different from the one that is automatically selected.

RTAV will always try to select a webcam for use. RTAV will use an internal camera if available. If only an external camera is available, RTAV will automatically use that one. You need to configure a preferred webcam if you have both an internal and external camera connected, and you want to ensure RTAV always uses one of them rather than the other.

To do this:

1. Ensure the camera you wish to use is connected to the Mac computer and launch a Horizon View session into a guest desktop where RTAV is enable.

2. Disconnect from the session.

3. Look in the RTAV log file (see Log Files section) and find the following text:

VideoInputBase::LogDevEnum


You should see something that looks like this:

RTAV: static void VideoInputBase::LogDevEnum() - 2 Device(s) found
RTAV: static void VideoInputBase::LogDevEnum() - Name=FaceTime HD Camera
(Built-in)   UserId=FaceTime HD Camera (Built-in)#0xfa20000005ac8509
RTAV: static void VideoInputBase::LogDevEnum() - Name=HD Pro Webcam C920
UserId=HD Pro Webcam C920#0xfd11000034fd082d


4. Find the UserId value for the webcam you prefer. In the previous example, let’s say the HD Pro Webcam C920 is my preferred device. You can configure this with a “partial match” by typing a value of HD, HD Pro Webcam, C920, or the full UserId value HD Pro Webcam C920#0xfd11000034fd082d.

       Configure as follows, using one of the matches for the webcam:

defaults write com.vmware.rtav srcWCamId "HD Pro Webcam"

When you next connect to a Horizon View desktop, this webcam will be used for an RTAV session, provided it is connected to the client machine. If the webcam is not available, then RTAV will select another available video device.

If you wish to select a preferred audio-in device that is different from the one that is selected in Sound System Preferences, you can do this in a similar way. You will see similar audio device enumeration information in the log file (search for AudioCaptureBase::LogDevEnum), select the preferred audio-in device in a similar way, and configure it with:

defaults write com.vmware.rtav srcAudioInId "MyAudioDevice"

Guest Virtual Machine RTAV Test Application

We occasionally hear that customers are not sure if the RTAV is configured and working correctly on their system. If problems do occur, this is often due to thethird-party application that is running on the guest desktop. A good way to validate that RTAV is fully functional is to use a small, standalone app that my team created. It can be downloaded from here: Real-Time Audio-Video Test Application.

Simply copy the application onto the guest desktop and launch it. If RTAV is working, you should see video (and hear audio if you select the AudioIn – Loopback option). More details are available in this blog post: Real-Time Audio-Video Test Application for Horizon View Released As a VMware Fling. The app can also be used on a Windows View Client machine to validate that any connected webcams are working correctly on the physical system, in addition to validating that RTAV is working correctly on the guest desktop.

Conclusion

RTAV is now supported on Mac OS X in addition to Windows and Linux as part of the latest View Client 2.3 release! This blog talked through basic operation of RTAV, along with details about how to customize the RTAV experience by changing video resolutions or selecting alternative preferred webcams or audio devices. A simple RTAV test application was also discussed, which allows simple verification that the RTAV functionality is working correctly. With simple configuration, the addition of RTAV to OS X is sure to enhance the end-user experience of Horizon View Clients.

The View Clients are available for download here.

The Feature Packs can be downloaded here:

The RTAV Test Application can be downloaded here.

I hope you enjoy RTAV on Mac OS X!