2011-11-07 47 views
6

Tôi đang tạo một ứng dụng quay video Windows và đang sử dụng DirectShow để chụp. Khi mỗi khung hình xuất hiện, tôi muốn lấy nó như là một bitmap RGB thô thành một bộ đệm, lúc đó mã của tôi sẽ làm bất cứ việc xử lý nào tôi cần.DirectShow - Nhận các khung hình video

Tôi đã tìm kiếm các mẫu tương tự như những gì tôi muốn làm và mọi nơi tôi xem trực tuyến, mọi người khuyên bạn nên sử dụng giao diện IMediaDet và/hoặc giao diện ISampleGrabber để chụp theo từng khung. Thật không may, cả hai đều không được chấp nhận và thậm chí không có trong phiên bản Windows SDK mới nhất.

Cách tốt nhất (hiện đại) để thực hiện chụp theo từng khung trong DirectShow là gì? Nếu không có, có thư viện nào khác mà tôi nên sử dụng để cho tôi chụp khung hình không?

+0

thể trùng lặp của [ISampleGrabber bị phản đối? ] (http://stackoverflow.com/questions/6124629/isamplegrabber-deprecated) –

Trả lời

5

Sample Grabber không còn được dùng cách đây vài năm nữa, một vài năm sau khi phát triển DirectShow thực sự dừng lại. Tức là, hãy sử dụng Sample Grabber khi bạn đọc làm phương pháp được đề xuất và nó sẽ hoạt động tốt cho bạn.

Điều duy nhất bạn sẽ bổ sung cần là để sao chép các định nghĩa int mã nguồn của bạn, xem chi tiết:

+0

Tôi đã không nhận thức được sự phát triển của DirectShow hoàn toàn dừng lại. Có một thư viện mới nào khác mà tôi nên sử dụng thay thế không? –

+1

Đã có rất ít mới trong 'DirectShow' trong quá khứ (8?) Năm. 'Media Foundation' được dự định là người kế thừa, nhưng cho đến nay nó không đạt được sức mạnh của' DirectShow' ngay cả trong các phiên bản Windows mới nhất, thậm chí không nói về tính tương thích trong các phiên bản trước. Tức là, 'DirectShow' vẫn là lựa chọn hoàn hảo cho API đa phương tiện. –

Các vấn đề liên quan