If you connect multiple webcams or microphones to the client, you can use one preferred webcam and one preferred microphone in a remote desktop with the Real-Time Audio-Video feature. To specify which webcam or microphone is preferred, users can configure options in the Settings menu or an administrator can edit a configuration file.

The preferred webcam or microphone is used on the remote desktop if it is available, and if not, all webcams and microphones are redirected.

With the Real-Time Audio-Video feature, webcams and audio input devices work without the use of USB redirection, and the amount of network bandwidth required is greatly reduced. Analog audio input devices are also supported.

Prerequisites

  • If you are configuring a preferred webcam, verify that the webcam is installed and operational on the client system.
  • If you are configuring a preferred microphone, verify that the microphone is installed and operational on the client system.
  • Verify that you are using the VMware Blast display protocol or the PCoIP display protocol for your remote desktop.

How the Preferred Webcam and Microphone Configuration Works

Horizon Client supports two different methods to configure the preferred webcam and microphone used for Real-Time Audio-Video: the Settings menu or the /etc/vmware/config configuration file. Here's how the configuration set by each method takes effect and syncs with the other configuration.

  • When a user changes the preferred webcam and microphone configuration in the Settings menu, the new configuration takes effect immediately. This configuration takes precedence over the existing configuration defined in /etc/vmware/config.
  • When an administrator changes the preferred webcam and microphone configuration in /etc/vmware/config, the new configuration takes effect only after the user starts Horizon Client or reconnects to the remote session. At this time, the configuration in the Settings menu syncs to reflect the new configuration in /etc/vmware/config.
  • To view the current webcam and microphone configuration, open the ~/.vmware/rtav-preferences file.

For instructions on how to set the preferred webcam and microphone configuration using either method, see the following sections.

Using the Settings Menu to Configure the Preferred Webcam and Microphone

  1. Start Horizon Client and connect to a server.
  2. Click the Settings button (gear icon) in the upper-right corner of the desktop and application selection window.
  3. Select Real-Time Audio-Video.
  4. Configure a preferred device.
    • To configure a preferred webcam, select a specific webcam from the Preferred Webcam drop-down menu.
    • To configure a preferred microphone, select a specific microphone from the Preferred Microphone drop-down menu. If you select Default, the default microphone configured in the client system settings is used.

    If you select a specific device, only the selected devices are redirected to the remote desktop.

    If you select All, redirection occurs as follows:

    • For the webcam, Horizon Client redirects all the devices that appear in the system's Video4Linux (V4L) device list.
    • For the microphone, Horizon Client redirects all the audio input devices attached to the client system.

Using /etc/vmware/config to Configure the Preferred Webcam and Microphone

To set the properties in the /etc/vmware/config file and specify a preferred device, you must determine the values of certain fields. You can search the log file for the values of these fields.

  • For webcams, you set the rtav.srcWCamId property to the value of the UserId field for the webcam and the rtav.srcWCamName property to the value of the Name field for the webcam.

    The rtav.srcWCamName property has a higher priority than the rtav.srcWCamId property. Both properties should specify the same webcam. If the properties specify different webcams, the webcam specified by rtav.srcWCamName is used, if it exists. If it does not exist, the webcam specified by rtav.srcWCamId is used. If both webcams are not found, the default webcam is used.

  • For audio input devices, you set the rtav.srcAudioInId property to the value of the Pulse Audio device.description field.
  1. Launch the client, and start a webcam or microphone application to trigger an enumeration of camera devices or audio devices to the client log.
    1. Attach the webcam or audio device you want to use.
    2. Use the command vmware-view to start Horizon Client.
    3. Start a call and then stop the call.

    This process creates a log file.

  2. Find log entries for the webcam or microphone.
    1. Open the debug log file with a text editor.

      The log file with real-time audio-video log messages is located at /tmp/vmware-<username>/vmware-RTAV-<pid>.log. The client log is located at /tmp/vmware-<username>/vmware-view-<pid>.log.

    2. Search the log file to find the log file entries that reference the attached webcams and microphones.
      • The following example shows an extract of the webcam selection:
        main| I120: RTAV: static void VideoInputBase::LogDevEnum() - 3 Device(s) found
        main| I120: RTAV: static void VideoInputBase::LogDevEnum() - Name=UVC Camera (046d:0819)   UserId=UVC Camera (046d:0819)#/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3.4/1-3.4.5   SystemId=/dev/video1
        main| I120: RTAV: static void VideoInputBase::LogDevEnum() - Name=gspca main driver   UserId=gspca main driver#/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3.4/1-3.4.7   SystemId=/dev/video2
        main| I120: RTAV: static void VideoInputBase::LogDevEnum() - Name=Microsoft® LifeCam HD-6000 for Notebooks   UserId=Microsoft® LifeCam HD-6000 for Notebooks#/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3.6   SystemId=/dev/video0
        main| W110: RTAV: static bool AudioCaptureLin::EnumCaptureDevices(MMDev::DeviceList&) - enumeration data unavailable
      • The following example shows an extract of the audio device selection, and the current audio level for each:
        vthread-18| I120: RTAV: bool AudioCaptureLin::TriggerEnumDevices() - Triggering enumeration
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioGetSourceCB(pa_context*, const pa_source_info*, int, void*) - PulseAudio Get Source (idx=1 'alsa_output.usb-Logitech_Logitech_USB_Headset-00-Headset.analog-stereo.monitor' 'Monitor of Logitech USB Headset Analog Stereo')
        
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioGetSourceCB(pa_context*, const pa_source_info*, int, void*) - channel:0 vol:65536
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioGetSourceCB(pa_context*, const pa_source_info*, int, void*) - channel:1 vol:65536
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioGetSourceCB(pa_context*, const pa_source_info*, int, void*) - PulseAudio Get Source (idx=2 'alsa_input.usb-Logitech_Logitech_USB_Headset-00-Headset.analog-mono' 'Logitech USB Headset Analog Mono')
        
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioGetSourceCB(pa_context*, const pa_source_info*, int, void*) - channel:0 vol:98304
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioGetSourceCB(pa_context*, const pa_source_info*, int, void*) - PulseAudio Get Source (idx=3 'alsa_output.usb-Microsoft_Microsoft_LifeChat_LX-6000-00-LX6000.analog-stereo.monitor' 'Monitor of Microsoft LifeChat LX-6000 Analog Stereo')
        
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioGetSourceCB(pa_context*, const pa_source_info*, int, void*) - channel:0 vol:65536
      • Warnings are shown if any of the source audio levels for the selected device do not meet the PulseAudio criteria if the source is not set to 100% (0 dB), or if the selected source device is muted, as follows:
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioSourceInfoCB(pa_context*, const pa_source_info*, int, void*) - Note, selected device channel volume: 0:  67%
        vthread-18| I120: RTAV: static void AudioCaptureLin::PulseAudioSourceInfoCB(pa_context*, const pa_source_info*, int, void*) - Note, selected device channel is muted
  3. Copy the description of the device and use it to set the appropriate property in the /etc/vmware/config file.
    • For a webcam example, copy Microsoft® LifeCam HD-6000 for Notebooks and Microsoft® LifeCam HD-6000 for Notebooks#/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3.6 to specify the Microsoft webcam as the preferred webcam and set the properties as follows:
      rtav.srcWCamName = “Microsoft® LifeCam HD-6000 for Notebooks”
      rtav.srcWCamId = “Microsoft® LifeCam HD-6000 for Notebooks#/sys/devices/pci0000:00/0000:00:1a.7/usb1/1-3/1-3.6”

      For this example, you could also set the rtav.srcWCamId property to "Microsoft". The rtav.srcWCamId property supports both partial and exact matches. The rtav.srcWCamName property supports only an exact match.

    • For an audio device example, copy Logitech USB Headset Analog Mono to specify the Logitech headset as the preferred audio device and set the property as follows:
      rtav.srcAudioInId="Logitech USB Headset Analog Mono"
  4. Save your changes and close the /etc/vmware/config configuration file.
  5. Log out from the desktop session and start a new session.

    The new configuration takes effect after you start the new session.