दो मशीनों पर VLC खिलाड़ियों को सिंक्रनाइज़ करें


15

क्या दो अलग-अलग मशीनों पर वीएलसी के प्लेबैक को सिंक्रनाइज़ करना संभव है? मैं घर के विभिन्न हिस्सों में एक ही वीडियो को चलाने के लिए दो पीसी करना चाहता हूं - इसलिए इस समस्या को हल करने वाले अन्य सुझावों का भी स्वागत है!

जवाबों:


9

मैं मल्टीकास्ट का उपयोग करता हूं। यह एक साथ सभी रिसीवर्स को एक स्ट्रीम भेजता है।

नेटवर्क वायर्ड और वाईफाई सेगमेंट है।

मल्टीकास्ट के साथ, धारा प्रत्येक खंड पर केवल एक बार इसकी बैंडविड्थ का उपयोग करती है

इसका मतलब यह भी है कि सभी कंप्यूटरों को एक ही समय में एक ही पैकेट प्राप्त होता है, मेरे स्विच के माध्यम से कम प्रसार देरी होती है। प्रचार देरी ध्वनि और मानव दृश्य वीडियो (30fps) के लिए नगण्य है।

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

कारण: एक बार vlc बफर खाना शुरू कर देता है तो बफर की शुरुआत में वापस आने में लंबा समय लगता है, ऐसा लगता है कि कोडिंग 'शून्य बफर' पर वापस जाने के लिए प्राथमिकता नहीं देता है लेकिन वहां रहने के लिए आरामदायक है।

मैं 'सर्वर' दो vlc क्लाइंट पर भी उपयोग करता हूं: एक स्ट्रीम बनाता है और स्थानीय रूप से प्रदर्शित नहीं करता है। अन्य प्रदर्शित ग्राहक है जो समान नेटवर्क कैश सेटिंग के साथ अन्य सभी प्रणालियों की तरह स्ट्रीम को सुनता है।

कमांड लाइन में:

स्ट्रीम जनरेटिंग क्लाइंट जो इंटरनेट स्ट्रीम से कनेक्ट होता है (यह एक बड़ा कैश है इसलिए यह कट आउट नहीं करता है और मेरे मल्टीकास्ट नेटवर्क में एक निरंतर स्ट्रीम वितरित करता है):

vlc -vvv http://yp.shoutcast.com/sbin/tunein-station.pls?id=154 --sout udp:239.0.0.1 --no-sout-display --sout-keep --ttl 4 (यह एक पंक्ति में माना जाता है)

जैसा कि आप देखते हैं, - कोई भी प्रदर्शन नहीं किया जाता है: स्ट्रीम आउटपुट उत्पन्न होता है, लेकिन कोई स्थानीय आउटपुट नहीं। मैं वही करता हूं, भले ही मैं स्थानीय फाइलें / डीवीडी या नेटवर्क सामग्री खेलता हूं।

और सुनिश्चित करें कि यदि आपके पास कहीं वायरलेस वायरलेस राउटर है तो आप इसे> 1 पर सेट करें। मैंने हमेशा इसे 4 के रूप में सेट किया है ताकि 'आश्चर्य' न हो। हालाँकि, यदि आपके पास एक मल्टी-राउटर नेटवर्क है और एक नेटवर्क पर होस्ट मल्टीकास्ट नहीं देख सकता है, तो आपको उस ttl को एक notch या two (या चेक करना होगा कि क्या आपका राउटर मल्टीकास्ट सब पर होने देता है, न कि सभी वायरलेस रूटर्स को। डिफ़ॉल्ट रूप से उस पर सेट)।

हर सिस्टम पर, जिसमें स्ट्रीम उत्पन्न करता है और जिसमें नॉन-आउटपुटिंग vlc चल रहा है, मेरे पास निम्न vlc हैं:

vlc udp://@239.0.0.1 --network-caching 60 --sout-keep

यह मेरे नेटवर्क में नेटवर्क कैशिंग सेट करता है और अधिकतम करने के लिए सबसे धीमी प्रणाली के प्रदर्शन के साथ। .06 सेकंड कैश के लायक।

ध्वनि के लिए, यह लगभग 100 फीट तक प्रसार दूरी से मेल खाती है, जिसका अर्थ है कि यदि कैश को अधिकतम खाया जाता है, तो धीमी प्रणाली ऐसा लगता है जैसे कि यह 100 फीट दूर होगा।

मेरा नेटवर्क देरी है .5ms या बेहतर (पिंग नहीं, यह एक कम प्राथमिकता वाला स्टैक राउंड ट्रिप और कई एमएस है)।

मेरे स्थान पर, जहाँ मैं कभी भी एक साथ दो सिस्टम नहीं देख या सुन सकता हूँ> 100ft अलावा (मैं ऊपर और तहखाने में विस्फोट नहीं करता हूँ, इस तरह से करने का फायदा यह है कि हर जगह एक समान रहने वाले कमरे को नष्ट किए बिना)।

बेडरूम में लैपटॉप: अगर यह बहुत बार कट जाता है तो मैं बस इसका कैश स्थानीय स्तर पर चालू कर देता हूं, मैं इसे तहखाने या ऊपर की तरफ नहीं सुनता, और जब मैं वहां होता हूं तो शायद मैं दूसरों को बंद कर देता हूं :-)।

बहुत महत्वपूर्ण: जब भी मुझे ट्रांसकोडिंग की आवश्यकता होती है तो मेरे पास एक ही प्रोटोकॉल और एन्कोडिंग पर सभी रिसीवर होते हैं, और मैं धारा उत्पन्न करने वाले गैर-आउटपुटिंग vlc पर ट्रांसकोडिंग करता हूं।

मैं मल्टीकास्ट क्लाइंट पर ट्रांसकोड नहीं करता हूं। इसके परिणामस्वरूप खराब विलंब होगा क्योंकि प्रत्येक प्रणाली प्रदर्शन में भिन्न है।

इस ऑडियो उदाहरण के लिए कोई भी ट्रांसकोडिंग नहीं है, सभी shoutcast के मूल एनकोडिंग को समझ सकते हैं। (वास्तव में, मुझे vid के लिए कभी भी ट्रांसकोड करने की आवश्यकता नहीं है ... सभी में पूर्ण कोडेक सेट हैं)।

क्या यह मदद करता है?

हां, नेटवर्क्स पर सिंक्रोनाइज़ करने के लिए उदाहरण हैं - नेटवर्क्स-सिंक्रोनाइज़ेशन मास्टर / क्लाइंट और कई यूनिकस्ट स्ट्रीम (सर्वर पर 10 मील लंबा लक्ष्य स्ट्रिंग :-D) का उपयोग करके।

हालाँकि: एक खंड पर एन क्लाइंट्स के लिए यूनिकस्ट स्ट्रीम करने से स्ट्रीम उस सेगमेंट पर कई बार दिखाई देती है, और जितना अधिक आप मूल सर्वर की ओर जाते हैं, उतनी ही अधिक धाराएँ बैंडविड्थ खाती हैं। मैं अपना 1080p वीडियो नहीं देख पाऊंगा। मेरा वायरलेस मुश्किल से उनमें से एक को संभाल सकता है, हमेशा (56Mb) नहीं।

ओह, आप पूछते हैं कि GUI में कैसे:

स्ट्रीमिंग विंडो में 'अधिक विकल्प' पर क्लिक करें और vlc उदाहरण के लिए "स्थानीय रूप से प्ले" को अचयनित करें जो स्ट्रीम उत्पन्न करता है (एक स्थानीय फ़ाइल, प्लेलिस्ट या इंटरनेट स्ट्रीम के रूप में इनपुट)। डिफ़ॉल्ट पर कैशिंग छोड़ें (कैश के 1000ms मूल्य)। यदि कोई अन्य क्लाइंट आपके कोडेक को नहीं समझ सकता है, तो एक के लिए यह तय करें कि सभी समझें और उसी सिस्टम पर ट्रांसकोड करें।

गंतव्य के विकल्पों पर आप स्थानीय रूप से डिफ़ॉल्ट 'डिस्प्ले' को छोड़ देते हैं, और कैशिंग को बदलते हैं: इस के साथ खेलते हैं (100 पर शुरू करें और इसे नीचे करें) जब तक कि आपका सबसे धीमा सिस्टम बाहर नहीं निकलता है, तब सभी तेज सिस्टम को उसी पर सेट करें। शॉर्ट बफ़र्स के साथ: जब कोई क्लाइंट शुरू होता है, तो उसे 'मिलने तक' में लगभग 10 से 15 सेकेंड लगते हैं।

मेरे ग्राहक 100% समय के ऊपर हैं, जब भी मैं स्ट्रीमिंग बंद कर देता हूं वे बस मल्टीकास्ट पता सुनते रहते हैं।

कोई पोर्ट नहीं दिया गया: डिफ़ॉल्ट रूप से हर जगह 1234 है, मैं एक मूल सर्वर चलाता हूं। यदि आप एक से अधिक चलाते हैं, तो आपको एक पोर्ट नंबर देने की आवश्यकता है जैसे: ... 239.0.0.1:65535। मेरी उदाहरण संख्या: 239/8 में कोई भी मल्टीकास्ट पता चुनें। पोर्ट: 1024 (हाँ, 1024, के ऊपर किसी को भी चुना क्योंकि Microsoft 1024 MC पर उपयोग करता है)।

यदि कोई नहीं सुन रहा है, तो स्ट्रीम नेटवर्क पर बिल्कुल भी दिखाई नहीं देता है, यह केवल तब शुरू होता है जब पहला श्रोता मल्टीस्टैस्ट सेशन में शामिल होता है। इसलिए यदि आपने दस को परिभाषित किया है और केवल एक को सुनते हैं, तो आपके पास बैंडविड्थ खाने की एक धारा है। यदि आप विभिन्न धाराओं को सुनते हैं तो आपको n स्ट्रीम के लिए खाया गया बैंडविड्थ कई बार मिलता है।

मल्टीकास्ट: उपयोग किया जाने वाला बैंडविड्थ प्रति स्ट्रीम एक या 10000 ग्राहकों के लिए समान है।

यूनिकस्ट का उपयोग करना: प्रत्येक ग्राहक प्रेषक की स्ट्रीम पर एक अलग समय पर हॉप करता है, जिसका अर्थ है कि आपके लैग अभी भी मौजूद हैं, भले ही आप कैशिंग को नीचे कस देंगे। यूनिकास्ट और मल्टीकास्ट पूरी तरह से अलग काम करते हैं। इसलिए यूनिकस्ट में सिंक की सुविधा है।

एक अलग तरीका है यदि आप एक संपूर्ण टारगेट स्टोर कहने के लिए समान स्ट्रीम करते हैं: तो आप सैटेलाइट vlc क्लाइंट के लिए सिंक्रोनाइज़ेशन के साथ यूनिकास्ट स्ट्रीम करेंगे, और वहां से 'एकॉस्टिक रेंज' के भीतर सेवा करेंगे। कार्यालयों में मैं प्रति मंजिल एक या दो करता हूं, इसलिए सभी मंजिलों को एकसाथ और नेटवर्क-सिंक्रोनाइज़ेशन का उपयोग करके कसकर सिंक्रनाइज़ किया जाता है। मंजिल के भीतर आमतौर पर नेटवर्क प्रसार देरी ध्वनिक देरी से बहुत कम होती है, और ध्वनिक को बंद कर दिया जाता है ताकि आप सभी वक्ताओं को न सुनें, लेकिन केवल आपके पास वाले।

मुझे sirhelpsalot@gmail.com पर ईमेल करें अगर आपको मदद की जरूरत है, तो मैं इसे youtube पर भी डाल सकता हूं।

:-)


3
SuperUser में आपका स्वागत है, और योगदान देने के लिए धन्यवाद! क्या आप अनावश्यक टिप्पणी को हटाकर अपना जवाब थोड़ा नीचे कर सकते हैं? अभी यह पाठ की एक सत्य दीवार है और वास्तविक उत्तर को समझना बहुत कठिन है।
Indrek

1
वीडियो को सिंक्रनाइज़ करने के लिए स्ट्रीमिंग / मल्टिकास्ट कितना विश्वसनीय है? अगर मेरे पास एक हेक्स कोर डेस्कटॉप चल रहा है जो VLC और ombplayer पर चलने वाला एक रास्पबेरी पाई है, तो मुझे क्या गारंटी है कि omxplayer को धारा को खोलने में 3 सेकंड तक का समय नहीं लगेगा?
PUK

4

वीएलसी एक नेटवर्क पर आउटपुट को स्ट्रीम करने के साथ-साथ स्थानीय स्तर पर भी खेल सकता है, इसलिए मैं आपको सुझाव दूंगा कि आपके पास एक मशीन नेटवर्क पर आउटपुट स्ट्रीम करें, लेकिन "गंतव्यों" टैब में "स्थानीय रूप से प्रदर्शन" विकल्प पर टिक करें।

यहाँ स्ट्रीमिंग के लिए उपयोग करने के लिए सेटिंग्स का एक विवरण है।


1

VLC उपयोग (या करता है, प्रलेखन कभी अद्यतन नहीं होता है) में netsync नामक एक मॉड्यूल होता है, लेकिन सबसे असामान्य VLC मॉड्यूल की तरह, यह छोटी गाड़ी है, मुश्किल से प्रलेखित और उपेक्षित। मैं इसे काम करने के लिए कभी नहीं मिला है।


1

जैसा कि spc-stm ने कहा, VLC आपको स्ट्रीमिंग को सिंक्रनाइज़ करने देता है। इसे देखें: http://www.hackedexistence.com/project-vlc.html


2
सुपर उपयोगकर्ता में आपका स्वागत है! जब भी यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, तो यहां उत्तर के आवश्यक भागों को शामिल करना और संदर्भ के लिए लिंक प्रदान करना बेहतर होगा
slhck
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.