निकालें मैं क्लाइंट-साइड प्रोजेक्ट पर काम कर रहा हूं जो उपयोगकर्ता को वीडियो फ़ाइल की आपूर्ति करने और इसमें बुनियादी कुशलता लागू करने देता है। मैं विश्वसनीय रूप से वीडियो से फ्रेम निकालने की कोशिश कर रहा हूं।जावास्क्रिप्ट: वीडियो फ्रेम को विश्वसनीय रूप से
- शुरुआत
- पर सीक वीडियो रोकें
- एक
<canvas>
को ड्रा
.toDataUrl()
- के साथ कैनवास से फ्रेम को कैप्चर करें 1/30 सेकंड (1 फ्रेम) द्वारा आगे की तलाश करें।
- रिंस और दोहराने
<video>
: इस समय मैं एक
<video>
जो मैं में चयनित वीडियो लोड हो रहा है कर रहा हूँ, और फिर प्रत्येक फ्रेम बाहर खींच के रूप में निम्नानुसार है
यह एक नहीं बल्कि अक्षम प्रक्रिया है, और अधिक विशेष रूप से, अविश्वसनीय साबित के रूप में मैं अक्सर हूँ हो रही फ्रेम फंस गया है। ऐसा लगता है कि यह कैनवास पर आकर्षित होने से पहले वास्तविक <video>
तत्व अद्यतन नहीं कर रहा है।
मुझे फ़्रेम को विभाजित करने के लिए सर्वर पर मूल वीडियो अपलोड करने की आवश्यकता नहीं है, और फिर उन्हें क्लाइंट पर वापस डाउनलोड करना होगा।
ऐसा करने के बेहतर तरीके के लिए कोई सुझाव बहुत सराहना की जाती है। एकमात्र चेतावनी यह है कि मुझे ब्राउजर का समर्थन करने वाले किसी प्रारूप के साथ काम करने की आवश्यकता है (जेएस में डीकोडिंग एक अच्छा विकल्प नहीं है)।
:
तो, मैं तो जैसे कि यह करना होगा। लेकिन स्पष्ट रूप से, यदि आपको क्लाइंट पक्ष पर ऐसा करने की आवश्यकता नहीं है, तो उसके लिए ब्राउज़र का उपयोग न करें, ffmpeg या कोई भी वीडियो टूल इसके लिए अधिक शक्तिशाली होगा। – Kaiido
@ Kalido मैं इसे सर्वर की तरफ संभालता हूं, लेकिन वीडियो क्लाइंट से आता है, और मुझे क्लाइंट पर फ्रेम की आवश्यकता है, इसलिए यदि मैं अपलोड/डाउनलोड चक्र से बच सकता हूं, तो मैं बहुत बेहतर होगा। साथ ही, जहां तक मांग है, मुझे धीमे डिवाइसों को फ्रेम छोड़ने में समस्याएं थीं क्योंकि वे फ्रेम डेटा को जल्दी से पकड़ने में संभाल नहीं सकते हैं, हालांकि, मैं 'टाइमअपडेट' ईवेंट से परिचित नहीं हूं, इसलिए मैं इसे देखूंगा । साथ ही, प्रत्येक फ्रेम के लिए खोज समय निर्दिष्ट करके, यदि आवश्यकता हो तो मैं फ़्रेमेट को नियंत्रित कर सकता हूं। –
ठीक है, तो कृपया आप अपने प्रश्न के संपादन में इस बिंदु को स्पष्ट कर सकते हैं (कि यह एक वेबसाइट, क्लाइंट साइड के लिए है), जो बिल्कुल स्पष्ट नहीं था। साथ ही, ब्राउज़र में फ़्रेमेट बिल्कुल स्थिर नहीं है, इसलिए आपको उस पर भरोसा नहीं करना चाहिए। लेकिन चित्रित प्रत्येक नए फ्रेम पर, टाइमअपडेट घटना ट्रिगर होनी चाहिए, इसलिए मेरा मानना है कि यह अधिक विश्वसनीय होगा। – Kaiido