Last updated: March 21, 2026

Poor network quality during video calls is the most common complaint about remote work. Pixelated video, dropped audio, and “you’re breaking up” are almost always solvable network problems. usually with a wired connection, better router placement, or QoS configuration rather than a faster ISP plan.

Table of Contents

This guide covers the network changes that actually improve video call quality, in order of impact.

Step 1 - Measure Your Actual Problem

Before changing anything, understand what you’re working with:

Test download and upload speed
Fast.com (Netflix's server) for download
Speedtest.net or Ookla CLI for both

Install Speedtest CLI
macOS
brew install speedtest-cli

Linux
sudo apt-get install speedtest-cli
or
pip install speedtest-cli

Run test
speedtest-cli --share
Note download, upload, and PING values

Continuous monitoring. detect if your speed drops at certain times
for i in $(seq 1 5); do
  echo "Test $i at $(date):"
  speedtest-cli --simple
  sleep 60
done

Video call requirements (per active video stream):

If your upload speed is below 5 Mbps, that’s likely the bottleneck. most residential ISPs prioritize download.

Step 2 - Switch to Wired (Ethernet)

Wi-Fi has variable latency and is susceptible to interference from neighbors, microwaves, and walls. A wired Ethernet connection eliminates this variability entirely.

Check your current connection type
macOS
networksetup -listallnetworkservices
networksetup -getinfo Ethernet   # if connected via Ethernet

Linux
ip link show
Look for - state UP for the wired interface (usually eth0 or enp3s0)

Check actual link speed on Linux
ethtool eth0 | grep Speed
Should show - Speed: 1000Mb/s (gigabit) for a good wired connection

Test latency. wired vs Wi-Fi comparison
ping -c 20 google.com
Wired - consistent ~5-15ms
Wi-Fi - 15-50ms with high variance (jitter)

What you need for wired:

Powerline adapters (for rooms far from the router where running cable is difficult):

TP-Link AV1000 or AV2000 Powerline adapters
Plug one adapter near your router (Ethernet cable to router)
Plug second adapter at your desk (Ethernet cable to laptop)
Speed through powerline - 300-600 Mbps on good wiring
Latency - 5-15ms (much better than Wi-Fi)

Step 3 - Configure Router QoS

Quality of Service (QoS) tells your router to prioritize video call traffic over large file downloads or backups that happen to be running at the same time:

Most home routers have QoS in the web admin panel
Access at - http://192.168.1.1 or http://192.168.0.1 (varies by router)

On Asus routers (web panel - router.asus.com)
Adaptive QoS → Video Conferencing → drag to highest priority

On UniFi (if you have a Ubiquiti setup):
Network → Settings → Traffic Management → Add Rule
Type - Application
Application - Video Conferencing
Rate Limit - None (guarantee bandwidth)
DSCP Tag - EF (Expedited Forwarding)

For advanced control with OpenWrt or pfSense, configure DSCP queues
These are tagging video call traffic to prioritize it in the queue

Manual QoS on Linux router/firewall:

Traffic Control (tc). prioritize video call traffic
Identify video call IPs (Zoom, Meet use UDP on high ports)

Create a priority queue
sudo tc qdisc add dev eth0 root handle 1: prio priomap 0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3

Prioritize UDP traffic (video calls use UDP)
sudo tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 \
  match ip protocol 17 0xff \   # UDP protocol = 17
  flowid 1:1  # highest priority band

Step 4 - Eliminate Wi-Fi Interference

If you must use Wi-Fi:

Scan for congested channels (macOS)
Hold Option → click Wi-Fi menu bar icon → Open Wireless Diagnostics
Window → Scan → view channel utilization

Linux - scan for nearby networks and their channels
sudo iwlist wlan0 scan | grep -E "Channel|ESSID"
or use nmcli
nmcli device wifi list

Recommendations:
2.4 GHz: use channels 1, 6, or 11 (non-overlapping)
5 GHz: use channels 36, 40, 44, 48, 149-165 (less congested in residential areas)
6 GHz (Wi-Fi 6E): almost no interference. upgrade if router supports it

Check which channel your router is using
macOS: Option+click Wi-Fi → shows Channel X (2.4GHz) or Channel X (5GHz)

Router placement:

Step 5 - Separate Work Traffic with a VLAN (Optional, High Value)

A VLAN for your work devices keeps your work traffic on dedicated bandwidth, away from streaming TVs, IoT devices, and gaming consoles:

Requires a VLAN-capable router and switch (UniFi, pfSense, or managed switch)

UniFi setup:
Networks → Add New Network
Name - Work
VLAN ID - 10
Subnet - 192.168.10.0/24
Apply to work laptop's switch port or Wi-Fi SSID

Create a dedicated SSID for work devices
WiFi → Add New WiFi Network
Name - Home-Work
Network - Work (VLAN 10)
Security - WPA3

Bandwidth guarantee for VLAN 10 (UniFi Traffic Management)
Rate Limit Group - Work Devices
Minimum bandwidth - 50 Mbps upload / 50 Mbps download

Step 6 - ISP Upgrade Decision

Upgrade your ISP plan only after fixing the above. More bandwidth doesn’t fix latency or Wi-Fi interference.

Decide if you need an ISP upgrade:
Current upload speed < 10 Mbps AND you have multiple video calls per day → upgrade
Current upload speed > 10 Mbps AND you have issues → it's not the ISP plan

Choosing a plan:
Upload is the bottleneck for video calls
Cable/DOCSIS - typically asymmetric (200 Mbps down, 10-20 Mbps up). not ideal
Fiber (FTTH) - symmetric (200 Mbps down AND up). much better for video calls
5G home internet: variable, high upload on good signal (50-100 Mbps up typical)

Minimum for serious remote work with multiple video calls per day:
Upload - 25 Mbps (headroom for 1080p + buffer for other devices)
Latency - < 30ms to closest server

Check fiber availability in your area
Open Fiber map from ISPs, or use nperf.com/map

Quick Diagnostics When Calls Are Degrading

During a bad call, run these from terminal:

1. Check for packet loss
ping -c 50 8.8.8.8 | tail -5
Any packet loss (> 0%) causes audio drops

2. Check current upload bandwidth usage
macOS: nettop or Activity Monitor → Network
nettop -P -p $(pgrep -x zoom || pgrep -x "Google Chrome")

Linux - watch bandwidth per process
sudo nethogs
or
sudo iftop -i eth0

3. Check if another process is hogging bandwidth
macOS: Activity Monitor → Network tab → sort by Sent Bytes/sec
Linux - sudo nethogs eth0

4. Check CPU (high CPU causes video encoding drops)
macOS
top -o cpu | head -20
Linux
htop

Frequently Asked Questions

How long does it take to video calls?

For a straightforward setup, expect 30 minutes to 2 hours depending on your familiarity with the tools involved. Complex configurations with custom requirements may take longer. Having your credentials and environment ready before starting saves significant time.

What are the most common mistakes to avoid?

The most frequent issues are skipping prerequisite steps, using outdated package versions, and not reading error messages carefully. Follow the steps in order, verify each one works before moving on, and check the official documentation if something behaves unexpectedly.

Do I need prior experience to follow this guide?

Basic familiarity with the relevant tools and command line is helpful but not strictly required. Each step is explained with context. If you get stuck, the official documentation for each tool covers fundamentals that may fill in knowledge gaps.

Can I adapt this for a different tech stack?

Yes, the underlying concepts transfer to other stacks, though the specific implementation details will differ. Look for equivalent libraries and patterns in your target stack. The architecture and workflow design remain similar even when the syntax changes.

Where can I get help if I run into issues?

Start with the official documentation for each tool mentioned. Stack Overflow and GitHub Issues are good next steps for specific error messages. Community forums and Discord servers for the relevant tools often have active members who can help with setup problems.

Related Articles