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
- Step 1 - Measure Your Actual Problem
- Step 2 - Switch to Wired (Ethernet)
- Step 3 - Configure Router QoS
- Step 4 - Eliminate Wi-Fi Interference
- Step 5 - Separate Work Traffic with a VLAN (Optional, High Value)
- Step 6 - ISP Upgrade Decision
- Quick Diagnostics When Calls Are Degrading
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):
- 720p: 2.5 Mbps upload, 2.5 Mbps download
- 1080p: 3.5 Mbps upload, 3.5 Mbps download
- Zoom group call (with others in the call): 3 Mbps upload recommended
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:
- Ethernet cable (Cat6 or Cat6a. future-proof)
- USB-C to Ethernet adapter if your laptop has no Ethernet port
- Run a cable from your router to your desk, or use a Powerline adapter if cabling isn’t practical
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:
- Position router at desk height or higher, in the center of your home
- Keep away from microwaves, cordless phones, baby monitors (2.4 GHz interference)
- No router behind walls or inside cabinets
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
- How to Set Up Home Office Network for Remote Work
- Test upload/download speed to common video call servers
- Best Mesh WiFi for Home Office Video Calls: A Technical
- Best Lighting Setup for Video Calls in Basement Home Office
- How to Share Home Office with Partner Both on Calls Built by theluckystrike. More at zovo.one