Emby 中文文档 下载 App

Emby 播放卡顿或缓冲 — 从网络到转码逐层定位瓶颈

卡顿的本质

Emby 播放卡顿/缓冲只有三种原因:

  1. Server 供不上来:转码太慢(CPU 不够或没开硬件加速)、磁盘 IO 不够读不过来
  2. 网络送不过去:客户端和 Server 之间的带宽不够(局域网太差 / 远程带宽不够)
  3. 客户端接不住:解码能力不够(比如老款 Android TV 盒子解不动 HEVC)

先看 Dashboard → Home → Active Sessions,找到正在播放的那个会话,重点看这几个字段:

场景一:局域网内卡顿

同一 Wi-Fi 下看 Emby 都卡,这最不应该——局域网千兆网络的有效带宽通常有几十到几百 Mbps,远高于绝大多数片源的码率。

排查 1:是不是在转码

Active Sessions 里看 Transcoding 那一行:

排查 2:Server CPU 是不是 100%

Dashboard → Home → Server Info(右上角 CPU/内存使用):

排查 3:磁盘 IO 不够

Server CPU 不高但还是卡,可能是磁盘读速度不够:

在 Server 上跑磁盘读速度测试(Windows 用 CrystalDiskMark,Linux 用 hdparm)。普通电影播放至少需要 20~30MB/s 的持续读速。

排查 4:Wi-Fi 信号差

最容易被忽略的原因。你以为 Wi-Fi 5(802.11ac)有 300Mbps,但如果隔了两三堵墙或干扰大,实际有效带宽可能只有 20~30Mbps,甚至更低。

验证:

  1. 让客户端连有线网线(临时拉一根试试)
  2. 如果有线播放流畅 → 问题在 Wi-Fi
  3. 解决:把路由器放高、换 Wi-Fi 6、或者让常用设备(Apple TV、Fire TV)走有线

排查 5:客户端解码能力不够

比如老款 Android TV 盒子(3~4 年前的机型)不支持 HEVC/H.265 硬解,看 HEVC 片源会强制软解,但盒子性能不够就卡。

验证:找一个 H.264 编码的片源(非 HEVC)在同一个客户端上播放。如果 H.264 流畅,HEVC 卡 → 客户端硬件解码 HEVC 不行。

场景二:远程访问卡顿/缓冲

手机/平板在外面用 Emby Connect 或公网 IP 播放卡:

排查 1:客户端比特率设得太高

客户端的 Max streaming bitrate 设得太高,Emby 转码后的码率超过了你当前的带宽:

排查 2:家宽上行带宽是瓶颈

Active Sessions 里看 Current Bitrate:

排查 3:Connect 走中继了

Emby Connect 连不上 P2P 和公网直连时会走中继(流量经过 Emby 的云服务器):

排查 4:手机网络本身不行

手机信号差、地铁里在隧道里、公司 Wi-Fi 限速……这些 Emby 管不了。

场景三:Server 硬件转码没开

明明有 Intel 核显/NVIDIA 独显,但还是在软解转码(CPU 飙高):

检查硬件转码配置

Dashboard → Transcoding → Hardware video decoder:

Docker 环境必须透传设备

Docker 容器里用硬件转码必须在 docker run 里加设备透传参数:

--device=/dev/dri/renderD128 --device=/dev/dri/card0

没加的话容器里看不到核显,Emby 自然只能软解。

宿主机驱动装好了吗

场景四:特定格式特别卡

某部电影卡,但其他都正常:

场景五:多人同时看时卡

一个人看没问题,第二个人加上就卡:

排查工具汇总

工具用途
Dashboard → Home → Active Sessions实时看转码状态、实时码率、编码格式
Dashboard → Help → Logs看转码日志,知道为什么要转码
speedtest.net测服务器的公网上行/下行带宽
MediaInfo看视频文件的完整编码信息
CrystalDiskMark测磁盘读速度
客户端关闭字幕试一下字幕格式可能触发转码