2013-02-25 49 views
9

मैं पूरी फ़ाइल को डाउनलोड किये बिना ओजीजी फ़ाइल की प्ले लम्बाई कैसे प्राप्त करूं? मुझे पता है कि यह सकारात्मक है क्योंकि संपूर्ण फ़ाइल डाउनलोड किए बिना, यूआरएल लोड करने के तुरंत बाद एचटीएमएल 5 टैग और वीएलसी पूरी प्ले लम्बाई दिखा सकता है।पूरी फ़ाइल को डाउनलोड किए बिना s3 से ogg ट्रैक की लंबाई प्राप्त करना

क्या कोई हेडर या कुछ मैं पढ़ सकता हूं। शायद बिटरेट भी, जिसे मैं फ़ाइल आकार से विभाजित कर सकता हूं ताकि अनुमानित प्ले लम्बाई मिल सके?

+0

ओजी फाइल पढ़ने पर आप कैसे योजना बना रहे हैं? इसके अलावा, आप फ़ाइल के साथ क्या करेंगे - बस जानकारी निकालने और प्रदर्शित करने के लिए? – Jesse

उत्तर

9

दुर्भाग्य से ऐसा करने का कोई तरीका नहीं दिखता है।

मोज़िला का Configuring servers for Ogg media बहुत ही निर्देशक है। मूल रूप से: - द्वारा भेजे गए वेब सर्वर अगर यह यह है

  1. छिपकली X-Content-Duration हैडर उपयोग करता है। यह आपके द्वारा उठाए गए HTML5 ऑडियो स्ट्रीमिंग उदाहरण को बताता है। अगर याद आ रही है, तो
  2. छिपकली अनुमान लंबाई नमूना दर (शीर्षक में) पर आधारित है और Content-length HTTP हेडर

नमूना दर पहचान हैडर में संग्रहीत है से फ़ाइल का आकार - पहला हेडर पैकेट। the specification अनुभाग "4.2 हैडर डीकोड और डीकोड सेटअप" पर जाएं

0

डेटा को डाउनलोड किए बिना यह संभव नहीं है। आप संबंधित कुंजी के एस 3 मेटाडेटा के हिस्से के रूप में संबंधित जानकारी निर्दिष्ट कर सकते हैं। तो वास्तव में डेटा डाउनलोड करने से पहले मेटाडेटा को आत्मनिरीक्षण में लिख सकते हैं।

+2

यह सकारात्मक होना चाहिए। एचटीएमएल 5 '

1

यह संभव है। ऐसा करने का तरीका फ़ाइल के अंत को लाने के लिए HTTP range requests का उपयोग करना है, अंतिम ओग पृष्ठ ढूंढें, और उस से टाइमस्टैम्प निकालें। यह माना जाता है कि फ़ाइल में संगत धाराएं (यानी कोई श्रृंखला नहीं है) जिसमें सभी की समान लंबाई होती है, और स्ट्रीम समय 0 से शुरू होता है (अन्यथा, आपको स्ट्रीम की शुरुआत को डीकोड करना चाहिए और अंतिम टाइमस्टैम्प से उस टाइमस्टैम्प को घटा देना चाहिए) । ओग पेज granulepos फ़ील्ड से टाइमस्टैम्प को डीकोड करना कोडेक-विशिष्ट है (उदाहरण के लिए वोर्बीस के लिए इसे कई नमूने के रूप में व्यक्त किया जाता है)।

वैकल्पिक रूप से, यदि आपकी ओजी फ़ाइल में Ogg Skeleton मेटाडेटा है, तो आप फ़ाइल की अवधि निर्धारित करने के लिए सीधे इसे पढ़ सकते हैं।