2009-09-04 39 views
11

Tôi đang sử dụng Qt 4.5 (2009.03) trên Linux Gnome (Ubuntu 9.04) và muốn hiển thị video được quay bằng webcam của tôi trong một Phonon :: VideoWidget của ứng dụng Qt của tôi.Hiển thị video trên WebCam với Qt

Tôi có triển khai đầu tiên sử dụng API v4l2 nơi tôi thực hiện chuyển đổi YUV2 thành RGB và tự điền QImage. Nó hoạt động tốt nhưng nó không phải là rất hiệu quả. Một đồng nghiệp đã sử dụng gStreamer để làm điều tương tự và nhanh hơn rất nhiều.

Kể từ đó tôi phát hiện ra về phonon và muốn sử dụng nó. Tất cả mọi thứ được cấu hình và thiết lập ngoại trừ ràng buộc với thiết bị webcam dưới dạng nguồn.

Tôi nên tạo đối tượng MediaSource nhưng tôi không biết cách định cấu hình nó. Bất kỳ trợ giúp sẽ có giá trị rất lớn.

Chỉnh sửa: Phonon overview giải thích rằng chưa được hỗ trợ. Nhưng tôi cần một giải pháp.

+0

Tôi ước mình có thể làm tương tự nhưng với ứng dụng nền tảng hoạt động trên Windows, Linux và MacOS X – Natim

+1

Tôi hiện có phiên bản làm việc nhưng chỉ sử dụng video cho linux (v4l). opencv là dễ dàng để cắm vào Qt nhưng độ phân giải hình ảnh được cố định với giá trị thấp và nó rất thấp trên cửa sổ. Thay đổi các tham số độ phân giải không có hiệu lực. Với phiên bản Linux của tôi, tôi không có giới hạn này. Tôi chuyển đổi từ yuv, nghiêng hình ảnh 90 ° và sao chép ngay vào bộ đệm QImage. Với việc sử dụng CPU 800x600 @ 5fps rất thấp. – chmike

+0

Bạn có một số đoạn mã để chỉ cho tôi không? Tôi cần phải làm điều tương tự cho một dự án. – Natim

Trả lời

2

Có thể bạn có thể xem cách kapture được triển khai.

+0

Tôi đã kiểm tra nhưng không thể khởi chạy webcam. Mã tôi đã viết bằng v4l2 hoạt động chính xác. Tôi thấy anh ấy cũng chuyển đổi hình ảnh bằng tay, điều đó không tốt. – chmike

4

Nếu mục tiêu của bạn là hiển thị hình ảnh YUV trên màn hình, bạn có thể sử dụng mô-đun OpenGL. Triển khai chuyển đổi dưới dạng trình đổ bóng phân đoạn. Nếu bạn muốn làm một cái gì đó khác như lưu hình ảnh chuyển đổi vào một tập tin thì nó không phải là một ý tưởng tốt.

Một số liên kết:

5

Tôi biết chút của nó cuối cho câu hỏi này. nhưng tôi đang tìm kiếm điều tương tự và không thể tìm thấy giải pháp qt tinh khiết. Tôi tìm thấy http://qt-apps.org/content/show.php/Qt+Opencv+webcam+viewer?content=89995 điều này phụ thuộc opencv mà tôi không biết và tôi không muốn tìm hiểu.

và đây là giải pháp của tôi http://qt-apps.org/content/show.php/V4lCapture?content=126541

một điều chủ đề của nó cần phải được đánh bóng nhiều hơn một chút nhưng nó hoạt động anyway.

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