Chúng tôi đo một phiên chia sẻ màn hình trên macOS: độ phân giải 3024x1964, H.264 qua VideoToolbox, fps trung vị 29, thời gian encode 12.3 ms, dropped=0 ở phía chia sẻ.
Mạng thì hoàn hảo: RTT 0–1 ms, mất gói 0%.
Nhưng ở phía người xem, freezes vẫn cộng dồn tới 35 lần, có đoạn 2 giây chỉ còn 3 fps.
Kết luận đầu tiên: nút thắt không nằm ở mạng.
Vì sao
Ba thứ thường bị bỏ qua khi đo:
- Encode không phải nguyên nhân. 12.3 ms/frame trên ngân sách 33 ms ở 30 fps — mới dùng 37%.
-
Adaptive quality không hề kích hoạt. 501/501 mẫu đều
limit=none, tức engine chưa từng giảm chất lượng dù fps rơi xuống 3. - Thứ tự giảm chất lượng bị ngược. Với screen sharing, WebRTC xu hướng giữ nguyên độ phân giải và hy sinh frame rate. Kết quả: hình vẫn nét nhưng bị giật.
Nên làm gì
- Đặt
degradationPreferencetường minh, đừng để mặc định. - Tự dựng thang độ phân giải (100% → 66% → 50%) và hạ độ phân giải trước khi fps xuống dưới 15.
- Giới hạn độ phân giải ngay ở capture. Khung 3024x1964 là ~5.9 megapixel; hạ về 1920x1200 giảm 4 lần khối lượng.
- Ghi log riêng
dropped,freezes, thời gian decode — không có thì chỉ đoán.
Công cụ miễn phí
Mình làm một máy tính ngân sách latency/bandwidth cho chia sẻ màn hình:
https://hhfa008.github.io/tools/screen-share-calc/vi/
Bộ checklist 18 điểm + script đo đầy đủ (bản trả phí): https://devinspire734.gumroad.com/l/xejxsp/FIRST50
Top comments (0)