2015-08-01 6 views
10

मैं बाहर काम कर रहा सबसे अच्छा तरीका क्या निम्न करने के लिए होने जा रहा है की प्रक्रिया में हूँ 4MB-50MB आकार में) है, जो मैं एक वेब पोर्टल के माध्यम से उपलब्ध कराना चाहते हैं। मेरी पहली सोचा वेब एपीआई के माध्यम से फ़ाइल स्ट्रीम करने के लिए किया गया था, तो मैं नीचे दिए गए लिंक पाया: एक नमूना परियोजना को लागू करने के बादस्ट्रीम वीडियो सामग्री 2

http://www.strathweb.com/2013/01/asynchronously-streaming-video-with-asp-net-web-api/

, मुझे एहसास हुआ कि उदाहरण के जाल एपीआई 1, और नहीं जाल एपीआई पर आधारित था 2.1, जो मैं उपयोग कर रहा हूं। कुछ और शोध करने के बाद, मुझे वेबएपीआई 2.1 के साथ संकलित करने के लिए कोड मिला। मैं तो एहसास हुआ कि अगर मैं स्ट्रीमिंग मैं MP4 फ़ाइलों का उपयोग नहीं कर सकते हैं करना चाहते हैं, वहाँ इस के पीछे तकनीकी विस्तार भी पर्याप्त मात्रा में है, इसलिए यहां धागा है कि:

Best approach to real time http streaming to HTML5 video client

यह इस काम करने के लिए मैं की जरूरत है लगता है WebM जैसी कुछ करने के लिए अपने MP4 फ़ाइलों एन्कोड करने के लिए है, लेकिन यह बहुत ज्यादा समय लेने के लिए जा रहा है। Icecast (http://icecast.org/) है, जो एक स्ट्रीमिंग सर्वर है, लेकिन मैं इसे अभी तक बाहर प्रयास नहीं किया है, फिर से नहीं यकीन है कि अगर यह मैं क्या करने की जरूरत है।

अब मैं इसके बारे में लगता है कि, मैं वास्तव में लाइव स्ट्रीमिंग की जरूरत नहीं है, मैं सिर्फ ग्राहक, अपने ब्राउज़र के माध्यम से वीडियो फ़ाइल खेलने के लिए शायद HTML5 वीडियो तत्व का उपयोग की अनुमति देनी होगी? बात यह है कि अपने आवेदन आईओएस पर काम करने के रूप में अच्छी तरह की जरूरत है, इसलिए मुझे लगता है इसका मतलब है कि मैं भी FLV करने के लिए अपने MP4 सांकेतिक शब्दों में बदलना कर सकते हैं और बस फ्लैश का उपयोग करें।

मुझे वास्तव में सभी वीडियो क्लिप को वेब पेज पर थंबनेल के रूप में रखना है, और यदि ग्राहक एक पर क्लिक करता है, तो यह पूरी फ़ाइल को डाउनलोड किए बिना ASAP खेलना शुरू कर देता है। Imdb.com पर "वॉच ट्रेलर" सुविधा के बारे में सोचें। बस एक वीडियो फ़ाइल चलाएं, वास्तव में जो मैं चाहता हूं। मुझे लाइव स्ट्रीमिंग की आवश्यकता नहीं है, जो मुझे लगता है कि वेबएम के लिए है? फिर, यकीन नहीं है।

उत्तर

13

दो बातें:

  1. अपने HTML में एक video element का उपयोग करें (इस ब्राउज़र और आईओएस में काम करता है):

    <video src="http://yoursite.com/api/Media/GetVideo?videoId=42" /> 
    
  2. समर्थन आप वेब एपीआई कोड में 206 PARTIAL CONTENT अनुरोध। स्ट्रीमिंग और आईओएस समर्थन दोनों के लिए यह महत्वपूर्ण है, और आपके द्वारा पोस्ट किए गए थ्रेड में इसका उल्लेख किया गया है।

बस इस उदाहरण का पालन करें:

http://blogs.msdn.com/b/webdev/archive/2012/11/23/asp-net-web-api-and-http-byte-range-support.aspx

संक्षेप में:

if (Request.Headers.Range != null) 
{ 
    // Return part of the video 
    HttpResponseMessage partialResponse = Request.CreateResponse(HttpStatusCode.PartialContent); 
    partialResponse.Content = new ByteRangeStreamContent(stream, Request.Headers.Range, mediaType); 
    return partialResponse; 
} 
else 
{ 
    // Return complete video 
    HttpResponseMessage fullResponse = Request.CreateResponse(HttpStatusCode.OK); 
    fullResponse.Content = new StreamContent(stream); 
    fullResponse.Content.Headers.ContentType = mediaType; 
    return fullResponse; 
} 
-1

प्लेस एक वेब सर्वर पर स्थिर वीडियो फ़ाइलों और उन्हें एक वीडियो प्लेयर में संदर्भ। आप एचटीएमएल के मानक प्लेयर (< वीडियो src = "http: //location/of/file.mp4" >) का उपयोग कर सकते हैं या कुछ फैनसीयर के लिए जा सकते हैं - बस "एचटीएमएल वीडियो प्लेयर" के लिए Google।

यह सुनिश्चित करने के लिए कि वीडियो फ़ाइलों को खेलने से पहले पूरी तरह से डाउनलोड करने की आवश्यकता नहीं है, उन्हें पहले से ही qt-faststart के माध्यम से चलाएं।

+0

यकीन है कि इस दृष्टिकोण लेकिन धन्यवाद के बारे में नहीं – FaNIX

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