विचार करने के लिए दो फ्रेम दर हैं: इनपुट और आउटपुट।
डिफ़ॉल्ट रूप से इनपुट फ्रेम दर 25 है, और आउटपुट इनपुट के रूप में उसी फ्रेम दर का उपयोग करेगा जब तक कि आप इसे अन्यथा नहीं बताते।
इनपुट और आउटपुट के लिए समान फ्रेम दर
यदि आप इनपुट और आउटपुट को एक ही फ्रेम दर पर रखना चाहते हैं , तो बस इनपुट फ्रेम दर प्रदान करें। यह उदाहरण 30000/1001 (NTSC वीडियो) की एक फ्रेम दर निर्धारित करेगा:
ffmpeg -framerate 30000/1001 -i input output.mp4
वैकल्पिक रूप से, इस उदाहरण में, आप ntsc
इसके बजाय उपयोग कर सकते हैं 30000/1001
, लेकिन इसका उपयोग न करें 29.97
क्योंकि यह सटीक या सही नहीं है। अन्य फ्रेम दर उपनाम देखें ।
क्योंकि डिफ़ॉल्ट इनपुट फ्रेम दर 25 है, और यदि आप केवल आउटपुट फ्रेम दर निर्धारित करते हैं, तो क्षतिपूर्ति करने के लिए फ़्रेम को गिरा दिया जाएगा या दोहराया जाएगा। यही कारण है कि इस स्थिति में इनपुट फ्रेम दर निर्धारित है।
इनपुट और आउटपुट के लिए अलग फ्रेम दर
कभी-कभी आप चाहते हैं कि इनपुट फ्रेम दर और आउटपुट फ्रेम दर अलग-अलग हो। उदाहरण के लिए, आप फ़्रेम को एक निश्चित दर पर इनपुट करना चाहते हैं, और फिर फ़्रेम को डुप्लिकेट या ड्रॉप कर सकते हैं ताकि आउटपुट में एक अलग फ्रेम दर हो। आप अपने आउटपुट स्वरूप कंटेनर, अपने खिलाड़ी और / या अपने डिवाइस के साथ संगतता समस्याओं के कारण ऐसा करना चाह सकते हैं:
ffmpeg -framerate 10 -i input -r 25 output.mp4
इस उदाहरण में फ़्रेमों को 10 से 25 तक जाने के लिए डुप्लिकेट किया जाएगा। कंसोल आउटपुट आपको बताएगा कि फ़्रेम गिराए जा रहे हैं या डुप्लिकेट किए जा रहे हैं।
छवि फ़ाइल demuxer का उपयोग करता है -framerate
, उत्पादन फ्रेम दर का उपयोग कर सेट कर दिया जाता है, जबकि -r
।
आपको -pix_fmt yuv420p
कुछ परिस्थितियों में विकल्प जोड़ना पड़ सकता है यदि आप H.264 वीडियो ffmpeg
आउटपुट कर रहे हैं ( कंसोल आउटपुट आपको चेतावनी देगा यदि आपको आवश्यकता है तो)। यह एक क्रोमा सबसम्पलिंग योजना का उपयोग करेगा जो सभी खिलाड़ियों के अनुकूल है।