FFmpeg (https://www.ffmpeg.org/) ऑडियो और वीडियो को रिकॉर्ड करने, कनवर्ट करने और स्ट्रीम करने के लिए एक पूर्ण, क्रॉस-प्लेटफ़ॉर्म समाधान है। FFmpeg एक अग्रणी मल्टीमीडिया ढांचा है, जो मानव और मशीनों द्वारा बनाई गई किसी भी चीज को डिकोड, एनकोड, ट्रांसकोड, mux, demux, स्ट्रीम, फिल्टर और प्ले करने में सक्षम है। यह अत्याधुनिक तक के सबसे अस्पष्ट प्राचीन स्वरूपों का समर्थन करता है। कोई फर्क नहीं पड़ता कि वे कुछ मानक समिति, समुदाय या निगम द्वारा डिजाइन किए गए थे।
यह अत्यधिक पोर्टेबल भी है: FFmpeg हमारे परीक्षण बुनियादी ढांचे FATE को लिनक्स, मैक ओएस एक्स, माइक्रोसॉफ्ट विंडोज, बीएसडी, सोलारिस, आदि में संकलित करता है, चलाता है, और पास करता है ... विभिन्न प्रकार के निर्माण वातावरण, मशीन आर्किटेक्चर के तहत, और विन्यास।
FFmpeg लाइब्रेरी स्वयं LGPL 2.1 लाइसेंस के अंतर्गत है। कुछ बाहरी पुस्तकालयों (जैसे libx264) को सक्षम करने से लाइसेंस GPL 2 या बाद के संस्करण में बदल जाता है।
मैंने पुस्तकालयों को संकलित करने के लिए 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 क्लाइंट पर दिखाए गए "यूडीपी" यूआरएल का उपयोग करना संभव है।
पी>मल्टीकास्ट चैनल को रोकने का अच्छा तरीका यह है कि इसे उस क्लाइंट पर रोक दिया जाए जिस पर आपने इसे शुरू किया था क्योंकि यह चैनल वहां नियंत्रित होता है। स्ट्रीम की गई मीडिया फ़ाइलों के अंत तक चलाने से भी शो का अंत होना चाहिए।