Citrix Virtual Apps and Desktops makes VDI intuitive and affordable and ensures that users have access to the apps they need to remain productive within today’s digital workspaces. Alongside Citrix Workspace, it can ensure the best possible VDI experience within the context of complex multi-device, multi-app workflows. Citrix Virtual Apps and Desktops (formerly known as XenApp and XenDesktop) provides AV optimization for Teams on VDI. With Citrix Virtual Apps and Desktops, Teams on VDI supports calling and meeting functionality in addition to chat and collaboration. A VDI desktop is a desktop running on a server in the datacenter that a user can access from virtually any device. To use VDI with Citrix, you need to purchase Citrix Virtual Apps and Desktop (formerly Citrix XenDesktop).
This article describes the requirements and limitations for using Microsoft Teams in a virtualized environment.
Virtual Desktop Infrastructure (VDI) is virtualization technology that hosts a desktop operating system and applications on a centralized server in a data center. This enables a fully personalized desktop experience to users with a fully secured and compliant centralized source.
Microsoft Teams in a virtualized environment supports chat and collaboration. And with the Windows Virtual Desktop, Citrix, and VMware platforms, calling and meeting functionality is also supported.
Teams in a virtualized environment supports multiple configurations. These include VDI, dedicated, shared, persistent, and non-persistent modes. Features are in continuous development and are added on a regular basis, and functionality will expand in the coming months and years.
Using Teams in a virtualized environment might be somewhat different from using Teams in a non-virtualized environment. For example, some advanced features might not be available in a virtualized environment, and video resolution might differ.
To ensure an optimal user experience, follow the guidance in this article.
Note
For details about Teams VDI on different platforms, see Teams features by platform.
Using Teams in a virtualized environment requires the following components.
The Teams desktop app was validated with leading virtualization solution providers. With multiple market providers, we recommend that you consult your virtualization solution provider to ensure that you meet the minimum requirements.
Currently, Teams on VDI with audio/video (AV) optimization is certified with Windows Virtual Desktop, Citrix, and VMware. Review the information in this section to ensure that you meet all requirements for proper functionality.
The following platforms have virtual desktop infrastructure solutions for Teams.
Platform | Solution |
---|---|
Windows Virtual Desktop | |
Citrix Virtual Apps and Desktops | |
VMware Horizon |
Windows Virtual Desktop provides AV optimization for Teams on VDI. To learn more and requirements and installation, see Use Teams on Windows Virtual Desktop.
Citrix Virtual Apps and Desktops (formerly known as XenApp and XenDesktop) provides AV optimization for Teams on VDI. With Citrix Virtual Apps and Desktops, Teams on VDI supports calling and meeting functionality in addition to chat and collaboration.
You can download the latest version of Citrix Virtual Apps and Desktops at the Citrix downloads site. (You'll need to sign in first.) The necessary components are bundled into the Citrix Workspace app (CWA) and Virtual Delivery Agent (VDA) by default. You don't need to install any additional components or plugins on CWA or the VDA.
For the latest server and client requirements, see this Citrix website.
VMware Horizon is a modern platform for secure delivery of virtual desktops and apps across the hybrid cloud. To offer a great end-user experience, VMware Horizon provides media optimization for Teams. This optimization improves overall productivity across virtual desktops and apps, and enhances user experience when calling and meeting using Teams.
You can download the latest version of VMware Horizon from the VMware Downloads page. The required media optimization components are part of the Horizon Agent and Horizon Client by default and there's no need to install any additional plug-in to use the optimization feature for Teams.
To get the latest requirements and instructions on how to configure media optimization for Teams, see this VMware website.
You can deploy the Teams desktop app for VDI using a per-machine installation or per-user installation using the MSI package. Deciding on which approach to use depends on whether you use a persistent or non-persistent setup and the associated functionality needs of your organization.
For a dedicated persistent setup, either approach would work. However, for a non-persistent setup, Teams requires a per-machine installation in order to work efficiently. See the Non-persistent setup section.
With per-machine installation, automatic updates is disabled. This means that to update the Teams app, you must uninstall the current version to update to a newer version. With per-user installation, automatic updates is enabled. For most VDI deployments, we recommend you deploy Teams using per-machine installation.
To update to the latest Teams version, start with the uninstall procedure followed by latest Teams version deployment.
For Teams AV optimization in VDI environments to work properly, the thin client endpoint must have access to the internet. If internet access isn't available at the thin client endpoint, optimization startup won't be successful. This means that the user is in a non-optimized media state.
In a dedicated persistent setup, users' local operating system changes are retained after users log off. For persistent setup, Teams supports both per-user and per-machine installation.
The following is the recommended minimum VM configuration.
Parameter | Workstation operating system | Server operating system |
---|---|---|
vCPU | 2 cores | 4,6, or 8 It's important to understand the underlying non-uniform memory access (NUMA) configuration and configure your VMs accordingly. |
RAM | 4 GB | 512 to 1024 MB per user |
Storage | 8 GB | 40 to 60 GB |
In a non-persistent setup, users' local operating system changes are not retained after users log off. Such setups are commonly shared multi-user sessions. VM configuration varies based on the number of users and available physical box resources.
For a non-persistent setup, the Teams desktop app must be installed per-machine to the golden image. (To learn more, see the Install or update the Teams desktop app on VDI section.) This ensures an efficient launch of the Teams app during a user session.
Using Teams in a non-persistent setup also requires a profile-caching manager, for efficient Teams runtime data synchronization. Efficient data synchronization ensures that the appropriate user-specific information (such as a user's data, profile, or settings) is cached during the user's session. Make sure data in these two folders are synched:
Note
A roaming folder (or, if you are using folder redirection, a caching manager) is required to ensure that the Teams app has the runtime data and files required to run the application. This is necessary to mitigate network latency issues or network glitches, which would otherwise cause application errors and a slow experience due to unavailable data and files.
There are a variety of caching manager solutions available. For example, FSLogix. Consult your caching manager provider for specific configuration instructions.
Exclude the following from the Teams caching folder, %appdata%/Microsoft/Teams. Excluding these items helps reduce the user caching size to further optimize your non-persistent setup.
Consider the following when you deploy Teams with Microsoft 365 Apps for enterprise on VDI.
Before you deploy Teams through Microsoft 365 Apps for enterprise, you must first uninstall any pre-existing Teams apps if they were deployed using per-machine installation.
Teams through Microsoft 365 Apps for enterprise is installed per-user. To learn more, see the Install or update the Teams desktop app on VDI section.
Teams is also being added to existing installations of Microsoft 365 Apps for enterprise. Since Microsoft 365 Apps for enterprise installs Teams per-user only, see the Install or update the Teams desktop app on VDI section.
Microsoft 365 Apps for enterprise doesn't support per-machine installations of Teams. To use per-machine installation, you must exclude Teams from Microsoft 365 Apps for enterprise. See the Deploy the Teams desktop app to the VM and How to exclude Teams deployment through Microsoft 365 Apps for enterprise sections.
To learn more about Teams and Microsoft 365 Apps for enterprise, see How to exclude Teams from new installations of Microsoft 365 Apps for enterprise and Use Group Policy to control the installation of Teams.
Download the Teams MSI package that matches your VDI VM operating system using one of the following links:
Note
For government clouds, see Install Microsoft Teams using Microsoft Endpoint Configuration Manager for the download links to the MSI files.
The minimum version of the Teams desktop app that's required is version 1.3.00.4461. (PSTN hold isn't supported in earlier versions.)
Install the MSI to the VDI VM by running one of the following commands:
Per-user installation (default)
This process is the default installation, which installs Teams to the %AppData% user folder. At this point, the golden image setup is complete. Teams won't work properly with per-user installation on a non-persistent setup.
Per-machine installation
This process installs Teams to the Program Files (x86) folder on a 64-bit operating system and to the Program Files folder on a 32-bit operating system. At this point, the golden image setup is complete. Installing Teams per-machine is required for non-persistent setups.
The next interactive logon session starts Teams and asks for credentials.
Note
These examples also use the ALLUSERS=1 parameter. When you set this parameter, Teams Machine-Wide Installer appears in Programs and Features in Control Panel and in Apps & features in Windows Settings for all users of the computer. All users can then uninstall Teams if they have admin credentials.It's important to understand the difference between ALLUSERS=1 and ALLUSER=1. The ALLUSERS=1 parameter can be used in non-VDI and VDI environments, while the ALLUSER=1 parameter is used only in VDI environments to specify a per-machine installation.
Uninstall the MSI from the VDI VM. There are two ways to uninstall Teams.
PowerShell script: You can use this PowerShell script to uninstall Teams and remove the Teams folder for a user. Run the script for each user profile in which Teams was installed on the computer.
Command line: Run the following command.
This process uninstalls Teams from the Program Files (x86) folder or Program Files folder, depending on the operating system environment.
There are a variety of virtualized setup configurations, each with a different focus for optimization. For example, a configuration might focus on user density. When planning, consider the following to help optimize your setup based on your organization's workload needs.
In addition to chat and collaboration, Teams on VDI with calling and meetings is available with supported virtualization provider platforms. Supported features are based on the WebRTC media stack and virtualization provider implementation. The following diagram provides an overview of the architecture.
Important
If you currently run Teams without AV optimization in VDI and you use features that are not supported yet for optimization (such as Give and take control when app sharing), you have to set virtualization provider policies to turn off Teams redirection. This means that Teams media sessions won't be optimized. For steps on how to set policies to turn off Teams redirection, contact your virtualization provider.
We recommend that you evaluate your environment to identify any risks and requirements that can influence your overall cloud voice and video deployment. Use the Skype for Business Network Assessment Tool to test whether your network is ready for Teams.
To learn more about how to prepare your network for Teams, see Prepare your organization's network for Teams.
If you're migrating from Skype for Business on VDI to Teams on VDI, besides the differences between the two applications, there are some differences when VDI is also implemented. Some capabilities that aren't currently supported in Teams VDI that are in Skype for Business VDI are as follows:
Teams on Chrome browser doesn't provide a replacement for the Teams desktop app for VDI with AV optimization. The chat and collaboration experience works as expected. When media is needed, there are some experiences that might not meet user expectations on the Chrome browser:
If your organization wants to only use chat and collaboration features in Teams, you can set user-level policies to turn off calling and meeting functionality in Teams.
You can set policies by using the Microsoft Teams admin center or PowerShell. It might take some time (a few hours) for the policy changes to propagate. If you don't see changes for a given account immediately, try again in a few hours.
Calling polices: Teams includes the built-in DisallowCalling calling policy, in which all calling features are turned off. Assign the DisallowCalling policy to all users in your organization who use Teams in a virtualized environment.
Meeting policies: Teams includes the built-in AllOff meeting policy, in which all meeting features are turned off. Assign the AllOff policy to all users in your organization who use Teams in a virtualized environment.
To assign the DisallowCalling calling policy and the AllOff meeting policy to a user:
To assign a policy to multiple users at a time:
Or, you can also do the following:
The following example shows how to use the Grant-CsTeamsCallingPolicy to assign the DisallowCalling calling policy to a user.
To learn more about using PowerShell to manage calling policies, see Set-CsTeamsCallingPolicy.
The following example shows how to use the Grant-CsTeamsMeetingPolicy to assign the AllOff meeting policy to a user.
To learn more about using PowerShell to manage meeting policies, see Set-CsTeamsMeetingPolicy.
If you have an existing implementation of Teams on VDI with chat and collaboration in which you had set user-level policies to turn off calling and meeting functionality, and you're migrating to Teams with AV optimization, you must set policies to turn on calling and meeting functionality for those Teams on VDI users.
You can use the Microsoft Teams admin center or PowerShell to set and assign calling and meeting policies to your users. It can take some time (a few hours) for policy changes to propagate. If you don't see changes for a given account immediately, try again after a few hours.
Calling polices: Calling policies in Teams control which calling features are available to users. Teams includes the built-in AllowCalling calling policy, in which all calling features are turned on. To turn on all calling features, assign the AllowCalling policy. Or, create a custom calling policy to turn on the calling features that you want and assign it to users.
Meeting policies: Meeting policies in Teams control the types of meetings that users can create and the features that are available to meeting participants that are scheduled by users in your organization. Teams includes the built-in AllOn meeting policy, in which all meeting features are turned on. To turn on all meeting features, assign the AllOn policy. Or, create a custom meeting policy to turn on the meeting features that you want and assign it users.
To assign the AllowCalling calling policy and the AllOn meeting policy to a user:
To assign a policy to multiple users at a time:
Or, you can also do the following:
The following example shows how to use the Grant-CsTeamsCallingPolicy to assign the AllowCalling calling policy to a user.
To learn more about using PowerShell to manage calling policies, see Set-CsTeamsCallingPolicy.
The following example shows how to use the Grant-CsTeamsMeetingPolicy to assign the AllOn meeting policy to a user.
To learn more about using PowerShell to manage meeting policies, see Set-CsTeamsMeetingPolicy.
When users connect from an unsupported endpoint, the users are in fallback mode, in which AV isn't optimized. You can disable or enable fallback mode by setting one of the following registry DWORD values:
To disable fallback mode, set the value to 1. To enable audio only, set the value to 2. If the value isn't present or is set to 0 (zero), fallback mode is enabled.
This feature is available in Teams version 1.3.00.13565 and later.
The following calling and meeting features are not supported:
Note
We're working on adding calling and meeting features that are currently only available in non-VDI environments. These might include more admin control over quality, additional screen sharing scenarios, and advanced features recently added to Teams. Contact your Teams representative to learn more about upcoming features.
The following are known issues and limitations for calling and meetings:
For Teams known issues that aren't related to VDI, see Support Teams in your organization.
This is a known issue with Citrix VDA versions 1906 and 1909. To work around this issue, add the following registry DWORD value, and set it to 204 (hexadecimal).
HKEY_LOCAL_MACHINESOFTWARECitrixCtxHookAppInit_DllsSfrHookTeams.exe
Then, restart VDA. To learn more, see this Citrix support article, Troubleshooting HDX optimization for Teams.
Webcams can be used by applications running within the Citrix Virtual Apps and Desktops session either by HDX RealTime Webcam Video Compression or by using HDX Generic USB Redirection technology. Users can choose between the two based on their specific requirements. HDX RealTime Webcam Video Compression is generally recommended since it offers superior bandwidth efficiency.
Important Note: Webcam Video Compression is a feature implemented both in CWA and VDA. Hence, the version combination is critical to determine the resultant set of supported features.
Only the following Citrix Receiver / Workspace app OS and versions support optimized Webcam Video Compression:
Platform | Version | Comments |
Workspace app for Windows | Any | Both 32 and 64-bit apps in the VDA as long as the VDA is 7.17 or higher, otherwise only 32-bit |
Receiver for Windows | 4.9 (any CU) | Only 32-bit apps in the VDA |
Workspace app for MAC | Any | Both 32 and 64-bit apps in the VDA as long as the CWA is 2006 or higher and the VDA is 7.17 or higher, otherwise only 32-bit |
Workspace app for Linux | Any | Only for 32-bit apps in the VDA |
Workspace app for Chrome | Any | Some ARM Chromebooks don't support H.264 encoding - in that case, only 32-bit apps in the VDA can use the optimized HDX RealTime Webcam Video Compression |
HDX Webcam redirection and Citrix Hooks:
It is important to understand that Windows Server VDAs and Workstation VDAs have different approaches to HDX RealTime Webcam redirection.
In Windows 10 VDAs, you need to explicitly whitelist your application name (e.g. Zoom.exe) in the registry HKLMSOFTWARECitrixCtxHookAppInit_DllsCtxMFPlugin
See Section 8.5 below.
If you don't, HDX will leverage DirectShow which is the legacy multimedia framework in that Windows OS version. When DirecShow is used, some webcam functionality might be lost (like being able to toggle between front and rear webcams).
In Windows Server VDAs, you don't need to whitelist the app name. HDX will use Media Foundation by default, the latest multimedia framework in that Windows OS versions.
In some scenarios, if you can't redirect your webcam still, you can remove all hooking to the application (e.g. Zoom.exe) by using the 'UviProcessExcludes' registry key with the value set to the application (e.g. badapp1.exe). See CTX107825 for guidance.
With HDX RealTime Webcam Video Compression, the video data is captured on the user device; it is then compressed and sent to the XenApp/XenDesktop session. Installation of the device drivers for the webcam is not required on the Virtual Delivery Agent (VDA). Device drivers are only required on the client device. It is recommended that the latest drivers are obtained directly from the webcam manufacturer’s website.
Sometimes, default drivers are installed when the device is first plugged in, but these drivers might be old and not offer the video color space that the client’s codec is looking for, which might lead to higher CPU consumption on the user device as a result of color space conversion.
Note: 64-bit Application support for HDX RealTime Webcam Video Compression requires XenApp / XenDesktop 7.17 or later, and also Receiver for Windows 4.11 or later
Further information regarding configuration of HDX RealTime Webcam Video Compression is available on the Citrix documentation site - see HDX video conferencing and webcam video compression.
With HDX Generic USB Redirection technology, the webcam is virtually detached from the client device and attached to the XenApp/XenDesktop session. This provides all the native functionalities of the webcam in the XenApp/XenDesktop session. HDX Generic USB Redirection requires the device drivers for the webcam to be available on both the client device as well as on the VDA.
Bandwidth usage for webcams using HDX Generic USB Redirection technology can vary based on the vendor and model of the device, but it is significantly higher compared to use it over HDX RealTime Webcam Video Compression. HDX Generic USB for webcams is recommended to be used only under LAN conditions where bandwidth and latency are not constraints.
Refer the following link regarding more information on HDX Generic USB Redirection configuration:
Configure USB Support.
By default, webcams use HDX RealTime Webcam Video Compression technology. However, end users can override the default behavior and explicitly choose to use HDX Generic USB Redirection from the Desktop Viewer preferences tab of Citrix Workspace app, if the administrator has enabled remoting of USB devices through policies.
Important note on Integrated Webcams (e.g. Surface devices) : Integrated webcams are generally not detected as USB devices in Device Manager on the Client, but rather under System devices.
If you go to Device Manager on the Client, then View->Sort by Connection, see if your cameras show up under a USB Hub device. If they do, then they should appear on Desktop Viewer.
HDX RealTime Webcam Video Compression is the default and preferred way of using webcams with XenApp/XenDesktop, except when an “optimized” solution is available such as the HDX RealTime Optimization Pack for Microsoft Skype for Business and Lync. HDX RealTime Webcam Video Compression uses significantly less bandwidth compared to HDX Generic USB Redirection and works well over WAN connections.
HDX Generic USB is recommended only when there are application compatibility issues with HDX RealTime Webcam Video Compression or when advanced native functionalities of the webcam such as auto-focus are required. For better performance, Citrix recommends a XenDesktop VDA to have at least two virtual CPUs.
HDX RealTime Webcam Video Compression feature is available on XenDesktop 5.0 and later versions with Online Plug-in for Windows version 12.0 and later version or Receiver for Linux 12.0 and later version. It is also supported on Mac and Chrome Receivers.
With Workspace app for Linux, it has to be explicitly enabled. Refer the following link regarding information on how to configure this - Citrix Documentation - Optimize.
HDX RealTime Webcam Video Compression is enabled by default on the VDA and on the Windows client and no additional configurations are required.
Policies
HDX webcam video compression requires that the following machine policy settings are enabled (all are enabled by default).
HDX RealTime Webcam Video Compression uses the same underlying technology as Windows Media Redirection. Enable Windows Media Redirection in Studio for HDX RealTime Webcam Video Compression to be functional. If Windows Media Redirection is disabled, HDX RealTime Webcam Video Compression will not work.
4.4 Application Compatibility
HDX RealTime Webcam Video Compression is compatible with most unified communications clients. The feature has been tested for compatibility with the following applications:
Note: 64-bit Application support requires XenApp / XenDesktop 7.17 or later, and also Receiver for Windows 4.11 or later, and Receiver for Chrome.
The 7.17 VDAs and 4.11 Receiver for Windows (or higher versions of both) now include both 64-bit and 32-bit H.264 compression encoder/decoders. This means customers using 64-bit video conferencing hosted applications, such as Skype for Business x64, Google Chrome browser, and Google Hangouts, are now supported. Note that these 64-bit video conferencing apps must support H.264 for this feature to work.
Some ARM Chromebooks don't support H.264 encoding - in that case, only 32-bit apps in the VDA can use the optimized HDX RealTime Webcam Video Compression.
HDX RealTime Webcam Video Compression is not directly dependent on specific models of webcams. Any webcam that is DirectShow compatible (including integrated ones) can be used with HDX RealTime Webcam Video Compression. Most Windows Driver Model (WDM) compatible webcams can be used. However, webcam bandwidth consumption can vary from webcam to webcam. Different webcams offer different frame rates and have different levels of brightness and contrast. Citrix used the following webcams for initial feature validation:
Adjusting the contrast of the webcam can reduce upstream traffic significantly. This can be accomplished if the webcam ships with a system tray utility that runs on the user device. Oppo others driver download for windows 10.
Caution! Download olimex usb devices driver. Refer to the Disclaimer at the end of this article before using Registry Editor.
If Citrix GoToMeeting with HDFaces or Skype for Business (either hosted or when in fallback mode with RTOP) does not recognize the webcam of the user, edit the system registry.
For 32-bit devices, access HKEY_CLASSES_ROOTCLSID{860BB310-5D01-11d0-BD3B-00A0C911CE86}InstanceCitrix HDX Web Camera.
For 64-bit devices, access HKEY_CLASSES_ROOTWow6432NodeCLSID{860BB310-5D01-11d0-BD3B-00A0C911CE86}InstanceCitrix HDX Web Camera.
Add a string value named DevicePath.
Set REG_SZ as the data type and Citrix Client as the value [Reference 263277].
HDX RealTime Webcam Video Compression does not automatically reconnect if the session connection is interrupted mid-conference. The user must restart the video conference [Reference 233296].
HDX RealTime Webcam Video Compression supports ICA double-hop for webcams.
High Definition
In XenDesktop 7.16 and XenApp 7.18 VDAs (with Receiver for Windows 4.10 or higher) support was added for native resolutions beyond 352x288 (CIF).
This enhancement allows high-def webcam native resolutions for virtual sessions, up to 1080p.
Citrix Receiver now queries the webcams on the client for their list of supported capabilities (media type information and resolutions). Then, the HDX PnP virtual channel is used to send this information to the VDA. Server will then offer this list to the hosted application trying to use the webcam.
Media types that aren’t supported will be filtered out and not offered to the application.
At the moment, HDX supports the RGB formats, YUV420 formats and YUY2 packed formats.
Application running on the VDA picks the desired media type and resolution from the list that was offered.
(If for some reason this media type negotiation fails, HDX falls back to our legacy way of webcam redirection, which is to use hard coded 352x288 CIF resolution).
The selected media type and resolution is then sent to the client and the webcam uses that to start the webcam feed.
The existing registries keys on the client to control the resolution will be honored, and this mechanism can be utilized to enforce a given resolution (see section 7.1 below).
If Bandwidth consumption is a concern, High Definition can be disabled by applying the following registry key (either on the VDA or Client):
On the VDA | Or on the Client/Workspace App |
HKLMSoftwareCitrixHDXRealTime Name: Enable_HighDefWebcam Type: REG_DWORD Data: 0 = Disable the high definition webcam streaming | HKCUSoftwareCitrixHDXRealTime Name: Disable_HighDefWebcam Type: REG_DWORD Data: 1 = Disable the high definition webcam streaming |
As of XenApp 7.18 and XenDesktop 7.17 (with Receiver for Windows 4.10 or higher), all supported resolutions by the webcam are presented to the hosted app trying to access it, so it can pick the desired resolution.
By default, Citrix Receiver for Windows 4.10 or older and non-Windows Receivers use CIF resolution (352 x 288) to stream webcam video to the XenApp/XenDesktop host.
A scaling function allows applications to request resolutions other than the default. The CIF frames are scaled appropriately on the VDA before delivering them to the application.
To manually adjust (and force) the webcam video resolution, create (on the Client) under HKEY_CURRENT_USERSoftwareCitrixHDXRealTime two DWORD values named
The resolution directly affects the bandwidth consumed and the overall quality of the video.
Some Webcams (specially integrated) might not support CIF, and Webcam detection might fail on an older VDA (like 7.15 LTSR).
Editing the Registry for a known supported resolution (like 640 x 480 or 1280 x 720) might fix the issue.
Note that the higher the resolution, the higher the bandwidth consumption between Workspace app and the VDA.
Try a lower known supported resolution (e.g. 480p) to avoid high network traffic.
You can find this by launching the Camera app in Windows 10 and clicking on Settings:
Client-side registry:
The preferred video frame rate can be adjusted by creating (on the Client) a DWORD (32-bit) value named FramesPerSecond under HKEY_CURRENT_USERSoftwareCitrixHDXRealTime. Because it is possible to input a value that the webcam does not support (e.g 31 FPS), the actual frame rate might be different as seen by the hosted application (e.g. 10 FPS). When this key is not present, a default value of 15 frames per second is selected. The actual frame rate used is dependent upon the Webcam.
For example, an old WebCam device might only support up to 10 fps in 1280*720 resolution for I420, NV12, YV12, YUY2 video format (the formats supported in H.264 encoding, plus RGB with Theora encoding). To confirm this, use a third-party tool (like DumpVCap or GraphStudioNext) to verify.
--DumpVcap output-- |
Major Type Sub Type Format Type FixedSamples Temporal Compression Sample Size Max Input Size Min Output Size Max Output Size Min-Max FPS |
Video YUY2 VideoInfo Fixed NotTemporal 1843200 1280x720 1280x720 1280x720 5.00-10.00 {none} Video YUY2 VideoInfo2 Fixed NotTemporal 1843200 1280x720 1280x720 1280x720 5.00-10.00 {none} Video MJPG VideoInfo Fixed NotTemporal 2764800 1280x720 1280x720 1280x720 5.00-30.00 {none} Video MJPG VideoInfo2 Fixed NotTemporal 2764800 1280x720 1280x720 1280x720 5.00-30.00 {none} |
From the output, it is clear that at 1280*720 resolution, the WebCam device can support 5~10 fps for YUY2 video format and 5~30 fps for MJPG video format (but not supported in HDX). In this case, only up to 10FPS can be used by the hosted app.
Most modern webcams like the integrated ones in a Surface device (e.g. OV5693) support at least 640x480 (480p 4:3) or 640x360 (wide 360p 16:9) and 15-30 FPS (see SETTINGS screenshot above).
Citrix Workspace app for Windows supports H.264 (Default) and Theora (legacy) encoders. If for whatever reason you want to disable H264 (not recommended), the following registry key on either VDA or the client can be used:
On the VDA | Or on the Client |
HKLMSoftwareWow6432NodeCitrixHdxRealTime Or HKLMSoftwareCitrixHdxRealTime DWORD EnableDeepcompress_Server – set it to 0 to disable H.264 support. | HKCUSoftwareCitrixHdxRealTime DWORD EnableDeepcompress_Client – set it to 0 to disable H.264 encoding. By default HDX always prefer H.264 decoding. Set it to 1 to go back to default behavior. |
8. Troubleshooting
8.1. Device Manager on the Client would list the same webcam names as done by the Citrix Workspace app Desktop Viewer. Although keep in mind that there is no single designated place where they show inside Device Manager. This is device specific. Most common place is under Imaging Devices. Integrated webcams might show in other places (e.g. Device Manager/System devices)
8.2. Citrix Workspace app Desktop Viewer preferences should list all the available webcams on the client. If that drop down does not show webcams at all, that means the Client cannot access the locally attached webcams
In this scenario, redirection will not work. If you run into this problem, try launching apps like Skype for Business, Skype or GoToMeeting LOCALLY to confirm that webcam devices are not available on the endpoint either.
This can happen because of various reasons, most commonly device drivers not installed correctly because of which Windows cannot recognize webcams.
For HDX Realtime webcam video compression, the device drivers are not needed on the VDA, only on the Client.
For Generic USB redirection, drivers are needed at both the VDA and on the Client machine.
Important : in some cases, integrated webcams like in a Surface Book will not show in Desktop Viewer preferences. This does not mean they cannot be redirected.
8.3. Make sure the following Computer policies 'Windows media Redirection' and 'Multimedia Conferencing' are Enabled in Studio.
By default, all multimedia policies explicitly set on the Controller are stored in these registries:
Computer policies:
HKEY_LOCAL_MACHINESoftwarePoliciesCitrixMultimediaPolicies
User policies:
HKEY_LOCAL_MACHINESoftwarePoliciesCitrix{User Session ID}UserMultimediaPolicies
To locate the current user session ID, issue the qwinsta command on the Windows command line.
Keep in mind that these two policies are Enabled by default, and policies that are enabled by default will not show under those regkeys (only policies that are explicitly configured will).
HKEY_LOCAL_MACHINESOFTWAREWOW6432NodeCitrixCtxHookAppInit_DllsCtxMFPlugin
and
HKEY_LOCAL_MACHINESOFTWARECitrixCtxHookAppInit_DllsCtxMFPlugin