कई "मानक" फ्रेम दर हैं, लेकिन कई ऐसे हैं जो मनमाने फ्रैमरेट्स का समर्थन करना विशेष रूप से विशिष्ट लोगों का समर्थन करने की तुलना में आसान है। यह सॉफ्टवेयर खिलाड़ियों के लिए विशेष रूप से सच है, जैसे VLC।
VARIABLE एफपीएस के लिए अधिक से अधिक समर्थन मौजूद है। (VFR, वैरिएबल फ्रेम रेट)। यह वह जगह है जहाँ एक ही वीडियो में फ़्रेम के बीच का अंतराल स्थिर नहीं है। कई वीडियो कंटेनर फ़ाइल प्रारूप (जैसे मट्रोस्का .mkv
) या एमपीईजी -4 ( .mp4
ऐप्पल से निकटता से संबंधित .mov
) भी एक एफपीएस नंबर को स्टोर नहीं करते हैं, बल्कि एक टाइम बेस (जैसे 1 सेकंड का 30 वां), और फिर प्रत्येक फ्रेम उस समय आधार के कई के रूप में एक टाइमस्टैम्प है। यह सिर्फ इतना होता है कि प्रत्येक फ्रेम के बीच का अंतराल एक या एक सीएफआर (निरंतर फ्रेम दर) वीडियो में समय आधार की इकाइयों की एक छोटी पूर्णांक संख्या होती है।
निकट-डुप्लिकेट फ़्रेम के साथ सुरक्षा-कैमरा फुटेज वीएफआर के लिए एक स्पष्ट उपयोग-मामला होगा। यहां तक कि अगर यह एक साधारण वीडियो कोडेक कि लौकिक अतिरेक (अंतर (पी और बी) फ्रेम के साथ) का अच्छा फायदा नहीं उठाता है के साथ संपीड़ित किया जा रहा है) भी। (आस ffmpeg -vf mpdecimate
-पास के फ़्रेमों को छोड़ने के लिए उसके साथ खेलें । -vsync 2
अगर mp4 के लिए आउटपुट का उपयोग करें , क्योंकि किसी कारण से यह उस muxer के लिए डिफ़ॉल्ट नहीं है, लेकिन यह mkv के लिए है।)
एक और मामला आधुनिक स्मार्टफोन का है। उदाहरण के लिए, मेरे भाई का Moto G (2nd gen) VFR वीडियो रिकॉर्ड करता है। यह फ्रेम दर को कम करता है जब सेंसर को अधिक प्रकाश की आवश्यकता होती है। फोन के सॉफ्टवेयर द्वारा बनाए गए एक mp4 पर mediainfo चलाने से कुछ आउटपुट दर्ज किए गए हैं:
Bit rate : 9 999 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Rotation : 90°
Frame rate mode : Variable
Frame rate : 16.587 fps
Minimum frame rate : 14.985 fps
Maximum frame rate : 30.030 fps
एक एकल VFR वीडियो स्ट्रीम का प्लेबैक कठिन नहीं है। सॉफ्टवेयर बस अगले फ्रेम को प्रदर्शित करने के लिए तैयार हो जाता है, तब तक सोता है जब तक इसे प्रदर्शित नहीं किया जाना चाहिए, फिर उठता है और इसे प्रदर्शित करता है।
जब आप इस तथ्य को ध्यान में रखते हैं तो चीजें कुछ अधिक जटिल हो जाती हैं, जब मानव केवल वीडियो फ्रेम देख सकता है, जब कोई मॉनिटर उन्हें प्रदर्शित करता है। वीएफआर मॉनिटर मौजूद हैं, लेकिन अभी भी दुर्लभ हैं। (जी सिंक सिंक के लिए गूगल)।
वीडियो को बदसूरत फाड़ के मॉनिटर परिणामों को स्कैन करते समय प्रदर्शित छवि को बदलना (आमतौर पर vsync बंद के साथ एक गेम खेलते समय देखा जाता है)। यह 50 या 60 हर्ट्ज पर प्रदर्शित छवि को बदलने के लिए एक खिलाड़ी को सीमित करता है। (CRTs एक सीमा के भीतर मनमाने ढंग से vrefresh दरों का समर्थन करते हैं, लेकिन यह सभी टाइमिंग को सही करने के साथ मोड्स को पकाने के लिए जटिल है, इसलिए अधिकांश लोग बस कुछ निश्चित रिफ्रेश दरों का उपयोग करते हैं। और अब लोगों के पास LCD हैं जो केवल एक निश्चित रिफ्रेश रेट का समर्थन करते हैं। freesync मॉनिटर वैसे भी अधिक व्यापक हैं। मैं वास्तव में इसके लिए उत्सुक हूं। :)
तो वीडियो फ्रेम दरों के साथ, जो मल्टीपल या मॉनिटर रिफ्रेश रेट का कारक नहीं हैं, कुछ फ्रेम 3 मॉनिटर रिफ्रेश के लिए प्रदर्शित होंगे, और कुछ 2 के लिए, उदाहरण के लिए, भले ही वीडियो लगातार 25FPS पर हो (60Hz मॉनिटर पर)।
जब आप कई क्लिप के साथ काम करना चाहते हैं और उनके बीच, या पिक्चर-इन-पिक्चर, या कई अन्य प्रभाव पड़ते हैं, तो चीजें अधिक जटिल हो जाती हैं। यदि आप यह मान सकते हैं कि सभी क्लिप एक ही समय में एक नया फ्रेम है, तो वीडियो संपादन सॉफ्टवेयर लिखना बहुत आसान है। (वे क्लिप फ्रेम को पूरे फ्रेम में स्नैप करने के लिए मजबूर करते हैं)।
यही कारण है कि एनएलई (जैसे केड्लिव या पिटिवी, यादृच्छिक फ्री सॉफ़्टवेयर उदाहरण लेने के लिए), आपको एक निश्चित एफपीएस के लिए मजबूर करने की संभावना है, और उन्हें उस फ्रेम दर से मिलान करने के लिए आपके क्लिप से ड्रॉप / डुप्लिकेट फ्रेम करें। आपके द्वारा चुना गया सीएफआर मनमाना हो सकता है, लेकिन इसे आम तौर पर पूरे "प्रोजेक्ट" के लिए स्थिर होना पड़ता है।
(क्या कोई NLE पूरी तरह से VFR क्लिप के साथ काम करता है, और उस स्थिति में VFR आउटपुट का उत्पादन करता है?)
इसलिए सारांश में, एक बार जब हमारे पास चर-सिंक मॉनिटर और OSes होते हैं, तो हमें वापस रखने वाली एकमात्र चीज वीडियो संपादन होगी, मुझे लगता है। और प्रसारण, क्योंकि जाहिर है सीएफआर उस के लिए भी एक बड़ी बात है?
यदि आप सोच रहे हैं, तो 29.970 (वास्तव में 30000/1001) और 23.976 (वास्तव में 24000/1001, दूरसंचार से) परेशान नॉन-पूर्णांक फ्रेम दर रंग NTSC की गलती है। 1.001 के लिए खोज । यदि वे केवल कुछ बी एंड डब्ल्यू सेटों को जोखिम में डालने के लिए तैयार होते हैं, तो ऑडियो सबकेरियर के लिए अतिरिक्त 0.1% आवृत्ति को संभालने में सक्षम नहीं होने पर, दुनिया इस बकवास को बख्श देती। (मुझे लगता है कि मैंने एक और लेख कहीं और देखा, जिससे यह और अधिक ध्वनि करता था जैसे कई सेट ठीक हो जाते थे, लेकिन वे सही कंप्रेशर्स के बारे में निश्चित नहीं थे। विकिपीडिया यह ध्वनि करता है जैसे कोई सेट 0.1% उच्च ऑडियो उपकारक नहीं होगा। IDK तथ्यों।)
हालांकि, प्रसारण की दरें कम प्रसारण के कम पापों में से एक हैं। यह वास्तव में इंटरलेसिंग है कि आधुनिक (सभी पिक्सेल एक बार में जलाए गए) स्क्रीन पर वीडियो की गुणवत्ता का प्रतिबंध है, और यह नहीं बदला होगा। मुझे अभी भी पता नहीं है कि एचडीटीवी के लिए इंटरलाकिंग को क्यों रखा गया था। क्यों 1080i60 को कभी परिभाषित किया गया था, खेल और सामान के लिए समान अस्थायी समाधान प्राप्त करने के लिए 720p60 का उपयोग करने के बजाय? यह 1920x540p60 के समान है, लेकिन अजीब और यहां तक कि खेतों के बीच एक बेवकूफ ऊर्ध्वाधर ऑफसेट के साथ प्राप्त करने के लिए प्राप्त अंत पर बहुत अधिक गणना की आवश्यकता होती है ताकि यह भयानक न दिखे।
संपादित करें:
आपके उपयोग-मामले के लिए, मैं बिल्कुल देशी FPS पर संग्रह करने का सुझाव दूंगा। फ्रेम गिराकर किसी भी जानकारी को फेंक मत करो। डुप्लिकेट फ़्रेम न करें और अपनी फ़ाइलों को बड़ा करें (या अपने h.264 एनकोडर को अधिक समय दें डुप्लिकेट को नोट करें और स्किप मैक्रोब्लॉक से भरा एक फ्रेम आउटपुट करें जो केवल पूरे फ्रेम के लिए 20 बाइट्स लेता है)।
भविष्य में जब हम उम्मीद करते हैं कि सभी में फ़्रीसिंक डिस्प्ले होंगे जो किसी भी फ्रैमरेट को खेल सकते हैं, तो आप अपने पुलअप को 24 एफपीएस में बदलना चाहते हैं ताकि आपका वीडियो अधिक आसानी से चले! या अगर फ़्रीसिंक किसी तरह से पकड़ में नहीं आता है, या एलसीडी के बाद आने वाला डिस्प्ले सीएफआर है, तो दर रूपांतरण संभवत: वैसे भी प्लेबैक पर सबसे अच्छा किया जाता है। यह 24fps की तरह नहीं है यहां तक कि एक 60Hz मॉनिटर पर पूरी तरह से खेलता है। (मैं नेत्रहीन इस तथ्य पर ध्यान नहीं देता कि कुछ फ्रेम 3 * 1/60 वें के लिए प्रदर्शित किए जाते हैं जबकि कुछ 2 * 1/60 वें के लिए प्रदर्शित किए जाते हैं, लेकिन यह सच है)।
अगर आपको क्विकटाइम की समस्या है, तो IDK। हो सकता है कि हैंडब्रेक h.264 बिटस्ट्रीम में सही फ्रैमरेट सेट के साथ-साथ कंटेनर के साथ फाइल बना रहा हो। (हाँ, h.264 हेडर जाहिरा तौर पर एक फ्रेम दर को स्टोर कर सकते हैं, कंटेनर जो कहते हैं उससे अलग है। डॉक्स देखें mkvmerge --fix-bitstream-timing-information
। और --default-duration 16fps
mkv फ़ाइल बनाने के लिए इसके साथ प्रयोग करने का प्रयास करें । फिर mux को वापस mp4 करें और देखें कि क्या क्विकटाइम ठीक करता है? ) या शायद पहली जगह में mp4 टूल के साथ ऐसा करने का एक तरीका है। उदाहरण के लिए देखें: /ubuntu/370692/how-to-change-the-framerate-of-a-video-without-reencoding
मैं गारंटी दे सकता हूं कि मनमाने ढंग से फ्रेम दर mp4 वैध है, और चर framerate mp4 भी मान्य है। अगर क्विकटाइम इसे गलत खेलता है, तो यह क्विकटाइम की गलती हो सकती है। या शायद फ़ाइल को गलत बनाने के लिए हैंडब्रेक की गलती। मैं आमतौर पर सीधे ffmpeg का उपयोग करता हूं, क्योंकि मैं एक कमांड लाइन निंजा हूं।