2011-02-12 9 views
5

वर्तमान में सभी ब्राउज़र समय-समय पर डिवाइसेज के रूप में HTML5 <video> फ्रेम-एपीआई एपीआई लागू करते हैं। उदा। 10fps के वीडियो में, फ़्रेम # 10time=1.0 सेकेंड है। इस प्रकार, यदि आप सटीक रूप से फ्रेम-खोज करने में सक्षम होना चाहते हैं, तो यानी अग्रिम एक फ्रेम आगे बढ़ने के लिए, आपको time=1.1 सेकंड पर जाना होगा। यह फ्रेम-टू-टाइम गणना वीडियो की फ्रेम दर (एफपीएस) को जानकर किया जाता है।सटीक फ्रेम-मांग के लिए HTML5 <video> के लिए ब्राउज़र फ्रेम दर (एफपीएस) की गणना कैसे करते हैं?

हालांकि, मुझे नहीं पता कि ब्राउज़र फ्रेम दर की गणना कैसे करते हैं।

वे या तो fps संपत्ति के लिए वीडियो फ़ाइल की कंटेनर जानकारी पढ़ते हैं, या इसे स्वयं पर गणना करते हैं।

एफएफएमपीईजी का उपयोग करके, आप इसे FFmpeg -i video.avi से प्राप्त कर सकते हैं जो Stream #0.0: Video: libvpx, yuv420p, 512x288, PAR 1:1 DAR 16:9, 25 fps, 25 tbr, 1k tbn, 25 tbc देता है, और आप वहां fps देख सकते हैं।

सवाल यह है: क्या यह सही है? यदि नहीं, तो क्या इसकी गणना करने का एक सटीक तरीका है? मैं सिर्फ ब्राउज़र की नकल करना चाहता हूं ताकि मैं सटीक रूप से फ्रेम-खोज कर सकूं।

+0

क्या आप matadata में फ्रेम दर को खोजने के लिए कैसे प्रबंधित करते हैं? –

उत्तर

7

वीडियो का फ़्रेमेट की गणना नहीं है, यह वीडियो के मेटाडेटा के हिस्से के रूप में संग्रहीत है। वीडियो के शीर्षलेख में केवल एक फ़ील्ड है जो कहता है कि प्रति सेकेंड कितने फ्रेम (या संभवतः प्रत्येक फ्रेम दिखाए जाने की मात्रा)। यह वही तरीका है जो ब्राउज़र वीडियो के संकल्प को जानता है।

+0

और क्या होगा अगर मेटाडेटा एफपीएस गलत/असंगत है? यानी ऐसे मामले हो सकते हैं जहां एफपीएस वीडियो भर में भिन्न है, नहीं? –

+1

मेटाडेटा "गलत" नहीं हो सकता है। यदि फ़्रेमेट बहुत अधिक है, तो वीडियो जितना तेज़ होगा उतना तेज़ खेलेंगे। मैंने कभी एक वीडियो प्रारूप के बारे में नहीं सुना है जो एफपीएस को अलग-अलग करने की अनुमति देता है। – Gabe

+4

वास्तव में, मेटाडेटा बिल्कुल गलत हो सकता है, यदि कंटेनर में fps मान स्ट्रीम के fps से कुछ अलग है। इसके अलावा, ऐसी कोई चीज है: इसे परिवर्तनीय फ्रेम दर या वीएफआर कहा जाता है। –