HTML5 वीडियो टैग के साथ स्थानीय (हार्ड-ड्राइव) वीडियो फ़ाइल चलाएं?


89

मैं निम्नलिखित हासिल करना चाहता हूं।

<video src="file:///Users/username/folder/video.webm">
</video>

आशय यह है कि उपयोगकर्ता अपनी हार्ड ड्राइव से किसी फ़ाइल का चयन कर सकेगा।

और अपलोड न करने का कारण निश्चित रूप से ट्रांसमिशन लागत और भंडारण कोटा है। फ़ाइल को सहेजने का कोई कारण नहीं होगा।

क्या यह संभव है?


यह निश्चित रूप से एक फ़ाइल इनपुट के साथ काम नहीं करेगा। यह HTML5 के साथ काम कर सकता है, लेकिन मुझे नहीं लगता कि आप फ़ाइल अपलोड के लिए इसका लाभ उठा सकते हैं। आपका सबसे अच्छा दांव शायद क्रोम एक्सटेंशन करना होगा।
ब्रायन निकल

जवाबों:


241

स्थानीय वीडियो फ़ाइल चलाना संभव है।

<input type="file" accept="video/*"/>
<video controls autoplay></video>

जब कोई फ़ाइल inputतत्व के माध्यम से चुनी जाती है:

  1. 'परिवर्तन' घटना को निकाल दिया गया है
  2. FileList से पहली फ़ाइल ऑब्जेक्ट प्राप्त करेंinput.files
  3. ऑब्जेक्ट URL बनाएं जो फ़ाइल ऑब्जेक्ट को इंगित करता है
  4. ऑब्जेक्ट URL को video.srcप्रॉपर्टी पर सेट करें
  5. पीछे झुकें और देखें :)

http://jsfiddle.net/dsbonev/cCCZ2/embedded/result,js,html,css/


यह मेरे लिए क्रोम में एक मैक पर काम करता है। सफारी 6.1 के साथ काम नहीं करता
पैट्रिक कलन

1
ऐसा लगता है कि सफारी के साथ ज्ञात समस्याएं हैं: stackoverflow.com/questions/19088400/… और bugs.webkit.org/show_bug.cgi?id=101671
पैट्रिक कलन

उत्कृष्ट समाधान, यह विंडोज के लिए क्रोम पर भी काम करता है।
जेट टेलर टेलर

क्या किसी ने वीडियो के उपयुक्त विखंडू को पृष्ठ पर और बाहर करने का काम किया है ताकि बड़े वीडियो के लिए ब्राउज़र मेमोरी को न मारा जाए?
एरिक बलोच

पूर्वावलोकन करने में असमर्थ .Mov या .AVI फ़ाइलें यहाँ प्रश्न पूछा: stackoverflow.com/questions/32599806/…
mpsbhat

11

यह तभी संभव होगा जब HTML फ़ाइल को fileस्थानीय उपयोगकर्ता की हार्डडिस्क से प्रोटोकॉल के साथ लोड किया गया हो ।

यदि एचटीएमएल पेज एक सर्वर से एचटीटीपी द्वारा परोसा जाता है, तो आप प्रोटोकॉल के srcसाथ एक विशेषता में निर्दिष्ट करके किसी भी स्थानीय फाइल तक नहीं पहुंच सकते हैं file://क्योंकि इसका मतलब होगा कि आप उपयोगकर्ता के बिना किसी भी फाइल को उपयोगकर्ता के बिना एक्सेस कर सकते हैं, जो कि एक होगा भारी सुरक्षा जोखिम।

जैसा कि दिमितार बोनव ने कहा, आप एक फ़ाइल का उपयोग कर सकते हैं यदि उपयोगकर्ता अपने दम पर एक फ़ाइल चयनकर्ता का उपयोग करके इसका चयन करता है। उस कदम के बिना, यह सभी ब्राउज़रों द्वारा अच्छे कारणों के लिए निषिद्ध है। इस प्रकार, जबकि उनका जवाब कई लोगों के लिए उपयोगी साबित हो सकता है, यह मूल प्रश्न में कोड से आवश्यकता को कम करता है।


दिमित्रोव बोनेव का समाधान इस समाधान को गलत दिखाता है - आप इनपुट प्रकार = फ़ाइल के माध्यम से स्थानीय फ़ाइलों तक पहुंच सकते हैं।
जेट टेलर टेलर

1
ठीक है, उसका समाधान केवल तभी काम करता है जब आप उपयोगकर्ता को पहले फ़ाइल का चयन करने दें। आप अभी भी HTML स्रोत में फ़ाइल के लिए पथ का नाम नहीं दे सकते हैं (जैसा कि प्रश्न में कहा गया है) और इसे इस तरह से एक्सेस करें। इस प्रकार, उनका समाधान तकनीकी रूप से एक और प्रश्न के लिए है।
होल्गर जस्ट

vlc प्लेयर कंप्यूटर पर कोई भी फ़ाइल चला सकता है, लेकिन इसलिए इसमें सुरक्षा जोखिम भी है। यह हमारे हार्ड डिस्क से उनके सर्वर पर फाइल डाउनलोड कर सकता है, हमारे बिना यदि वे चाहें तो क्या नहीं कर सकते? तो फिर कोई सुरक्षा जोखिम क्यों नहीं है? सबसे खराब स्थिति में उन्हें उपयोगकर्ता को मैन्युअल रूप से स्वीकार करने की अनुमति दी जा सकती है यदि वह ब्राउज़र को फ़ाइल चलाने की अनुमति देता है। क्योंकि ऐसी परिस्थितियां हैं जहां उपयोगकर्ता पृष्ठ पर 100% भरोसा करते हैं, क्योंकि उपयोगकर्ता वे हैं जो वेब निर्माता के रूप में एक ही कंपनी में काम करते हैं।
डेरियस .V

6

थोड़ी देर पहले इस समस्या के लिए भाग गया। वेबसाइट सुरक्षा सेटिंग्स के कारण स्थानीय पीसी पर वीडियो फ़ाइल तक नहीं पहुंच सकती है (वास्तव में) केवल जिस तरह से मैं इसे प्राप्त कर सकता था वह स्थानीय पीसी (सर्वर 2 गो) पर एक वेबसर्वर को चलाने के लिए था और वेब से वीडियो फ़ाइल के सभी संदर्भ थे स्थानीय होस्ट / video.mp4

<div id="videoDiv">
     <video id="video" src="http://127.0.0.1:4001/videos/<?php $videoFileName?>" width="70%" controls>
    </div>
<!--End videoDiv-->

एक आदर्श समाधान नहीं है लेकिन मेरे लिए काम किया।


2
यदि आप फ़ाइल को कैशे स्थान पर कॉपी करते हैं और वीडियो स्रोत का पथ उस पर सेट करते हैं, तो यह चलेगा। संदर्भ के लिए फ़ाइल की प्रतिलिपि करें। OutternalCacheDir ()। GetAbsolutePath ()। मेरे लिये कार्य करता है।
डेरेक वेड

Apache या mongoose जैसे उपयोगकर्ता कंप्यूटर में किसी भी वेब सर्वर के साथ भी कर सकते हैं
Darius.V
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.