Điều tra DirectShowSpy từ alax.info. Điều này sẽ cho phép bạn "gián điệp" khi chạy đồ thị DirectShow. Rất hữu ích kết hợp với một công cụ như GraphStudio.
Tôi là nhà phát triển C++ viết ứng dụng DirectShow và sử dụng cả hai công cụ mọi lúc, họ là những công cụ gỡ lỗi không thể thiếu.
Google đối tượng của Bảng đối tượng đang chạy. Các biểu đồ DirectShow (thường) được thêm vào Bảng đối tượng đang chạy, vì vậy bạn có thể liệt kê ROT để xác định đồ thị nào đang chạy trên hệ thống.
Thẻ video của bạn sẽ sử dụng bộ lọc trình kết xuất DirectShow để phát lại video trong biểu đồ Directshow. Trình kết xuất thường được bộ lọc bộ giải mã cấp. Bộ lọc bộ giải mã thực hiện công việc giải mã video và đó là bộ giải mã phải được hướng dẫn sử dụng gia tốc DXVA.
Vì vậy, ví dụ: bạn có thể có bộ lọc bộ giải mã H.264 trong biểu đồ phát lại, bạn phải hướng dẫn nó sử dụng gia tốc DXVA. Đó là kinh nghiệm của tôi rằng bộ lọc bộ giải mã sẽ có tùy chọn cho phép bạn bật/tắt giải mã video DXVA tăng tốc, nhưng điều này sẽ cụ thể cho bộ giải mã được đề cập và do đó sẽ khó hơn nhiều để phát hiện phổ biến. Ví dụ, bạn có thể viết mã để phát hiện DXVA có được kích hoạt hay không bằng cách truy vấn bộ lọc bộ giải mã trong biểu đồ đang chạy giải mã luồng H.264, nhưng mã để truy vấn bộ lọc bộ giải mã cho đồ thị VP8 nhiều khả năng mã khác.
This MSDN link hỗ trợ trải nghiệm của tôi rằng tăng tốc DXVA được chuyển qua bộ lọc bộ giải mã; có thể có một số cách để truy vấn một card đồ họa, nhưng tôi nghĩ rằng đây sẽ là nhà cung cấp thẻ gfx cụ thể.
Xin lỗi câu trả lời không cụ thể hơn, nhưng tôi hy vọng nó sẽ chỉ cho bạn đúng hướng ...
Nguồn
2011-03-09 15:20:21
bạn đang nói về việc phát hiện nó đang phát trên trang web? hay nói chung? – Jason
Nói chung. Media Player, VLC, vv sử dụng tăng tốc card video nếu có sẵn với các lớp phủ, vv Tôi đang cố gắng bẫy nếu điều đó xảy ra. – Boarder2
Câu hỏi tương tự với một số giải pháp có thể có: http://stackoverflow.com/questions/11177373/how-to-detect-if-any-video-is-being-played-now – TheLegendaryCopyCoder