2011-10-24 28 views
14

के लिए एकाधिक ऑडियो ट्रैक मैं एचटीएमएल 5 के साथ अपनी वेबसाइट के लिए एक वीडियो बना रहा हूं। आदर्श रूप में, मेरे पास केवल एक मूक वीडियो फ़ाइल होगी, और वीडियो के साथ समन्वयित विभिन्न भाषाओं में पांच अलग-अलग ऑडियो ट्रैक होंगे।एचटीएमएल 5 वीडियो

तब मेरे पास एक बटन होगा जो उपयोगकर्ताओं को ऑडियो ट्रैक के बीच स्विच करने की अनुमति देता है, भले ही वीडियो चल रहा हो; और सही ऑडियो ट्रैक जीवन में आ जाएगा (बिना वीडियो रुकने या शुरू करने या कुछ भी; डीवीडी ऑडियो ट्रैक चयन की तरह)।

मैं इसे फ्लैश में काफी आसानी से कर सकता हूं, लेकिन मैं नहीं चाहता हूं। शुद्ध एचटीएमएल 5 या एचटीएमएल 5 + jQuery में ऐसा करने का एक तरीका होना चाहिए। मुझे लगता है कि आप सभी ऑडियो फ़ाइलों को 0 वॉल्यूम पर चलाएंगे, और केवल सक्रिय ट्रैक की मात्रा बढ़ाएंगे ... लेकिन मुझे नहीं पता कि यह कैसे करना है, जब उपयोगकर्ता रोकता है या रिवाइंड करता है तो इसे अकेले ही संभालें वीडियो ...

अग्रिम धन्यवाद!

उत्तर

3

यदि आप सभी पांच ट्रैक डाउनलोड करने को तैयार हैं, तो उन्हें सिर्फ वीडियो में क्यों न करें? वीडियो एक ऑडियो ट्रैक तक सीमित नहीं हैं (यहां तक ​​कि एवीआई कई ऑडियो ट्रैक भी कर सकता है)। फिर समन्वयन आपके लिए संभाला जाना चाहिए। आप आवश्यकतानुसार ऑडियो ट्रैक को सक्षम/अक्षम कर देंगे।

+1

जावास्क्रिप्ट के साथ उस पर नियंत्रण करने के लिए मैं वास्तव में कैसे जाउंगा? :) –

+2

@EmphramStavanger: http://www.whatwg.org/specs/web-apps/current-work/multipage/video.html#media-elements एक 'ऑडियोट्रैक' तत्व देता है, और फिर आप '.enable का उपयोग कर सकते हैं() 'और' .disable() 'प्रत्येक ट्रैक पर। इसने खुद का परीक्षण नहीं किया है। – derobert

+0

बहुत बढ़िया, मैं इसे देख लूंगा! –

8

ऑडियो और वीडियो के बीच सिंक्रनाइज़ेशन एक ही समय में ऑडियो और वीडियो को शुरू करने से कहीं अधिक जटिल है। ध्वनि कार्ड थोड़ा अलग दरों पर प्लेबैक होगा। (मेरे लिए 44.1 केएचजेड क्या है, वास्तव में आपके लिए 44.0 9 5 किलोहर्ट्ज़ हो सकता है।)

अक्सर, वीडियो ऑडियो स्ट्रीम में सिंक्रनाइज़ किया जाता है, लेकिन प्लेयर यह हैडल करता है। प्लेबैक के लिए एकाधिक ऑब्जेक्ट्स लोड करके, आप प्रभावी रूप से उन्हें सिंक से बाहर खींच रहे हैं।

यह काम करने जा रहा एकमात्र तरीका यह है कि यदि आप वीडियो प्लेयर से अलग ऑडियो स्ट्रीम को नियंत्रित करने का कोई तरीका ढूंढ सकते हैं। मुझे नहीं पता कि यह संभव है या नहीं।

इसके बजाय, मैं प्रस्ताव करता हूं कि आप अलग-अलग धाराओं के साथ वीडियो को कई बार एन्कोड करें। आप इसके वर्कफ़्लो के आधार पर FFMPEG का उपयोग कर सकते हैं, और प्रक्रिया को स्वचालित भी कर सकते हैं। धाराओं के बीच स्विचिंग एक समस्या बन जाती है, लेकिन अधिकांश वीडियो प्लेयर बिटरेट दिए जाने पर फ़ाइल में बाइट ऑफ़सेट अनुमान लगाने के लिए पर्याप्त मजबूत होते हैं।

यदि आपको केवल दो भाषाओं की आवश्यकता है, तो आप बस बाएं और दाएं स्टीरियो ऑडियो चैनल के बीच संतुलन समायोजित कर सकते हैं।

+0

ब्राउज़र के लिए फ्लाई पर धाराओं को मक्खन करने के लिए क्या करना मुश्किल है, जैसे कि ffmpeg करता है? – themihai

+0

@themihai जब आपके पास वीडियो ट्रैक और एकाधिक ऑडियो ट्रैक के साथ एक वीडियो फ़ाइल होती है, तो वे सभी एक सामान्य संदर्भ बिंदु से सिंक्रनाइज़ होते हैं। जब आपके पास कई अलग-अलग फाइलें अलग होती हैं, तो वे नहीं होती हैं। आप केवल 8 ऑडियो ऑब्जेक्ट्स को लाइन नहीं कर सकते हैं, उन्हें खेलने के लिए कह सकते हैं, और उम्मीद करते हैं कि वे एक साथ खेलें क्योंकि उनके पास सभी का अपना डिकोडिंग, बफरिंग इत्यादि है।, और यह मान रहा है कि ब्राउज़र भी उन्हें एक साथ खेलने की कोशिश करेगा। हकीकत में, आप खेल खेलते हैं, और ब्राउजर इसकी चीज करता है जब ऐसा लगता है (उचित समय के भीतर ताकि तत्काल लग रहा हो)। – Brad

+0

@themihai FFmpeg के साथ, आप उन सभी पटरियों को ले जा सकते हैं, उन्हें एक ही फ़ाइल में मक्स कर सकते हैं, और उन्हें सामान्य संदर्भ बिंदु दे सकते हैं। एक विकल्प के रूप में जिसने यहां प्रस्तावित किया है, वेब ऑडियो एपीआई का उपयोग नमूना-सटीक तरीके से प्लेबैक शेड्यूल करने के लिए किया जा सकता है। यही है, सभी ऑडियो पीसीएम नमूने के लिए पहले डीकोड किया गया है, जिसे एक ही समय में शुरू किया जा सकता है। उस बिंदु पर घड़ी संदर्भ आउटपुट डिवाइस है। – Brad

3

यह वेब ऑडियो एपीआई के साथ काम करने योग्य है।

मेरे कार्यक्रम का हिस्सा वीडियो तत्व घटनाओं को सुनता है और वेब ऑडियो एपीआई का उपयोग करके बनाए गए ऑडियो ट्रैक को रोकता है या फिर से शुरू करता है। यह मुझे सही सिंक में किसी भी ट्रैक को चालू और बंद करने की क्षमता देता है।

कुछ कमियां हैं।

एज के अलावा इंटरनेट एक्सप्लोरर में कोई वेब ऑडियो एपीआई समर्थन नहीं है।

तकनीक केवल buffered ऑडियो के साथ काम करती है और यह सीमित है। बड़ी फ़ाइलों के साथ कुछ समस्याएं हैं: https://bugs.chromium.org/p/chromium/issues/detail?id=71704

+0

फिर भी - 'mediagroup' के संकेत के लिए धन्यवाद। अब आपके लेखन के समय से थोड़ा बेहतर समर्थन है;) – SimonSimCity

+0

मुझे किसी भी मदद की खुशी है। उन चश्मे को जीवन में लाए जाने के लिए भी अच्छा लगा :) – Nek

+0

mediagroup को हटा दिया गया है/कम नहीं किया गया है (कम से कम क्रोम द्वारा) – themihai