2012-01-04 14 views
10

मैं एक कुछ अतिरिक्त डेटा धाराओं के साथ एक साथ को बचाने के लिए है कि एक मट्रोस्का (MKV) में चाहते हैं कंटेनर OpenCV फ्रेमवर्क के साथ एक वीडियो रिकॉर्ड करने के लिए प्रयास करें।GStreamer बनाम FFmpeg

सबसे पहले मैंने सोचा कि एफएफएमपीईजी का उपयोग करना यही तरीका है। लेकिन ओपनसीवी सोर्सकोड में देखकर और वेब पर खोज करते समय मुझे जीस्ट्रीमर मिला।

क्योंकि GStreamer में प्रलेखन FFmpeg प्रलेखन मैं इस फ्रेमवर्क का प्रयोग करके पसंद करेंगे तुलना में काफी बेहतर है।

मेरी समझ GStreamer में मुख्य रूप से स्ट्रीमिंग के लिए प्रयोग किया जाता है, लेकिन यह भी rncode और mux वीडियो डेटा सकता है।

वहाँ किसी भी नुकसान जब GStreamer बजाय FFmpeg का उपयोग कर है?

अग्रिम धन्यवाद होर्स्ट

उत्तर

12

मैं OpenCV फ्रेमवर्क के साथ एक वीडियो रिकॉर्ड करने के लिए एक को बचाने के लिए है कि एक मट्रोस्का (MKV) में चाहते हैं

मुझे नहीं लगता कि OpenCV कर सकते हैं की कोशिश एमकेवी के रूप में वीडियो स्टोर करें,

कुछ अतिरिक्त डेटा स्ट्रीम के साथ।

ओपनसीवी इस ऑपरेशन के लिए सुविधाएं प्रदान नहीं करता है।

एक आसान तरीके को बस कॉल ffmpeg के या gstreamer के cmd लाइन आवेदन आप के लिए रूपांतरण करने के लिए है।

जीस्ट्रीमर वास्तव में एक सभ्य दस्तावेज़ीकरण है और यह नौकरी भी कर सकता है। स्पष्ट नुकसान है कि यदि आप जानते हैं कि कैसे FFmpeg के साथ काम करने, GStreamer के लिए बदल रहा समझने के लिए यह कैसे काम करता है, क्योंकि दोनों पूरी तरह से अलग एपीआई है कुछ अतिरिक्त समय की आवश्यकता होगी है: GStreamer वास्तुकला डायरेक्टशो और क्विकटाइम से प्रेरित था।

लाभ कि GStreamer (पार मंच के रूप में अच्छी तरह से किया जा रहा है के अलावा) के कई बड़े परियोजनाओं और GStreamer को जानने पर प्रयोग किया जाता है निश्चित रूप से आपके प्रोग्रामिंग शस्त्रागार करने के लिए एक महान कौशल जोड़ना होगा है।

+3

जानकारीपूर्ण GStreamer पोस्ट के लिए +1 :) – mevatron

+0

OpenCV अपने डेटा उत्पादन अवधारणा और प्रॉक्सी की तर्ज पर भंडारण बनाता है। आप एक Ffmpeg प्रॉक्सी, एक Gstreamer प्रॉक्सी, या यहां तक ​​कि _images proxy_ का उपयोग कर सकते हैं, एक शून्य प्रॉक्सी का प्रकार जो संभवतः (दूसरों के बीच) जेपीईजी छवियों के साथ काम करता है। इसे [इस पेस्ट] (http://paste.frubar.net/16334) पर देखें [cvCreateVideoWriter फ़ंक्शन] (https://github.com/Itseez/opencv/blob/master/modules/highgui/src/cap सीपीपी)। उदाहरण के लिए, मैं कई प्रॉक्सी के साथ कॉन्फ़िगरेशन के बड़े सौदे के बिना एक वेनिला ओपनसीवी कॉन्फ़िगर करने के लिए उपयोग करता हूं, और केवल छवियों के साथ काम करता हूं और वीडियो मल्टीप्लेक्सिंग और डेमल्टीप्लेक्सिंग को एफएफपीईजी को बाहरी रूप से आमंत्रित करता हूं। – uprego