← Blog

Ghi là tụt FPS, nguyên nhân thật là encoder (chuyển x264 sang NVENC khắc phục trong 5 phút)

Màn hình game bị tụt FPS khi đang ghi và thiết lập encoder
Photo · Pexels
Tóm tắt chính
  • Nguyên nhân số một của tụt FPS khi ghi là encoder x264 dùng cùng CPU với game.
  • Đổi sang NVENC (NVIDIA) hoặc encoder AMD HW thì tải mã hóa chuyển sang chip chuyên dụng GPU.
  • Đo thực tế x264 veryfast cắt khoảng 17%, trung bình 20~30 khung hình, còn NVENC chỉ mất mát một chữ số.
  • DOR mặc định mã hóa phần cứng NVENC nên không cần tự đụng tới encoder mà vẫn ghi với tải thấp.

Nói kết luận trước. Nếu cứ bật ghi là khung hình tụt từng khúc thì không phải vì máy tính thiếu cấu hình. Nguyên nhân phần lớn là loại encoder video. Encoder x264 (phần mềm) được đặt làm mặc định mượn đúng cái CPU mà game đang dùng để nén video, nên game và việc ghi tranh giành cùng một tài nguyên. Đổi sang encoder chuyên dụng GPU là NVENC thì cuộc tranh giành này biến mất và khung hình hồi phục gần như nguyên vẹn.

Nhìn vào con số thực tế thì khác biệt rõ ràng. Ghi bằng preset x264 veryfast thì khung hình game bị cắt khoảng 17%, trong môi trường 144 khung hình thì tức là trung bình bay mất 20~30 khung hình. Ngược lại NVENC xử lý mã hóa bằng chip riêng bên trong GPU nên ở cùng điều kiện mất mát chỉ dừng ở một chữ số. Bạn chỉ cần làm theo thứ tự bên dưới.

Số một: Đổi encoder từ x264 sang NVENC

Đây là việc nên làm đầu tiên và mang lại hiệu quả lớn nhất. Theo chuẩn OBS, đổi Thiết lập > Đầu ra > Chế độ đầu ra sang Nâng cao rồi kiểm tra mục Encoder ở tab ghi. Nếu chỗ này đang là x264 (phần mềm) thì đây chính là thủ phạm ngốn khung hình.

  • Card đồ họa NVIDIA (GTX 16xx, RTX các thế hệ): chọn NVENC H.264 hoặc NVENC HEVC
  • Card đồ họa AMD (RX series): chọn AMD HW H.264 (AVC)
  • Đồ họa tích hợp Intel (Iris Xe trở lên): chọn QuickSync H.264

Chỉ cần đổi encoder sang NVENC thì việc tính toán nén mà CPU đang làm chuyển nguyên sang chip mã hóa chuyên dụng GPU. Chip này tách biệt về mặt vật lý với nhân CUDA dùng để vẽ game, nên dù bật ghi cũng gần như không ảnh hưởng đến việc render game. Ở những trận coi trọng độ nhạy khung hình như Valorant hay Liên Minh Huyền Thoại thì khác biệt cảm nhận là lớn nhất.

Màn hình đổi encoder từ x264 sang NVENC trong thiết lập đầu ra OBS Studio
OBS Studio · Wikimedia Commons (GPL, OBS Project)
Nếu NVENC không hiện trong danh sách thì thường là do driver đồ họa đã cũ. Sau khi cập nhật NVIDIA GeForce Experience hoặc driver lên mới nhất rồi khởi động lại OBS thì nó sẽ xuất hiện trong danh sách encoder.

Số hai: Khi không dùng được NVENC, hạ preset x264 và độ phân giải, FPS

Nếu không có card đồ họa rời nên buộc phải dùng x264 thì điều chỉnh theo hướng giảm gánh nặng cho CPU. Trong Thiết lập > Đầu ra > thiết lập x264, hạ preset sử dụng CPU từ mặc định veryfast xuống superfast hoặc ultrafast một bậc. Preset càng nhanh thì càng ít dùng CPU, nhưng để giữ cùng chất lượng thì phải nâng bitrate lên một chút.

Nếu vẫn quá sức thì hạ chính tải của việc ghi. Cốt lõi là giảm số pixel và số khung hình mà encoder phải xử lý.

  • Độ phân giải: Thiết lập > Video > hạ độ phân giải đầu ra (đã chỉnh) từ 1920x1080 xuống 1280x720 thì tải mã hóa giảm xuống dưới một nửa.
  • Tần số khung hình: Hạ giá trị FPS chung từ 60 xuống 30 thì số khung hình phải xử lý mỗi giây giảm còn một nửa.
  • Giới hạn khung hình game: Khóa khung hình trong game ở 60 hoặc 120 thì GPU có dư địa nên việc mã hóa ổn định.

Chẩn đoán nhanh theo từng nguyên nhân

Tổng hợp xem nên đụng vào đâu trước theo triệu chứng. Sau khi kiểm tra bằng Trình quản lý tác vụ xem cảnh báo encoding overload của OBS có hiện không, có phải chỉ CPU tăng vọt không, hay GPU 100%, rồi xem dòng phù hợp.

  • Vừa bật ghi là khung hình lao dốc + mức dùng CPU tăng vọt → đang dùng x264. Chuyển sang NVENC (số một)
  • Cảnh báo encoding overload hiện thường xuyên → đặt preset là ultrafast, hạ độ phân giải, FPS (số hai)
  • GPU đã đầy ních 99~100% → hạ tùy chọn đồ họa game một bậc để chừa dư địa cho mã hóa
  • Khung hình thì bình thường mà chỉ file ghi bị giật → trường hợp đĩa lưu chậm, đổi đường dẫn lưu sang SSD
  • Chỉ tụt ở game nặng như PUBG, Battlegrounds → kết hợp giới hạn khung hình game + NVENC

x264 và NVENC, khác nhau ở đâu

Hiểu khác biệt giữa hai encoder thì sẽ rõ vì sao NVENC là đáp án. Trước đây có quan niệm chất lượng x264 tốt hơn, nhưng NVENC từ thế hệ Turing trở đi cho chất lượng tầm preset x264 medium mà gần như không đụng tới khung hình game. Ở những cảnh chuyển động dữ dội còn có đánh giá NVENC ít bóng mờ hơn.

  • x264: nén bằng CPU → tranh giành tài nguyên với game → chuẩn veryfast mất khoảng 17%, trung bình 20~30 khung hình
  • NVENC: nén bằng chip chuyên dụng GPU → tách biệt với render game → mất mát khung hình một chữ số
  • Chất lượng: NVENC mới nhất ngang mức x264 medium, mạnh ở cảnh hành động chất lượng cao
  • Độ khó thiết lập: x264 cần tinh chỉnh preset, bitrate thủ công, NVENC thực chất chỉ cần mặc định là đủ

Nếu thấy thiết lập phiền: DOR mặc định là NVENC

Đọc đến đây hẳn bạn đã cảm nhận được, OBS phải tự tìm và đổi encoder rồi tự tay khớp preset và bitrate. Một khi đặt sai thì bạn cứ chơi mà không biết mỗi lần ghi là khung hình lại rò rỉ. DOR đã loại bỏ hẳn quá trình này. Mã hóa phần cứng NVENC được đặt làm mặc định ngay từ đầu, nên cài rồi bật là ghi với tải thấp mà không cần thiết lập riêng.

Cảnh DOR ghi với tải thấp mà không ảnh hưởng đến khung hình game
DOR mặc định mã hóa phần cứng NVENC nên ít ảnh hưởng đến khung hình game

Nhờ vậy mà ở những game mà một khung hình định đoạt thắng thua như Valorant hay Overwatch, bạn cũng có thể vừa chơi vừa luôn bật ghi. Khi có khoảnh khắc đỉnh cao thì lúc đó cắt ra lưu là được, nên không cần tốn thời gian vật lộn với thiết lập encoder. Nếu muốn cứ bật ghi mà không lo tụt FPS thì DOR là con đường nhanh nhất.

Tóm lại, khi tụt FPS lúc ghi thì thứ tự rất đơn giản. Đổi encoder sang NVENC, nếu không được thì hạ preset và độ phân giải, FPS, còn nếu vẫn phiền thì dùng công cụ mà NVENC là mặc định. Trước khi đổ lỗi cho cấu hình, hãy kiểm tra encoder trước. Phần lớn dừng ở đó.

FAQ

Câu hỏi thường gặp

Nguyên nhân lớn nhất của việc ghi là tụt FPS là gì?

Thủ phạm là encoder phần mềm x264 dùng CPU. Vì nó mượn đúng cái CPU như game để nén video nên xảy ra tranh giành tài nguyên khiến khung hình bị cắt. Đổi sang encoder chuyên dụng GPU là NVENC thì phần lớn hồi phục.

Đổi sang NVENC thì thực tế khung hình hồi phục được bao nhiêu?

x264 veryfast cắt khoảng 17%, chuẩn 144 khung hình thì trung bình 20~30 khung hình. NVENC xử lý mã hóa bằng chip riêng trong GPU, tách biệt với render game nên ở cùng điều kiện mất mát chỉ dừng ở một chữ số.

Nếu không có card đồ họa thì phải làm sao?

Nếu không có card đồ họa rời thì phải dùng x264. Lúc này hạ preset sử dụng CPU từ veryfast xuống ultrafast, hạ độ phân giải xuống 720p, FPS xuống 30 để giảm tải mã hóa. Nếu là đồ họa tích hợp Intel mới nhất thì cũng có thể thử encoder QuickSync.

NVENC chẳng phải chất lượng kém hơn x264 sao?

NVENC mới nhất từ thế hệ Turing trở đi cho chất lượng tầm preset x264 medium. Ở cảnh hành động chuyển động nhanh còn có đánh giá ít bóng mờ hơn, nên với ghi game thì NVENC có lợi cả về chất lượng lẫn hiệu năng.

Vì sao DOR không cần thiết lập encoder riêng?

DOR được đặt sẵn mã hóa phần cứng NVENC làm mặc định ngay từ đầu. Không cần tự tìm và đổi encoder rồi khớp preset như OBS, chỉ cần cài rồi bật là ghi với tải thấp nên ít ảnh hưởng đến khung hình game.

Games

Ghi lại các game này

Đọc tiếp

Bài viết liên quan

Bắt đầu với DOR ngay

Cài đặt và mở game, các khoảnh khắc nổi bật sẽ tự động được lưu thành clip