2008-09-15 19 views
7

मुझे ऐसा कुछ बनाने की ज़रूरत है जो फ़ाइल के माध्यम से एक फ्लैश प्लेयर के लिए H.264 एन्कोडेड वीडियो की सेवा करना शुरू कर दे (वीडियो में उस बिंदु पर छोड़ने का समर्थन करने के लिए जो अभी तक buffered नहीं किया गया है)।फ्लैश छद्म स्ट्रीमिंग कैसे करें?

वर्तमान में, वीडियो एफएलवी कंटेनर प्रारूप में हैं, लेकिन ट्रांसकोडिंग एक विकल्प है। मैं किसी दिए गए बाइट ऑफ़सेट के लिए फ़ाइल हेडर और मेटाडेटा जानकारी को फिर से लिखने में कामयाब रहा। यह पुराने वीडियो के लिए काम करता है, लेकिन H.264 एन्कोडेड फ़ाइलों के लिए नहीं। मुझे संदेह है क्योंकि यह फ़ाइल के अंदर वीडियो टैग को भी बदला जाना है, जो व्यवहार्य नहीं है (यह बहुत अधिक प्रोसेसिंग पावर लेगा)।

ऐसा करने का "उचित" तरीका क्या है?

+0

दिलचस्प सवाल ... मैं आने वाले हफ्तों में भी ऐसा करने जा रहा हूं।क्या आप एफएलवी दृष्टिकोण के साथ होने वाली समस्याओं पर विस्तार कर सकते हैं? मैंने सोचा होगा कि यह ठीक काम करेगा ... –

उत्तर

2

फ्लैश प्लेयर एमओवीवी परमाणु डाउनलोड करने के बाद ही एच .264 वीडियो खेलना शुरू कर सकता है। मौजूदा छद्म-स्ट्रीमिंग प्रदाता सिर्फ आपको एक एफएलवी हेडर देते हैं - या तो फ़ाइल के पहले 13 बाइट्स या एक हार्डकोडेड - और फिर दिए गए ऑफसेट से फ़ाइल की सेवा करें। यदि आप एच .264 छद्म-स्ट्रीमर बनाना चाहते हैं, तो आपको इसे एफएलवी हेडर आउटपुट करने की आवश्यकता होगी, फिर एक एमओवीवी परमाणु, और फिर दिए गए ऑफसेट से बाकी फाइल की सेवा करनी होगी। यदि आप एक एफएलवी कंटेनर का उपयोग नहीं करते हैं, तो आपको एफएलवी हेडर की आवश्यकता नहीं होगी, लेकिन आपको अभी भी एमओवीवी परमाणु की आवश्यकता होगी।

दुर्भाग्यवश, मुझे नहीं लगता कि आप डिस्क पर फ़ाइल से MOOV परमाणु का उपयोग करने में सक्षम होंगे; इसमें जो जानकारी है वह आपके द्वारा प्रदान की जाने वाली फ़ाइल खंड के लिए सही नहीं होगी। तो आपको मौजूदा परमाणु को पार्स करना होगा और फ़ाइल में से एक को प्रस्तुत करना होगा जो फ़ाइल के प्रदत्त हिस्से के लिए उपयुक्त था।

यदि H.264 फ़ाइल में जटिल संरचनाएं हैं तो यह छद्म-स्ट्रीम के लिए और भी जटिल हो सकती है। अगर फ़ाइल को पार्स करना संभव नहीं है, तो मुझे डर है कि आप अपने मीडिया को छद्म-स्ट्रीम नहीं कर पाएंगे।

3

@yoavf - मुझे लगता है कि ओपी एफएलवी फाइलों के अंदर ऑन-डिमांड एच .264 स्ट्रीमिंग के सर्वर-साइड पहलुओं में रूचि रखता है। मौजूदा खिलाड़ियों का पुन: उपयोग उनके लिए अच्छा होगा, मुझे लगता है। या हो सकता है कि मेरी खुद की जरूरतें आ रही हैं? <: एस

yoavf की दूसरी कड़ी से, वहाँ Tinic Uro के What just happened to video on the web? के लिए एक और कड़ी है। एक प्रासंगिक उद्धरण:

पारंपरिक FLV फ़ाइल संरचना में H.264 धाराओं को स्थानांतरित करना संभव होगा? यह होगा, लेकिन हम दृढ़ता से सभी को नए मानक फ़ाइल प्रारूप को गले लगाने के लिए प्रोत्साहित करते हैं। H.264 स्ट्रीमिंग करते समय FLV संरचना के साथ कार्यात्मक सीमाएं हैं जिन्हें हम फ़ाइल प्रारूप के नवीनीकरण के बिना पार नहीं कर पाए। यह एक कारण है कि हम पारंपरिक एफएलवी फ़ाइल संरचना से दूर जा रहे हैं। विशेष रूप से अनुक्रम शीर्षलेख और एंडर्स के साथ काम करना एफएलवी धाराओं के साथ मुश्किल है।

तो, ऐसा लगता है एक कर सकते हैं या तो ffmpeg एन्कोडिंग के साथ टिंकर (यदि वह यह है कि आप अपने FLVs कैसे हो रही है, जैसे मैं कर रहा हूँ) या एक नए स्वरूप में मिल सकता है। हम्मम्म ....

+0

जैसा मैंने कहा, ट्रांसकोडिंग/रीमक्सिंग एक विकल्प है। लेकिन मैं सिर्फ एक फाइल काट नहीं सकता और इसे काम करने की उम्मीद करता हूं, afaik। मैं जानना चाहता हूं कि सबसे अच्छा तरीका क्या है। – Sietse

+0

मैं गैर-264 एफएलवी बस ठीक कर देता हूं! :) एफएलवी हेडर तैयार करें और यह पूरी तरह से काम करता है। –

+0

हां, गैर -264 मुझे काम मिल रहा है - यह आसान है। लेकिन 264 के साथ कोई भाग्य नहीं है। और आप सही हैं - मैं सर्वर की तरफ बात कर रहा हूं (और हम पहले से ही जेडब्लू का उपयोग कर रहे हैं;) – Sietse

0

दो चीजें आप कर सकते हैं:

1) lighttpd उपयोग करें और यह mp4 स्ट्रीमिंग का प्लग-इन जो मक्खी

2) एक keyframed FLV बनाने पर आवश्यक स्ट्रीमिंग कंटेनर पैदा करते हैं और एक छद्म का उपयोग करेंगे आपकी फ़ाइल स्ट्रीम करने के लिए स्ट्रीमिंग स्क्रिप्ट (जैसे XMOOV)।

यदि आपको एमपी 4/एएसी की आवश्यकता है तो आप उन्हें केवल एफएलवी कंटेनर के अंदर रख सकते हैं, जो एडोब की चग्रिन के लिए बहुत अधिक है, लेकिन यह काम करता है।

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