2009-10-16 38 views
10

Tôi muốn viết một chương trình theo dõi đối tượng cần phát kết quả được theo dõi. Vì gstreamer là một công việc đa phương tiện tốt, tôi muốn sử dụng nó trong chương trình demo của mình. Nhưng tôi không biết cách triển khai chi tiết hiển thị video. Có ai giúp được không?Làm cách nào để hiển thị video avi bằng gstreamer?

Plugin Avidemux có thể tách phần âm thanh và video khỏi tệp avi, nhưng phải làm gì tiếp theo?

Nếu tôi mở tệp avi không nén, có hoạt động không nếu tôi liên kết trực tiếp đầu ra của plugin avidemux với video chìm?

Nhân tiện, mức độ chìm video nào tốt hơn ở khía cạnh hiệu quả? Tôi đã tìm kiếm tài liệu tham khảo về plugin và tìm thấy rất nhiều video chìm: glimagesink, osxvideosink, sdlvideosink, ximagesink, xvimagesink, dfbvideosink, fbdevsink, gconfvideosink Autovideosink có hoạt động tốt không? Nền tảng của tôi là ubuntu 9.04.

TIA ~

Trả lời

4

Tôi muốn giới thiệu cách sử dụng playbin (reference page, documentation) hoặc thùng decode (reference page, documentation). Điều này đơn giản hóa quá trình tạo các đường ống gstreamer cho các loại tệp video khác nhau. Với mỗi bạn có thể sử dụng bồn rửa video bằng cách sử dụng giao diện GstXOverlay. Xem Embedding the video window in your application để biết thêm chi tiết.

+0

cảm ơn rất nhiều và tôi sẽ thử ~ – KOFKS

13

Như Nick Hadded gợi ý, playbin hoặc decodebin là một nơi tốt để bắt đầu. Để thử nghiệm, tôi khuyên bạn nên sử dụng gst-launch, ví dụ:

gst-launch filesrc location=video.avi ! 
decodebin2 name=dec ! queue ! ffmpegcolorspace ! autovideosink 
dec. ! queue ! audioconvert ! audioresample ! autoaudiosink 

Tôi đang sử dụng autoaudiosink và autovideosink vì chúng thường hoạt động. Khi bạn đã tìm thấy một đường ống hoạt động, hãy thử tạo cùng một đường ống với mã. Nếu bạn không cần âm thanh, chỉ cần bỏ qua phần đó của kênh. Để hiển thị video, đặt cược tốt nhất của bạn là xvimagesink (trên UNIX ít nhất).

+0

Câu hỏi: Những người khác có thể có "Cách hiển thị video MPEG2/MPEG4 với Gstreamer" Câu trả lời sẽ là: gst-launch filesrc location =/tmp/filmfr2.mpg! tên decodebin2 = dec! xếp hàng ! ffmpegcolorspace! autovideosink dec. ! xếp hàng ! audioconvert! audioresample! autoaudiosink – YumYumYum

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