2012-08-10 19 views
5

वहाँ किसी भी तरह से (स्क्रिप्ट के माध्यम से या ffmpeg है कि मैं याद किया बुला में अधिमानतः कुछ पैरामीटर) को AVI फ़ाइल से फ्रेम निकालने के लिए और क्रमिक रूप से फ्रेम नकल ignore इस प्रकार है, केवल deltas/परिवर्तनों पर देख चित्रों के माध्यम से जाने में सक्षम होने के नाते?FFMPEG - चित्र के रूप में फ्रेम्स निकालें कैसे क्रमिक रूप से डुप्लिकेट फ्रेम्स निकाला जा रहा है जबकि

मुझे अक्सर काम पर बैठकों को रिकॉर्ड करना पड़ता है और बहुत समय, क्लाइंट स्क्रीन जो मैं देख रहा हूं वह बदल नहीं रहा है जब हम फोन पर बात कर रहे हैं। बैठक समाप्त हो जाने के बाद, मुझे इन दस्तावेजों का उपयोग हमारे दस्तावेज और विनिर्देशों के एकत्रण के हिस्से के रूप में करने की आवश्यकता है।

मुझे पता है कि मैं बस हर फ्रेम आउटपुट कर सकता हूं और उन्हें किसी दिए गए डुप्लिकेट फ़ाइल रीमूवर उपयोगिता के माध्यम से चला सकता हूं, लेकिन यह सभी डुप्लिकेट फ्रेम हटा देगा। इसलिए, अगर निकाले गए फ्रेम इस प्रकार गए:

ए, ए, ए, बी, बी, बी, बी, सी, सी, ए, ए, सी, सी, सी, बी, बी, बी ...

एक ठेठ डुप्लिकेट फ़ाइल पदच्युत के माध्यम से उन्हें चल रहा है, मैं मिलेगा: ए, बी, सी

क्या मैं नहीं देखना चाहेंगे: ए, बी, सी, ए, सी, बी

कमांड जिसे मैं वर्तमान में छवियों को निकालने के लिए उपयोग कर रहा हूं:

ffmpeg.exe -i file.avi -ss 0 -sameq -f image2 -r 1 im आयु% 5d.png

मैं पहले से ही हर फ्रेम प्राप्त कर रहा था (ऊपर से -1 आर को हटा रहा था), लेकिन इससे निपटने के लिए बहुत सारे फ्रेम पैदा हुए थे क्योंकि इन ऑनलाइन मीटिंग्स घंटों तक जा सकती हैं, इसलिए अब के लिए, फ़ाइल से प्रति सेकंड एक फ्रेम प्राप्त करें।

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

सही दिशा में कोई समाधान या बिंदु बहुत सराहना की है।

+0

आप कभी भी इस के लिए एक समाधान मिला? मैं लगभग एक ही चीज़ की तलाश में हूं। –

उत्तर

7

क्या आपने -vsync 0 विकल्प के साथ प्रयास किया था?

+0

यह करीब आता है, लेकिन जब मैंने इसे आजमाया, तो 'fdupes' को अभी भी लगातार समान फ्रेम मिलते हैं। –

+1

+1 मेरे मामले में (कम फ्रेम दर) मैंने प्रत्येक फ्रेम को 50 बार डुप्लिकेट किया था। इस विकल्प के साथ प्रत्येक 1000 गैर डुप्लिकेट फ्रेम के लिए केवल 1 डुप्लिकेट फ्रेम था। – user2518618

+0

मेरे लिए इनपुट फ्रेम की संख्या में बिल्कुल बाहर आया। शायद कुछ काले रंग के फ्रेम फ्रेम हैं जो अन्य टिप्पणीकारों के लिए डुप्लिकेट के रूप में पॉप अप कर रहे हैं? –

0

आप इसे mpdecimate वीडियो फ़िल्टर (setpts द्वारा सही समय के लिए फ़िल्टर) तक पहुंच सकते हैं।

-vf mpdecimate,setpts=N/FRAME_RATE/TB 

शायद यह अपने मूल आदेश के साथ काम नहीं करेगा और आप इसे पहले डुप्लिकेट फ्रेम के बिना वीडियो में अपने मूल वीडियो परिवर्तित करने के लिए उपयोग की आवश्यकता होगी::

ffmpeg.exe -i file.avi -vf mpdecimate,setpts=N/FRAME_RATE/TB outfile.avi 

और उसके बाद का उपयोग
इस विकल्प का प्रयोग करें छवियों के अनुक्रम के उत्पादन के लिए outfile.avi

(जरूरत के मामले में फिल्टर mpdecimate इसके विकल्प hi, lo और frac लेकिन मूलभूत मूल्यों अच्छा काम द्वारा समायोजित किया जा सकता है।)