9

से ffmpeg का उपयोग करके दृश्य परिवर्तन/शॉट पहचान/छवि निष्कर्षण दृश्य वीडियो मैं वीडियो के लिए प्रतिनिधि फ्रेम प्राप्त करने की कोशिश कर रहा हूं, ताकि वीडियो में दिखाई देने वाले अनावश्यक फ्रेम को निकालने के लिए। फ्रेम का उपयोग करने के लिए मैं यही उपयोग करता हूं।वीडियो

./ffmpeg -i video.mp4 -vf select="eq(pict_type\,PICT_TYPE_I)" -vsync 2 -s 320x240 thumb-%02d.png

मैं भी कोशिश की है

./ffmpeg -i video.mp4 -f image2 -vf "select=gt(scene\,.4)" -vsync vfr thumb%04d.png

इस में प्रमुख मुद्दा कलंक है। अगर मैं बस हर 5 सेकंड में फ्रेम का नमूना देता हूं, तो मुझे कोई धुंध दिखाई नहीं देता है, हालांकि उपर्युक्त दो आदेशों का उपयोग करके मुझे बहुत अधिक धुंध मिलती है।

वीडियो यहां पाया जा सकता, http://www.cs.umd.edu/~bharat/video.mp4

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

./ffmpeg -i video.mp4 -r 1/10 filename%03d.jpg

आउटपुट का उपयोग कर सामान्य नमूना: sampling output

आउटपुट का उपयोग कर आउटपुट: select output

हालांकि, कुछ वीडियो के लिए सामान्य नमूना खराब हो सकता है, और अनावश्यक फ्रेम बना सकता है। क्या कोई तरीका है कि मैं ffmpeg में कुछ विकल्प का उपयोग कर सकता हूं और इस धुंध के बिना फ्रेम प्राप्त कर सकता हूं? यदि सामान्य नमूनाकरण अच्छे फ्रेम प्राप्त कर सकता है, तो धुंध के बिना आसपास के फ्रेम होना चाहिए। मैंने ffmpeg में दृश्यकट जैसे विकल्पों को देखा है, हालांकि मैं इस एप्लिकेशन के लिए उनका उपयोग करने से परिचित नहीं हूं।

+0

यह परिणाम नियमित फ्रेम नमूनाकरण के साथ अपेक्षित है। क्या इसे जरूरी है कि 'ffmpeg' होना चाहिए? बहुत आसानी से उपलब्ध शॉट पहचान कार्यान्वयन उपलब्ध हैं। – bjou

+0

जरूरी नहीं है, कुछ भी करेगा, मुझे सिर्फ धुंधले फ्रेमों से छुटकारा पाने की आवश्यकता है – Bharat

उत्तर

2

मैं सुझाव देता हूं कि अन्य स्वतंत्र रूप से उपलब्ध शॉट पहचान कार्यान्वयन पर भी नज़र डालें। उदाहरण के लिए, जोहान Mathe के Shotdetect साथ 47 के एक कस्टम सीमा पैदावार निम्न परिणाम (हर शॉट के पहले फ्रेम): Shot Detection with jmathe's Shotdetect

हालांकि, अपने प्रश्न वीडियो स्थिरीकरण की समस्या से निपटने के लिए अधिक की तुलना में यह दृश्य करता है लगता है परिवर्तन या शॉट पहचान। जो आप ऊपर और साथ ही ओपी में देख रहे धुंध को वीडियो के निहित "कलाकृतियों" हैं और वीडियो को काट या नमूना देने के लिए उपयोग किए जाने वाले एल्गोरिदम के कारण नहीं हैं। यदि आप गति की मात्रा को कम करना चाहते हैं तो आपको this post में देखना चाहिए और OpenCV's Video Stabilization मॉड्यूल को देखना चाहिए। this और this सहित इस चुनौती को संबोधित करने में बहुत सारे शोध भी हैं।

+0

लिंक के लिए धन्यवाद, मैं समझता हूं कि वीडियो में स्वाभाविक रूप से मौजूद धुंध है, यह आश्चर्यजनक था कि ffmpeg केवल जब आप उपयोग करते हैं तो धुंधले फ्रेम का चयन कर रहे थे चयन विकल्प, आपके परिणाम बेहतर प्रतीत होते हैं, शायद ffmpeg द्वारा चुने गए फ्रेम में अधिकतम भिन्नता है। – Bharat

+0

मुझे यकीन नहीं है कि "अधिकतम विविधता" से आपका क्या मतलब है, लेकिन आप यह भी प्रयोग कर सकते हैं कि आप किस फ्रेम का चयन करते हैं। आपके द्वारा दिया गया आदेश I-Frame का चयन करता है, लेकिन आप निम्न में से कोई भी चुन सकते हैं: 'I, P, B, S, SI, SP, BI'। – bjou

+0

मेरा मतलब था कि बहुत ही धुंधले फ्रेम सामान्य फ्रेम से अलग दिखेंगे और ffmpeg इसे शॉट में बदलाव के रूप में पहचान सकता है, यह देखना दिलचस्प होगा कि पी, बी फ्रेम क्या देते हैं, धन्यवाद, मुझे नहीं पता था कि हम अन्य फ्रेम भी चुन सकते हैं ।अगर मुझे सही याद है तो कई पी, बी फ्रेम होना चाहिए, यह कैसे पता चलेगा कि कौन सा पी/बी फ्रेम – Bharat