← Blog

Khi phần mềm ghi hình không nhận diện được game, cách khắc phục theo nguyên nhân

Màn hình Game Capture hiện màn hình đen do phần mềm ghi hình không nhận diện được game
Photo · Pexels
Tóm tắt chính
  • Nguyên nhân phổ biến nhất của màn hình đen và không nhận diện là lệch GPU và thiếu quyền. Hãy chạy OBS bằng quyền quản trị và khớp dùng cùng GPU với game.
  • Game có anti-cheat mạnh như Valorant, PUBG thì việc hook bị chặn luôn. Lúc này hãy dự phòng sang capture màn hình (Display) thay cho Game Capture.
  • Vẫn không bắt được thì thử xóa cache hook (obs-studio-hook), cập nhật driver, và dùng chế độ cửa sổ không viền thay cho toàn màn hình.
  • DOR tự nhận diện game được hỗ trợ để bắt đầu ghi nên không có công đoạn chỉ định nguồn thủ công hay hook.

Nói kết luận trước thì việc phần mềm ghi hình không nhận diện được game phần lớn nằm trong một trong ba cái. (1) việc hook của Game Capture thất bại do lệch GPU hoặc thiếu quyền, (2) anti-cheat chặn việc hook, hoặc (3) chế độ toàn màn hình xung đột với phương thức capture. Cứ theo thứ tự bên dưới và đi theo nhánh hợp với tình huống của mình là được.

Tại sao không bắt được game và hiện màn hình đen

'Game Capture' của OBS là cách gắn hook vào tiến trình game để chen lấy đầu ra màn hình. Nhanh và nhẹ, nhưng việc hook chỉ thành lập khi game và phần mềm ghi hình vẽ hình trên cùng một card đồ họa và chạy ở cùng mức quyền. Khi tiền đề này vỡ thì dù chọn game từ danh sách, bản xem trước vẫn ra đen kịt. Như hình bên dưới, OBS bắt người dùng phải tự chỉ định capture game nào theo cách nào.

Màn hình thêm thủ công nguồn Game Capture và chỉ định tiến trình game cần capture trong OBS Studio
OBS Studio · Wikimedia Commons (GPL, OBS Project)

Nhánh 1. Lỗi hook (màn hình đen, không nhận diện)

Nếu trong danh sách game thấy game nhưng chỉ bản xem trước ra màu đen thì hook đã được thử nhưng bị chặn ở GPU hoặc chế độ capture. Hãy gỡ từng cái một bắt đầu từ nguyên nhân phổ biến nhất.

  • 1) Khớp GPU: laptop có GPU tích hợp và rời vẽ màn hình riêng. Vào Cài đặt → Hệ thống → Display → Graphics và chỉ định OBS là 'hiệu năng cao' để dùng cùng GPU rời với game.
  • 2) Đổi chế độ capture: trong thuộc tính Game Capture, đổi từ 'capture cửa sổ cụ thể' sang 'capture ứng dụng toàn màn hình (tự động)' hoặc ngược lại.
  • 3) Đổi game sang chế độ 'cửa sổ không viền (Borderless)': độc quyền toàn màn hình hay làm hook vỡ hơn. Đổi sang chế độ cửa sổ thì nhiều khi bắt được.
  • 4) Xóa cache hook: xóa thư mục C:\ProgramData\obs-studio-hook rồi tạo mới nguồn Game Capture. Hiệu quả khi nguyên nhân là cache hỏng sau cập nhật hoặc crash.

Nhánh 2. Xung đột anti-cheat (kiểu Valorant, PUBG, Faceit)

Hook về mặt kỹ thuật là 'process injection'. Vì thế anti-cheat như Vanguard (Valorant), Easy Anti-Cheat, BattlEye coi việc hook là hành vi hack và chặn nó. Nếu Game Capture đặc biệt ra màn hình đen ở Valorant hoặc PUBG, thì đừng thử hook thêm nữa mà đổi phương thức capture mới là đáp án.

  • Dự phòng sang capture màn hình (Display): ghi luôn đầu ra của monitor nên không động vào tiến trình game. Anti-cheat không có đối tượng để chặn nên hoạt động chắc chắn nhất.
  • Tùy chọn 'hook tương thích anti-cheat': nếu thấy mục này trong thuộc tính Game Capture thì thử bật. Đây là kiểu hook ít xâm lấn hơn nên một số anti-cheat cho phép.
  • Window Capture: phương án trung hòa ghi game chế độ cửa sổ theo từng cửa sổ thay vì toàn màn hình.
Mẹo thực chiến: capture màn hình có nhược điểm là 'ghi luôn cả màn hình nền và cửa sổ thông báo'. Trước khi ghi hãy bật game toàn màn hình, và tạm tắt overlay Discord cùng thông báo Windows thì sẽ có kết quả gọn gàng.

Nhánh 3. Vấn đề quyền (lệch quyền quản trị)

Nhiều game mặc định chạy bằng quyền quản trị. Trong khi đó nếu OBS bật bằng quyền thường thì Windows chặn việc 'chương trình quyền thấp hook tiến trình quyền cao'. Nhiều khi chỉ cần khớp mức quyền là gỡ được.

  • Nhấn chuột phải vào biểu tượng OBS → 'Chạy bằng quyền quản trị' để khớp mức quyền với game.
  • Muốn áp dụng tự động mỗi lần thì vào Thuộc tính OBS → Tương thích → tích 'Chạy chương trình này bằng quyền quản trị'.
  • Vẫn không được thì cập nhật OBS và driver GPU lên bản mới nhất. Có trường hợp DLL hook bản cũ lệch với driver mới.

Giải pháp tận gốc: cách không có hook hay chỉ định nguồn

Màn hình DOR tự động nhận diện việc chạy game được hỗ trợ để bắt đầu ghi mà không cần chỉ định nguồn riêng
DOR tự nhận diện game được hỗ trợ để bắt đầu ghi

Quá trình trên rốt cuộc là việc người dùng tự tìm và khớp 'phương thức capture nào không bị chặn ở game này, môi trường này', nên đáp án khác nhau tùy từng game, từng GPU, từng anti-cheat khiến mỗi lần lại loay hoay từ đầu. OBS phải thêm thủ công nguồn Game Capture và tự chỉ định, hook tiến trình game cần capture, nhưng DOR tự nhận diện game được hỗ trợ để bắt đầu ghi. Không cần chọn chế độ hook hay tạo nguồn nên bước 'không bắt được game' biến mất luôn. Bật Valorant hoặc Liên Minh Huyền Thoại thì DOR tự nhận diện để ghi, và pha hay thì tự tạo thành clip. Thiết lập khuyến nghị theo từng game và ví dụ clip tự động thực tế có thể xem ở trang Valorant, Liên Minh Huyền Thoại, PUBG.

Tổng kết: màn hình đen và không nhận diện phần lớn được giải quyết bằng (1) khớp GPU, quyền để cứu hook, (2) game có anti-cheat thì dự phòng sang capture màn hình, hoặc (3) khớp mức quyền. Nếu thấy phiền vì mỗi lần phải khớp phương thức capture, thì dùng DOR tự nhận diện việc chạy game để ghi là có thể bỏ qua luôn bước nhận diện.
FAQ

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

Game Capture của OBS chỉ ra màn hình đen. Đầu tiên nên làm gì?

Hãy chạy OBS bằng quyền quản trị, và vào Cài đặt → Hệ thống → Display → Graphics chỉ định OBS là 'hiệu năng cao' để dùng cùng GPU với game. Hai cái này gỡ được phần lớn màn hình đen. Vẫn không được thì thử đổi game sang chế độ cửa sổ không viền.

Game Capture không bắt được ở Valorant. Tại sao vậy?

Vì anti-cheat Vanguard của Valorant coi việc hook là hành vi hack và chặn nó. Đừng cứ thử Game Capture mãi mà hãy đổi sang capture màn hình (Display). Vì ghi luôn đầu ra của monitor nên anti-cheat không có đối tượng để chặn, hoạt động ổn định.

Đổi sang capture màn hình thì khác Game Capture chỗ nào?

Game Capture gắn hook vào tiến trình game để chỉ lấy màn hình, còn capture màn hình ghi toàn bộ đầu ra của monitor. Đổi lại được tự do khỏi vấn đề anti-cheat, quyền thì lại ghi cả màn hình nền, cửa sổ thông báo, nên trước khi ghi nên bật game toàn màn hình và tắt overlay, thông báo.

Bảo xóa cache hook thì xóa ở đâu?

Là thư mục C:\ProgramData\obs-studio-hook. Sau khi đóng hẳn OBS thì xóa các file trong thư mục này, rồi tạo mới nguồn Game Capture là được. Hiệu quả khi nguyên nhân là DLL hook hỏng sau cập nhật hoặc crash.

Việc khớp các thiết lập này mỗi lần khá phiền, có phương án nào không?

Dùng DOR là được. OBS phải chỉ định nguồn thủ công và chọn chế độ hook, nhưng DOR tự nhận diện việc chạy game được hỗ trợ để bắt đầu ghi. Không cần tự khớp phương thức capture nên bản thân vấn đề 'không bắt được game' không xảy ra, và pha hay thì còn tự tạo thành clip.

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