2008-10-13 5 views
5

मुझे कई उपयोगिताओं के बारे में पता है जो मुझे एमपी 3 फ़ाइल के बिटरेट बता सकते हैं, लेकिन मैंने कभी ऐसा नहीं देखा है जो मुझे बता सकता है कि एमपी 3 फ़ाइल वीबीआर है (परिवर्तनीय बिट दर - बिट दर फ़ाइल के भीतर उतार चढ़ाव) या एक सीबीआर (निरंतर बिट दर - बिट दर फ़ाइल के भीतर ही रहता है)। मेरा अनुमान है कि अधिकांश कार्यक्रम इसे खोजने में रुचि नहीं रखते हैं क्योंकि इसमें कुछ हद तक फ़ाइल का विश्लेषण करना शामिल है, यह देखने के लिए कि क्या बिटरेट बदलता है, जो गति से दूर होता है।मैं प्रोग्रामेटिक रूप से यह निर्धारित कैसे कर सकता हूं कि एमपी 3 फ़ाइल सीबीआर या वीबीआर है या नहीं? (सी #)

तो, उपयोगिता खोजने के बदले में, मैं एक लिखना चाहता हूं - तो मैं प्रोग्रामेटिक रूप से यह निर्धारित कैसे कर सकता हूं कि एमपी 3 फ़ाइल वीबीआर या सीबीआर है या नहीं? मेरे पास यह जानने के लिए लगभग 15,000 फाइलें हैं, इसलिए मुझे प्रक्रिया को स्वचालित करने की आवश्यकता है।

उत्तर

7

एमपी 3 फ़ाइलें अनिवार्य रूप से तथाकथित फ्रेम के निर्माण कर रहे हैं। प्रत्येक फ्रेम में एक छोटा हेडर होता है जो फ्रेम के बारे में जानकारी संग्रहीत करता है। हेडर भी स्टोर करता है कि फ्रेम के लिए कौन सा बिटरेट इस्तेमाल किया गया था। सीबीआर फाइलों में, सभी फ्रेम समान बिटरेट का उपयोग करते हैं और इसलिए प्रत्येक शीर्षलेख में एक ही बिटरेट जानकारी होती है।

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

एमपी 3 प्रारूप का पूरा विवरण यहाँ है: http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm

2

चेक इस MP3Header Class, यह एक तरीका है अगर एमपी 3 फ़ाइल VBR है, और सभी एमपी 3 हेडर सूचना है कि आपको बताता है ...

... 
boolVBitRate = LoadVBRHeader(bytVBitRate); 
... 
+4

विधि इस वर्ग अगर इसकी एक VBR फ़ाइल निर्धारित करने के लिए उपयोग करता है काफी सीमित है। यह जांचता है कि क्या फ़ाइल के (वैकल्पिक) ID3v2 शीर्षलेख के बाद यह "Xing" स्ट्रिंग पाता है, लेकिन यह किसी भी मानक द्वारा वर्णित नहीं है और ऐसे एन्कोडर्स हैं जो "Xing" नहीं डालते हैं, भले ही यह एक VBR फ़ाइल हो । –

संबंधित मुद्दे

 संबंधित मुद्दे