
आप इस बारे में जान सकते हैं कि इंटरनेट टीवी चैनल का तकनीकी कार्यान्वयन कैसे हुआ, टीम ने किन कार्यों का सामना किया और इस लेख में विकास प्रक्रिया में किन उपकरणों और सेवाओं ने हमारी मदद की।
पीट टीवी एक सांस्कृतिक और मानवशास्त्रीय इंटरनेट परियोजना है जिसकी स्थापना किरिल किसल्याकोव ने की थी। यह एक लेखक की परियोजना है, क्रमशः, विषयों के चयन, पात्रों की पसंद और सामग्री की प्रस्तुति दोनों के लिए एक स्पष्ट व्यक्तिपरक दृष्टिकोण के साथ। चैनल में कला और शिक्षा, साहित्य और कविता, विज्ञान और प्रौद्योगिकी, संगीत और इतिहास, गैर-राजनीतिक समाचार और एक छोटे वीडियो प्रारूप में दिलचस्प तथ्यों के मुद्दों की एक विस्तृत श्रृंखला शामिल है।
फुटेज पीट टीवी सामग्री के संचय के साथ बाहर आता है। प्रत्येक अंक 3 से 15 मिनट तक चलने वाला एक छोटा वीडियो है, जिसे वीडियो आर्ट की शैली में बनाया गया है।
▌ संकल्पना
कुछ मुद्दे लोगों के मोनोलॉग या संवाद हैं, कभी-कभी उन्हें दर्शक को संबोधित किया जाता है, और कभी-कभी वे एक-दूसरे के साथ संवाद करते हैं, इस तथ्य पर ध्यान नहीं देते हैं कि उन्हें गोली मार दी जा रही है। दस्तावेजी कार्यक्रमों के प्रारूप में समस्याएँ हैं, और साक्षात्कार के प्रारूप में मुद्दे हैं। कभी-कभी साक्षात्कारकर्ता फ्रेम में हो सकता है, वार्ताकार की तरह, और कभी-कभी वह दिखाई नहीं दे सकता है और दर्शक केवल एक आवाज सुनता है सवाल पूछ रहा है। सभी मुद्दों को एक विशिष्ट विषय के साथ कार्यक्रमों की श्रेणियों में विभाजित किया गया है।
आज, चैनल में ऐसे भाग हैं:
- पोर्ट्रेट - लेखक साक्षात्कार
- कचरे में भाइयों - शराब की खपत की संस्कृति के लिए समर्पित मुद्दों
- ध्वनि पर एक नज़र - मुद्दों संगीत की दुनिया से घटनाओं और व्यक्तियों के लिए समर्पित हैं
- भूगोल का अंत - यात्रा और विश्व संस्करण
- पसंदीदा कविता - मेहमान अपनी पसंदीदा कविताएँ पढ़ते हैं
- पहला लीटर - साहित्य के लिए समर्पित मुद्दे
- तीसरी पाली - पेशेवर बात करते हैं कि वे क्या और क्यों करते हैं
नृविज्ञान के दृष्टिकोण से, सबसे दिलचस्प मुद्दे
कचरा में पोर्ट्रेट और
ब्रदर्स हैं । इसलिए, मुद्दों की पहली श्रेणी में एक व्यक्ति कहता है कि वह क्या कहना चाहता है, और दूसरे में - वह क्या कह सकता है। दोनों प्रारूप अक्सर आपको किसी व्यक्ति को 5 मिनट में अधिक कहने की अनुमति देते हैं, जैसा कि वह खुद सुझाता है।
चैनल के दर्शक वे लोग हैं जो न केवल और न ही इतने सांस्कृतिक मुद्दों में रुचि रखते हैं क्योंकि विचार की ट्रेन का पालन करने का अवसर, संदर्भ और समय से फाड़ा, किसी भी युग में और दुनिया में कहीं भी प्रासंगिक है, इसलिए पीट पर वीडियो एक परिचालन क्रॉनिकल नहीं हैं सांस्कृतिक जीवन में क्या होता है, और लेखक की टीम या आमंत्रित पात्रों के विचार में अचानक क्या आता है, इसकी समीक्षा की जाती है। कभी-कभी, कहानियां अतीत से या भविष्य से हो सकती हैं, इससे उनकी प्रासंगिकता प्रभावित नहीं होती है।
Ation कार्यान्वयन
जब हमने परियोजना के आईटी भाग को विकसित करना शुरू किया, तो हमारे पास कई कार्य थे:
- HTML5 का उपयोग करके संसाधन को लागू किया जाना चाहिए और मानक का समर्थन करने वाले किसी भी उपकरण पर वीडियो चलाने की अनुमति दें
- वीडियो दुनिया भर में, अच्छी गुणवत्ता में और प्लेबैक में देरी के बिना उपलब्ध होना चाहिए
- परियोजना रखरखाव प्रक्रिया यथासंभव स्वचालित होनी चाहिए
आज, परीक्षणों और प्रयोगों के परिणामस्वरूप, हम अपनी राय में, परियोजना की वास्तुकला (एक पूर्ण आकार की छवि
यहां देखी जा
सकती है ) में सबसे इष्टतम आए:

आइए देखें कि यह सब कैसे काम करता है और हमने ऐसा क्यों किया।
▌ खिलाड़ी
परियोजना के लिए, इसका अपना HTML5 / JS प्लेयर विकसित किया गया था जो मुख्य वीडियो प्रारूपों का समर्थन करता है:
- ogg मीडिया कंटेनर प्रारूप के लिए एक खुला मानक है, जो Xiph.Org नींव के कोडेक्स के लिए मुख्य फ़ाइल और स्ट्रीम प्रारूप है। इस प्रारूप में वीडियो फ़ायरफ़ॉक्स ब्राउज़र वाले उपयोगकर्ताओं के लिए 4 संस्करण और ओपेरा 10.6 तक एन्कोडेड था
- mp4 एक मीडिया कंटेनर प्रारूप है जो MPEG-4 मानक का हिस्सा है। यह प्रारूप अधिकांश ब्राउज़रों द्वारा समर्थित है और, आँकड़ों को देखते हुए, इस प्रारूप में वीडियो अक्सर देखने के लिए डाउनलोड किए जाते हैं
- webm 19 मई, 2010 को Google I / O सम्मेलन में Google द्वारा पेश किया गया एक खुला मल्टीमीडिया प्रारूप है। प्रारूप को खुले VP8 वीडियो कोडेक के आधार पर रॉयल्टी की आवश्यकता नहीं है। इसका उपयोग वैकल्पिक कोडेक के रूप में किया गया था, क्योंकि मानक का व्यापक वितरण होना चाहिए था।
प्रत्येक प्रारूप के लिए, हम विभिन्न प्रस्तावों के साथ 4 वीडियो विकल्प बनाते हैं:
- एसडी - कम इंटरनेट की गति वाले उपयोगकर्ताओं के लिए और मोबाइल फोन के लिए
- HD - यह मोड प्लेयर मोड में वीडियो देखने के लिए डिफ़ॉल्ट रूप से सक्षम है
- HD720 - पूर्ण स्क्रीन में वीडियो देखने के लिए उपयुक्त
- HD1080 - इस संकल्प के लिए समर्थन थोड़ी देर बाद दिखाई दिया, उन लोगों के लिए जो स्मार्ट टीवी और उच्च-रिज़ॉल्यूशन स्क्रीन जैसे उपकरणों से रिलीज देखते हैं
आंकड़ों के मुताबिक,
HD और
SD रिज़ॉल्यूशन वाले
mp4 फॉर्मेट में सबसे ज्यादा व्यू वीडियो फाइल्स पर होते हैं।
Publishing वीडियो तैयार करना और प्रकाशित करना

कई संपादकों से मिलकर एक टीम रिलीज़ पर काम करती है। संपादक अलग-अलग शहरों में स्थित हैं और दूर से काम करते हैं। उनमें से प्रत्येक में एन्कोडिंग सर्वर (मीडिया एन्कोडिंग सर्वर) तक एफ़टीपी पहुंच है। मूल (कच्ची) वीडियो फ़ाइल के साथ, संपादक सर्वर पर एक टेक्स्ट फाइल भी जारी करता है जिसमें विमोचन और वीडियो के लिए एक पोस्टर होता है, जो मुख्य पृष्ठ पर प्रदर्शित होता है। FTP के माध्यम से सर्वर पर वीडियो अपलोड होने के बाद, स्वचालित वीडियो एन्कोडिंग की प्रक्रिया शुरू होती है:
- कोडिंग सर्वर पर, विशेष रूप से डिज़ाइन किए गए प्रोग्राम का उपयोग करके, वीडियो को विभिन्न प्रारूपों और प्रस्तावों में परिवर्तित किया जाता है।
- वीडियो एन्कोडिंग पूरा होने के बाद, प्रोग्राम वीडियो को Rackspace CDN समापन बिंदु पर डाउनलोड करना शुरू करता है, जहां से बाद में फाइलें स्थानीय CDN सर्वर पर जाती हैं।
- डाउनलोड पूरा होने के बाद, वेब एप्लिकेशन को एक नया रिलीज़ जोड़ने के लिए अनुरोध भेजा जाता है।
- जब एक वेब एप्लिकेशन द्वारा कॉल प्राप्त होता है, तो डेटाबेस में वीडियो जानकारी जोड़ने की प्रक्रिया की जाती है और रिलीज साइट पर जाती है।
वीडियो परिवर्तित करने के लिए एक कार्यक्रम बनाने की प्रक्रिया में, एक अलग पुस्तकालय में परिवर्तित करने के लिए जिम्मेदार कोड आवंटित करने का निर्णय लिया गया था। पुस्तकालय को X.Media.Encoding कहा जाता है और इसे
nuget रिपॉजिटरी से स्वतंत्र रूप
से डाउनलोड किया जा सकता
है ।
The बादलों के लिए संक्रमण
जब हमने विकास शुरू किया, तो साइट को एक नियमित समर्पित सर्वर पर तैनात किया गया था, और सबसे पहले, यह पर्याप्त था। हालांकि, समय के साथ, यह स्पष्ट हो गया कि एक नियमित सर्वर में कई कमियां हैं:
- सबसे पहले, यह संबंधित वीडियो फ़ाइलों - रिलीज की डाउनलोड गति खराब थी
- दूसरी समस्या इस तथ्य से संबंधित थी कि संसाधन अनिवार्य रूप से पीक लोड मोड में काम करता है - नई रिलीज जारी होने पर आगंतुकों की गतिविधि अधिकतम होती है, और रिलीज के बीच न्यूनतम होती है। इस प्रकार, आपको या तो एक अधिक शक्तिशाली सर्वर खरीदने की आवश्यकता है, जिसके संसाधन ज्यादातर समय बेकार हो जाएंगे, या स्वचालित स्केलिंग का समर्थन करने वाले प्लेटफॉर्म पर स्विच करेंगे।
प्रारंभ में, मुद्दों की डाउनलोड गति के साथ समस्याओं को हल करने के लिए, हमने कंपनी CDN.UA की सेवाओं का उपयोग करने का निर्णय लिया, जो यूक्रेन में सामग्री वितरण सेवाएं प्रदान करता है। वैसे, वहाँ के लोग बहुत पेशेवर हैं और हमारी परियोजना के लिए उन्होंने अपने सर्वर पर कुछ विशिष्ट सेटिंग्स भी बनाई हैं, जो हमें फ्लैश प्लेयर का उपयोग करने के बजाय अपने स्वयं के एचटीएमएल -5 खिलाड़ी को वीडियो अपलोड करने की अनुमति देता है, जो उन्होंने मूल रूप से प्रस्तावित किया था। इस स्तर पर, यूक्रेनी दर्शकों के लिए, समस्याओं को देखना लगभग पूरी तरह से गायब हो गया। लेकिन जो लोग जॉर्जिया, इजरायल और अन्य देशों से रिलीज देखते थे, उनके लिए देखने में देरी नहीं हुई। इसलिए, अगला कदम वीडियो को अंतर्राष्ट्रीय सामग्री वितरण नेटवर्क में स्थानांतरित करने का निर्णय लिया गया। चुनाव रैकपैक सीडीएन पर गिर गया, जो
अकामाई के दुनिया के सबसे बड़े नेटवर्क का
उपयोग करता है :

एक नए प्लेटफ़ॉर्म पर जाने के संबंध में, हमें वीडियो डाउनलोड कार्यक्रम को थोड़ा अपडेट करना पड़ा। इसलिए, यदि हमने सीडीएन.यूए के लिए एफ़टीपी के माध्यम से वीडियो अपलोड किया है, तो अब हम इसका उपयोग रैकस्पेस पर अपलोड करने के लिए करते हैं
ओपनस्टैक एसडीके:using net.openstack.Core.Domain; using net.openstack.Providers.Rackspace; using NLog; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using X.Media.Encoding; .... public bool Upload(string path) { const string container = "Video"; const string region = "DFW"; try { var cloudIdentity = new CloudIdentity { Username = _settings.StorageUserName, Password = _settings.StoragePassword }; var contentType = ContentTypeManager.GetContentType(Path.GetExtension(path)); var name = Path.GetFileName(path); _logger.Info(String.Format("Upload: {0} \t with content type: [{1}]", Path.GetFileName(path), contentType)); using (var stream = File.OpenRead(path)) { var cloudFilesProvider = new CloudFilesProvider(cloudIdentity, region, null, null); cloudFilesProvider.CreateObject(container, stream, name, contentType); _logger.Info(String.Format("Uploaded: {0}", path)); } } catch (Exception ex) { _logger.WarnException(String.Format("Error while uploading: {0}", path), ex); return false; } return true; }
वीडियो सामग्री सीडीएन में स्थानांतरित होने के बाद, यह साइट की बारी थी। अब वेब सर्वर पर लोड वीडियो लोड करते समय शुरू में लोड की तुलना में काफी छोटा है, लेकिन यह देखते हुए कि आगंतुकों की आमद पहले की तरह असमान थी, साइट को क्लाउड प्लेटफ़ॉर्म पर स्थानांतरित करने का निर्णय लिया गया। अब साइट Microsoft Azure में WebSites सेवा में तैनात है। आगंतुकों की संख्या में अचानक वृद्धि के मामले में साइट लोड संतुलन और संसाधनों के स्वचालित स्केलिंग का समर्थन करती है।
दिलचस्प बिंदुओं में से, मैं यह नोट करना चाहता हूं कि साइट में दो डिस्प्ले मोड हैं - रात और दिन, जो स्वचालित रूप से बदलते हैं, दिन के समय के आधार पर।
Support परियोजना विकास और समर्थन प्रक्रिया
यद्यपि परियोजना विकास टीम छोटी है (शुरू में 4 लोग थे, अब केवल 2 लोग सक्रिय रूप से कोड लिखने में शामिल हैं), यह परियोजना के विकास और प्रकाशन प्रक्रिया को यथासंभव अनुकूलित करने का निर्णय लिया गया था। हम एक निजी बिटबकेट रिपॉजिटरी में प्रोजेक्ट के सोर्स कोड को स्टोर करते हैं। प्रोजेक्ट, जैसा कि पहले ही उल्लेख किया गया है, Azure वेबसाइट सेवा पर होस्ट किया गया है। और जो हमें बहुत खुश करता है, यह सेवा आपको प्रोजेक्ट की स्वचालित तैनाती की प्रक्रिया को GitHub और Bitbucket से कॉन्फ़िगर करने की अनुमति देती है (वास्तव में, स्रोतों की संख्या बहुत बड़ी है, और
ड्रॉपबॉक्स से प्रकाशन भी समर्थित है)। Azure में, हमारे पास दो वेबसाइट हैं:
- परीक्षण - तैनाती जिसमें मास्टर शाखा से आता है
- उत्पादन - तैनाती जो बादल शाखा से आता है

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

हालांकि, सभी समय के लिए यह सुविधा क्लाउड में परियोजना की प्रारंभिक तैनाती के दौरान केवल एक बार हमारे लिए उपयोगी थी।
▌ मोबाइल ग्राहक
परियोजना की शुरुआत के लगभग एक साल बाद, हमने महसूस किया कि कई दर्शकों के लिए न केवल कंप्यूटर से रिलीज़ देखना, बल्कि अपने स्मार्टफ़ोन का उपयोग करना अधिक सुविधाजनक होगा। मोबाइल ग्राहक बनाने का निर्णय लिया गया। हमने तीन मुख्य मोबाइल प्लेटफ़ॉर्म के लिए मोबाइल क्लाइंट के तीन संस्करण बनाए हैं:
- विंडोज फोन - संस्करण 7.8 और उच्चतर के बाद से समर्थित है
- iOS - संस्करण 5 और उच्चतर के बाद से समर्थित है
- Android - संस्करण 4.1 और उच्चतर के बाद से समर्थित है
मोबाइल ग्राहकों का तर्क यथासंभव सरल है। एक्सएमएल-प्रारूप में, वे साइट से उपलब्ध कार्यक्रमों और वीडियो रिलीज के बारे में जानकारी प्राप्त करते हैं। इसके अलावा, सीडीएन में स्थित वीडियो फ़ाइल का यूआरएल मोबाइल क्लाइंट को प्रेषित किया जाता है, जहां से वह बाद में वीडियो डाउनलोड करता है।
इसके अलावा, इस परियोजना में एक "आंतरिक आवाज" है। वह उन लोगों से संवाद करता है जिन्होंने अपने स्मार्टफोन में पीट टीवी मोबाइल एप्लिकेशन इंस्टॉल किया है। कभी-कभी उपयोगकर्ताओं को रिलीज़ घोषणाएं मिलती हैं, और कभी-कभी केवल दिलचस्प विचार और अभिव्यक्ति। एज़्योर मोबाइल सर्विसेज पर आधारित एक "आंतरिक आवाज़" काम करती है। चूंकि, अभी जारी की गई मोबाइल सेवाओं की "आंतरिक आवाज" के निर्माण के समय, तर्क जावास्क्रिप्ट में लिखा गया था। बाद में, C # में मोबाइल सेवाओं के तर्क को लिखने के लिए क्षमता को जोड़ा गया था, लेकिन चूंकि सब कुछ अच्छी तरह से काम करता है, इसलिए मुझे स्टील से इस कोड को फिर से लिखना होगा।
दिलचस्प बात यह है कि इस समय, लगभग आधे वीडियो दृश्य मोबाइल एप्लिकेशन के माध्यम से हैं।
▌ उपयोगी जानकारी
▌ नोट्स
- लेख MarcusAurelius द्वारा तैयार किए गए परियोजना विवरण से टुकड़ों का उपयोग करता है
- प्रोजेक्ट के लिए जावास्क्रिप्ट प्लेयर को जेलस द्वारा विकसित किया गया था