In modern enterprise unified communications environments, audio, video, and screen-sharing traffic generated by Microsoft Teams can place significant strain on wide area networks (WAN), satellite uplinks, remote construction branches, and hybrid office circuits. While standard 1080p and 720p HD video streaming delivers crisp collaboration, unconstrained video streams consuming 1.5 to 4 Mbps per client can quickly congest bandwidth-limited site gateways.
To give telephony and network administrators granular control over real-time media consumption without disabling video features entirely, Microsoft Teams provides Media Bit Rate Policies. Administered via the CsTeamsMediaBitRatePolicy cmdlets in PowerShell, these policies enable administrators to establish precise maximum bit rate ceilings for audio, video, and screen-sharing sessions. This guide covers how to create custom bit rate policies, adjust bandwidth thresholds, assign policies to specific user cohorts or remote sites, and verify active bandwidth throttling.
Architecture of Media Bit Rate Management in Teams
When two or more Teams clients initiate a call or join a scheduled conference, the client media stack negotiates audio and video codecs (such as SILK, Opus, and H.264) and establishes transmission bandwidth based on dynamic network conditions and administrative policy boundaries.
The CsTeamsMediaBitRatePolicy configuration establishes a hard ceiling on media transmission rates:
MediaBitRateKbps: The maximum allowable bit rate (in kilobits per second) allocated for audio, video, and screen-sharing media streams combined.- Policy Hierarchy: Can be configured globally across the entire tenant, or created as targeted custom instances assigned to specific users, security groups, or branch offices via administrative assignment.
- Dynamic Codec Adaptation: When a policy enforces a lower bit rate ceiling (such as 500 Kbps or 1000 Kbps), the Teams client dynamically scales down resolution, framerate, and video encoding parameters rather than dropping frames or terminating calls, preserving call continuity under tight network constraints.
Connecting to the Microsoft Teams PowerShell Module
Managing Teams media bit rate policies requires administrative credentials with Teams Administrator or Global Administrator privileges and the Microsoft Teams PowerShell module (version 4.0.0 or later).
Open an elevated PowerShell session and execute:
# Install or update the Microsoft Teams module
Install-Module -Name MicrosoftTeams -Force -AllowClobber
# Authenticate to your Microsoft 365 tenant
Connect-MicrosoftTeams
Inspecting Existing Media Bit Rate Policies
Before configuring custom policies, review the baseline global policy and any existing policies currently provisioned in your tenant.
To inspect all provisioned media bit rate policies, execute:
Get-CsTeamsMediaBitRatePolicy | Format-Table Identity, MediaBitRateKbps, Description
To inspect the Global tenant-wide default policy in detail, run:
Get-CsTeamsMediaBitRatePolicy -Identity "Global" | Format-List *
By default, the MediaBitRateKbps parameter is often set to unconstrained or high defaults (e.g. 50,000 Kbps), allowing endpoints to consume maximum available bandwidth unless constrained by network-level Call Admission Control (CAC) or client throttling.
Creating Custom Media Bit Rate Policies with New-CsTeamsMediaBitRatePolicy
To restrict bandwidth for specific user groups—such as remote branch offices, field technicians on cellular hotspots, or offshore facilities—create targeted custom policy instances.
To create a policy limiting total media transmission to 1000 Kbps (1 Mbps), ideal for standard definition video and crisp audio across constrained links:
New-CsTeamsMediaBitRatePolicy `
-Identity "Branch-Office-1Mbps" `
-MediaBitRateKbps 1000 `
-Description "Throttles video and media to 1 Mbps for remote branch sites"
For extreme bandwidth-constrained scenarios (such as satellite or maritime uplinks), create an ultra-low-bandwidth profile limiting media to 500 Kbps:
New-CsTeamsMediaBitRatePolicy `
-Identity "Satellite-Constrained-500Kbps" `
-MediaBitRateKbps 500 `
-Description "Strict 500 Kbps ceiling for satellite and cellular field devices"
Modifying Existing Policy Thresholds with Set-CsTeamsMediaBitRatePolicy
When circuit bandwidth is upgraded or network congestion profiles change, adjust policy parameters without recreating the policy object.
To adjust an existing policy’s bandwidth ceiling using Set-CsTeamsMediaBitRatePolicy:
# Increase bit rate ceiling to 2000 Kbps
Set-CsTeamsMediaBitRatePolicy -Identity "Branch-Office-1Mbps" -MediaBitRateKbps 2000
Verify that the modification applied successfully:
Get-CsTeamsMediaBitRatePolicy -Identity "Branch-Office-1Mbps"
Assigning Media Bit Rate Policies to Users and Security Groups
Once a custom policy is defined, assign it to target users or security groups using the Grant-CsTeamsMediaBitRatePolicy cmdlet.
To assign the policy directly to an individual user account:
Grant-CsTeamsMediaBitRatePolicy -Identity "[email protected]" -PolicyName "Branch-Office-1Mbps"
To verify the effective policy applied to a user:
Get-CsOnlineUser -Identity "[email protected]" | Select-Object DisplayName, TeamsMediaBitRatePolicy
To assign the policy in bulk to all members of an enterprise department or branch office security group:
# Assign policy by Entra ID / Microsoft 365 Group ID
$GroupId = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
New-CsGroupPolicyAssignment `
-GroupId $GroupId `
-PolicyType TeamsMediaBitRatePolicy `
-PolicyName "Branch-Office-1Mbps" `
-Rank 1
To unassign a custom policy from a user, allowing them to revert to the tenant Global baseline:
Grant-CsTeamsMediaBitRatePolicy -Identity "[email protected]" -PolicyName $null
Removing Obsolete Media Bit Rate Policies
When decommissioning retired branch profiles or cleaning up legacy configurations, remove obsolete policies using Remove-CsTeamsMediaBitRatePolicy.
Before deleting a policy, ensure it is no longer assigned to active users or group policy assignments:
Remove-CsTeamsMediaBitRatePolicy -Identity "Satellite-Constrained-500Kbps" -Confirm:$false
Verifying End-User Client Bandwidth Enforcement
After policy assignment, policy synchronization replicates to client endpoints within a few hours. To verify active bandwidth throttling on a client machine:
- Initiate a one-on-one video call or group meeting from the target Teams client.
- Enable video streaming and share a presentation or high-resolution desktop screen.
- Open the Teams Call Health panel during the call: click the More (…) menu in the call control bar and select Call health.
- Inspect the Video and Screen sharing tabs. Observe the Bitrate metric. The combined send bitrate will remain strictly capped below the configured threshold (e.g. 1000 Kbps), confirming active policy enforcement.