back

eXport-it FFmpeg

FFmpeg लाइब्रेरी क्या है?

FFmpeg (https://www.ffmpeg.org/) ऑडियो और वीडियो को रिकॉर्ड करने, कनवर्ट करने और स्ट्रीम करने के लिए एक पूर्ण, क्रॉस-प्लेटफ़ॉर्म समाधान है। FFmpeg एक अग्रणी मल्टीमीडिया ढांचा है, जो मानव और मशीनों द्वारा बनाई गई किसी भी चीज को डिकोड, एनकोड, ट्रांसकोड, mux, demux, स्ट्रीम, फिल्टर और प्ले करने में सक्षम है। यह अत्याधुनिक तक के सबसे अस्पष्ट प्राचीन स्वरूपों का समर्थन करता है। कोई फर्क नहीं पड़ता कि वे कुछ मानक समिति, समुदाय या निगम द्वारा डिजाइन किए गए थे।

यह अत्यधिक पोर्टेबल भी है: FFmpeg हमारे परीक्षण बुनियादी ढांचे FATE को लिनक्स, मैक ओएस एक्स, माइक्रोसॉफ्ट विंडोज, बीएसडी, सोलारिस, आदि में संकलित करता है, चलाता है, और पास करता है ... विभिन्न प्रकार के निर्माण वातावरण, मशीन आर्किटेक्चर के तहत, और विन्यास।

FFmpeg लाइब्रेरी स्वयं LGPL 2.1 लाइसेंस के अंतर्गत है। कुछ बाहरी पुस्तकालयों (जैसे libx264) को सक्षम करने से लाइसेंस GPL 2 या बाद के संस्करण में बदल जाता है।

इस लाइब्रेरी को Android एप्लिकेशन में कैसे एकीकृत किया गया है

मैंने पुस्तकालयों को संकलित करने के लिए ffmpeg-android-निर्माता स्क्रिप्ट (योगदानकर्ता: अलेक्जेंडर बेरेज़नोई जावरनॉट + कोडेसी-बैजर कोडेसी बेजर + ए2वा) का उपयोग किया। यह स्क्रिप्ट https://www.ffmpeg.org से FFmpeg के सोर्स कोड को डाउनलोड करती है और लाइब्रेरी का निर्माण करती है और इसे Android के लिए असेंबल करती है। स्क्रिप्ट साझा लाइब्रेरी (*.so फ़ाइलें) के साथ-साथ शीर्षलेख फ़ाइलें (*.h फ़ाइलें) उत्पन्न करती है।

ffmpeg-android-maker का मुख्य फोकस किसी Android प्रोजेक्ट में निर्बाध एकीकरण के लिए साझा लाइब्रेरी तैयार करना है। स्क्रिप्ट `आउटपुट` निर्देशिका तैयार करती है जिसका उपयोग किया जाना है। और यह केवल एक चीज नहीं है जो यह परियोजना करती है। ffmpeg-android-maker का सोर्स कोड MIT लाइसेंस के तहत उपलब्ध है। https://github.com/Javernaut/ffmpeg-android-maker/ पर अधिक विवरण के लिए LICENSE.txt फ़ाइल देखें। eXport-it FFmpeg लाइब्रेरी केवल libaom, libdav1d, liblame, libopus और libtwolame के साथ संकलित हैं...लेकिन सभी संबद्ध लाइब्रेरी नहीं हैं।

FFmpeg के लिए जावा समर्थन विकसित करने और इसे Android 7.1 से 12 पर चलाने के लिए, मैंने MobileFFmpeg प्रोजेक्ट से https://github.com/tanersener/mobile-ffmpeg/ पर टैनर सेनर द्वारा प्रलेखित किया, जिसे अब बनाए नहीं रखा गया है। ... और LGPL 3.0 ...

के तहत लाइसेंस प्राप्त है

आखिरकार, मैंने पुस्तकालयों के साथ एक जेएनआई एंड्रॉइड स्टूडियो प्रोजेक्ट तैयार किया, जिसमें फाइलें और जावा समर्थन कोड शामिल हैं, और मेरी मौजूदा परियोजनाओं में एक अतिरिक्त पुस्तकालय के रूप में एकीकृत करने के लिए एक .एआर लाइब्रेरी फ़ाइल उत्पन्न की है।


मल्टीकास्ट चैनल कैसे शुरू करें

मल्टीकास्ट चैनल शुरू करने के लिए FFmpeg समर्थन के साथ अपने स्थानीय नेटवर्क (वाई-फाई) पर एक UPnP सर्वर तक पहुंचने के लिए क्लाइंट का उपयोग करने की आवश्यकता होती है। इस सर्वर को उन फाइलों की सूची के साथ जवाब देना चाहिए जिन्हें वह निर्यात करता है। यदि इस सर्वर में FFmpeg समर्थन है, तो एक छोटा पाठ "एक चैनल के रूप में" सूची पृष्ठ की शीर्ष पंक्ति के अंत में लाल रंग में दिखाया जाना चाहिए। जब टेक्स्ट "लाल" होता है, तो "प्ले" बटन पर क्लिक करना यूपीएनपी प्रोटोकॉल का उपयोग करने से पहले काम करता है। यदि आप टेक्स्ट पर क्लिक करते हैं, तो यह "हरा" हो जाना चाहिए और "चलाएं" बटन पर क्लिक करने के बाद, वीडियो या ऑडियो फ़ाइलों का चयन करने के बाद, एक "चैनल" शुरू होना चाहिए।

चयनित मीडिया फ़ाइलें जाहिरा तौर पर UPnP की तुलना में उसी तरह से चलाई जाती हैं, सिवाय इसके कि स्टार्टअप में देरी अतिरिक्त कार्यों के कारण लंबी होती है। पाइप को सक्रिय रखने के लिए आपको इस क्लाइंट को मीडिया फ़ाइलों को चलाते रहना चाहिए।

इस पाइप का इस्तेमाल दूसरे डिवाइस पर करना

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

UPnP या HTTP स्ट्रीमिंग के साथ, प्रत्येक डिवाइस को दिखाए गए वीडियो की बैंडविड्थ की आवश्यकता होती है और वैश्विक बैंडविड्थ दोनों ट्रैफ़िक का योग होता है। मल्टीकास्ट स्ट्रीमिंग के साथ, हम लैन पर एक डेटा प्रवाह भेजते हैं जिसे कई क्लाइंट के बीच साझा किया जाता है।

यदि आप चैनल शुरू करने के बाद अपने नेटवर्क पर किसी अन्य क्लाइंट का उपयोग करते हैं, तो आपको क्लाइंट मुख्य विंडो पर एक अतिरिक्त लाइन दिखाई देनी चाहिए। बस इस लाइन पर क्लिक करने से शो शुरू हो जाना चाहिए।

वीएलसी, एसएमप्लेयर जैसे अन्य उत्पादों का उपयोग करना भी संभव है ... वीडियो दिखाने के लिए या मल्टीकास्ट चैनल पर वितरित संगीत सुनने के लिए केवल eXport-it क्लाइंट पर दिखाए गए "यूडीपी" यूआरएल का उपयोग करना संभव है।

पी>

मल्टीकास्ट चैनल को रोकने के लिए

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

व्यावहारिक विचार

मल्टीकास्ट चैनल शुरू करने के लिए इस एप्लिकेशन के एक विशिष्ट क्लाइंट भाग की आवश्यकता होती है, जो मेरे अन्य अप-टू-डेट उत्पादों के eXport-it क्लाइंट के समान है। चलने वाले मल्टीकास्ट चैनल का उपयोग करने के लिए एप्लिकेशन क्लाइंट या अन्य उत्पादों जैसे वीएलसी, एसएमपीलेयर, ... अन्य प्लेटफॉर्म या एंड्रॉइड पर चल रहे हैं। वीएलसी का उपयोग करते समय मल्टिकास्ट चैनल का उपयोग करने के लिए यूआरएल udp://@239.255.147.111:27192... की तरह आसानी से अलग होता है, बस एक अतिरिक्त "@" के साथ। यूडीपी मल्टीकास्ट चैनल के साथ मीडिया डेटा केवल एक बार एकाधिक क्लाइंट पर दिखाने के लिए भेजा जाता है, लेकिन कोई वास्तविक सिंक्रनाइज़ेशन नहीं होता है, और बफरिंग और डिवाइस विशेषताओं के आधार पर देरी सेकंड हो सकती है।

एक ऑडियो मल्टीकास्ट चैनल सुनना अन्य उत्पादों के साथ किया जा सकता है लेकिन विशिष्ट क्लाइंट आईपी मल्टीकास्ट पर भेजे गए छवियों को भी दिखाता है। यदि आप अपने संगीत के साथ विशिष्ट तस्वीरें भेजना चाहते हैं, तो आप सर्वर पर "पेज 2" ​​मेनू विकल्प का उपयोग कर सकते हैं, केवल अपनी इच्छित छवियों का चयन करने के लिए, एक क्लिक के साथ सभी छवियों को अचयनित करें, फिर इन्हें चुनें जो आप चाहते हैं...

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

back