2012-09-13 30 views
5

मेरे पास एक एमवीसी 4 एप्लीकेशन है जिसमें केवल एमपी 4 प्रारूप के एज़ूर ब्लोब स्टोरेज से "वीडियो" दिखाने के लिए एक दृश्य है। वर्तमान में मैं वीडियो प्लेयर के रूप में MediaElment.js (या किसी भी विशिष्ट फ़्लैश प्लेयर) का उपयोग कर रहा हूं। मैं इन वीडियो को एक चिकनी स्ट्रीमिंग या प्रगतिशील डाउनलोड (अनुकूली स्ट्रीमिंग) विधि में कैसे चला सकता हूं। स्ट्रीमिंग का समर्थन करने के लिए मुझे एज़ूर में कॉन्फ़िगरेशन क्या सेट करना है? क्या ब्लॉब स्टोरेज में MP4 फ़ाइल अपलोड करने से पहले मुझे कुछ करना है?ब्लॉब स्टोरेज से चिकना स्ट्रीमिंग वीडियो

मैं इस लिंक http://msdn.microsoft.com/en-us/spazuretrainingcourse_spblobstorageazure.aspx और जहाँ तक मैं समझ गया, विंडोज Azure Blobs अपलोडर नीला और ग्राहक के रूप में Silverlight के लिए वीडियो फ़ाइलों को अपलोड किया जाता है के माध्यम से चले गए हैं। मेरे मामले में, वीडियो को एक अलग एप्लिकेशन से अपलोड किया गया है ताकि वीडियो फ़ाइल में हेरफेर संभव न हो। तो क्या बिना किसी बदलाव के स्ट्रीमिंग को लागू करने और चांदी के उपयोग के अलावा वीडियो प्लेयर में इसे चलाने का कोई तरीका है?

यदि अपलोड करते समय मैं मीडिया फ़ाइल बदल सकता हूं तो क्या कुछ भी संभव है?

धन्यवाद।

+0

जिज्ञासा से, क्या आपने विंडोज़ एज़ूर मीडिया सेवाओं में देखा है? WAMES ब्लॉब स्टोरेज से अनुकूली स्ट्रीमिंग का समर्थन करता है, और यहां तक ​​कि थोड़ा सा प्रयास के साथ वीडियो को चिकनी स्ट्रीमिंग प्रारूप में परिवर्तित करने का एक तरीका भी प्रदान करता है। – Rytmis

उत्तर

4

मैं लगभग बिल्कुल ऐसा कर रहा हूं, लेकिन अनुकूली स्ट्रीमिंग के बिना (मैं केवल 25 एमबी या छोटी वीडियो फ़ाइलों से निपट रहा हूं)। मैं अपने वेब पेज में फ्रंट एंड के लिए जेडब्लूप्लेयर का उपयोग कर रहा हूं, और वीडियो एज़ूर ब्लॉब स्टोरेज में है।

मैं प्री-बिल्ट विंडोज़ बाइनरी ffmpeg.exe का उपयोग कर रहा हूं, मैंने इसे Azure (इसे वर्कर रोल प्रोजेक्ट की जड़ में डाल दिया) पर अपलोड किया है, फिर मैं वीडियो फ़ाइलों को मालिश करने के लिए वर्कररोल में System.Diagnostics.Process का उपयोग करता हूं। आप अपने इच्छित विभिन्न गुणवत्ता संस्करण बनाने के लिए भी ऐसा ही कर सकते हैं।

तो, जब कोई उपयोगकर्ता वीडियो अपलोड करता है तो मेरा व्यवसाय तर्क परत एक Azure संदेश कतार में एक संदेश भेजती है, मेरी कार्यकर्ता भूमिका इसे चुनती है, वीडियो को Azure LocalStorage पर कॉपी करती है (लोकल स्टोरेज भौतिक डिस्क है जिसे आप अपने Azure प्रोजेक्ट में कॉन्फ़िगर कर सकते हैं सेटिंग्स फ़ाइल), फ़ाइल पर ffmpeg.exe चलाता है और फिर इसे वापस ब्लॉब स्टोरेज में रखता है।

+0

बहुत धन्यवाद। तो आपकी विधि के अनुसार, ब्लॉब स्टोरेज में वीडियो फ़ाइल अपलोड करते समय आप ffmpeg का उपयोग करके सामग्री स्ट्रीम करने के लिए मीडिया फ़ाइल को परिवर्तित कर रहे हैं और इस स्ट्रीम सामग्री को blob.Right में संग्रहीत कर रहे हैं? – Dennis

+0

काफी नहीं। ब्लॉब पर अपलोड करने के बाद, मैं एन्कोडिंग को बदलने के लिए ffmpeg का उपयोग करके वीडियो फ़ाइल को temp_folder पर कॉपी कर रहा हूं (लेकिन आप ffmpeg के साथ कई चीजें कर सकते हैं और मुझे संदेह है कि आप कमांड लाइन पर जो चाहते हैं उसे करने के लिए आप अभिव्यक्ति एन्कोडर के बजाय इसका उपयोग कर सकते हैं , आपके Azure इंस्टेंस पर सर्वर-साइड) फिर मैंने बदली हुई वीडियो फ़ाइल को ब्लॉब स्टोरेज में वापस रखा। –

+0

ठीक है। मैं आवश्यकतानुसार वीडियो फ़ाइल (एमपी 4) को एन्कोड करने के लिए एफएफएमपीईजी का उपयोग करने के लिए तैयार हूं। अब इसे एक खिलाड़ी को स्ट्रीम करने के लिए, क्या करने के लिए कदम हैं? यानी मुझे एक हैंडलर की तरह कुछ बनाने की ज़रूरत है जो मांग पर खिलाड़ी को वीडियो स्ट्रीम कर सकता है? मैं चाहता हूं कि वीडियो प्रगतिशील रूप से खेलना शुरू कर दे (पूरे वीडियो को डाउनलोड करने की प्रतीक्षा किए बिना)। क्या मुझे क्लाइंट साइड (प्लेयर) या सर्वर की तरफ कुछ भी सेट करने की ज़रूरत है? – Dennis