Buffering is the most complained-about Plex problem, and it has at least six different causes. Most guides tell you to “check your network” and leave it at that. Here’s every cause and the specific fix for each one.
Cause 1: Transcoding Bottleneck
The #1 cause of Plex buffering. Your server is trying to transcode a file but can’t keep up with real-time playback. Symptoms:
- Buffering starts 10–30 seconds into playback
- Plex dashboard shows “Transcode” with high CPU usage
- Lowering quality to 720p fixes it
- Direct play files work perfectly
Fix: Enable hardware transcoding (Plex Pass required). If your hardware doesn’t support it or can’t keep up, optimize your media files for direct play (see our media optimization guide) or offload transcoding to a remote GPU.
Cause 2: Slow Disk I/O
Your media files are on a slow drive and Plex can’t read them fast enough. Common with:
- External USB 2.0 drives (max ~30 MB/s, need ~10–15 MB/s per 4K stream)
- Old 5400 RPM drives with multiple simultaneous streams
- Network-attached storage (NAS) over a slow link
- SMB/CIFS mounts with poor performance
Fix: Check disk throughput: dd if=/path/to/mediafile of=/dev/null bs=1M count=500. You need sustained 10+ MB/s per stream. If your NAS is the bottleneck, consider moving media to local storage or upgrading to a faster connection (10GbE, direct attach).
Cause 3: Network Bandwidth (Local)
Your local network can’t move data fast enough from server to client. This is almost always a Wi-Fi problem:
- Wi-Fi 5 (802.11ac): Theoretical 866 Mbps, real-world 200–400 Mbps — fine for one 4K stream
- Wi-Fi 4 (802.11n): Real-world 50–100 Mbps — struggles with 4K remux files (80+ Mbps)
- Multiple clients on Wi-Fi: Bandwidth is shared; two 4K streams can exceed what your access point delivers
Fix: Wire your Plex server with Ethernet (always). For clients, use wired connections where possible or ensure a strong Wi-Fi 5/6 signal. A 4K HDR remux at 80 Mbps needs a solid connection.
Cause 4: Remote Bandwidth
Remote users don’t have enough download bandwidth for the quality level they selected, or your server doesn’t have enough upload bandwidth.
| Quality Setting | Bandwidth Needed | Upload Speed Needed (per user) |
|---|---|---|
| 720p 4 Mbps | ~5 Mbps | ~5 Mbps |
| 1080p 10 Mbps | ~12 Mbps | ~12 Mbps |
| 1080p 20 Mbps | ~22 Mbps | ~22 Mbps |
| 4K Original | ~50–100 Mbps | ~50–100 Mbps |
Fix: Set a remote streaming quality limit in Plex settings (Settings → Remote Access → Limit remote stream bitrate). Most ISPs provide 10–20 Mbps upload. With 3 remote users, you can afford about 4–6 Mbps each — that’s 720p. Upgrading your internet plan or using a remote GPU to transcode to lower bitrates helps.
Cause 5: Subtitle Burn-In
Image-based subtitles (PGS, VobSub, ASS/SSA with styling) force a full video transcode because Plex has to render them onto the video frame. This hits even if the video codec would otherwise direct play.
Fix: Convert image-based subtitles to SRT using Bazarr or Subtitle Edit. Remove PGS tracks from your MKV files with mkvmerge. Use text-based subtitles (SRT, WebVTT) whenever possible — they overlay on the client side without any server-side processing.
Cause 6: Client App Issues
Sometimes it’s the Plex client app itself:
- Web player: The browser-based player is the worst performer. It can’t direct play many codecs and forces transcoding. Use native apps instead.
- Outdated apps: Old Plex clients may not support newer codecs or have bugs that cause buffering
- Client device too slow: A 2015 Fire Stick can’t decode 4K HEVC smoothly even when direct playing
Fix: Use native Plex apps (Apple TV, Roku, Android TV) instead of the web player. Keep apps updated. For 4K content, use a client that supports HEVC hardware decoding — Apple TV 4K, NVIDIA Shield, or recent Roku models are the gold standard.
Diagnosing Your Specific Issue
Open the Plex dashboard during playback (Settings → Status → Now Playing). Check:
- Is it transcoding or direct playing? If transcoding, fix the transcode bottleneck first
- What’s the bandwidth? Dashboard shows the current stream bitrate vs available bandwidth
- CPU/GPU usage: If CPU is at 100%, that’s your bottleneck. If it’s low and you’re still buffering, it’s network or disk
- Transcode speed: Should say “speed: 4.0x” or higher. Below 1.0x means your server can’t keep up
Fix the first bottleneck you find. In most cases, it’s transcoding (get hardware acceleration or optimize your files) or network (wire what you can, limit remote quality).