FFmpeg (https://www.ffmpeg.org/) ऑडिओ आणि व्हिडिओ रेकॉर्ड, रूपांतरित आणि प्रवाहित करण्यासाठी एक संपूर्ण, क्रॉस-प्लॅटफॉर्म उपाय आहे. FFmpeg हे अग्रगण्य मल्टीमीडिया फ्रेमवर्क आहे, जे डीकोड, एन्कोड, ट्रान्सकोड, म्यूक्स, डेमक्स, स्ट्रीम, फिल्टर आणि मानव आणि मशीन यांनी तयार केलेले बरेच काही प्ले करण्यास सक्षम आहे. हे कटिंग एज पर्यंत सर्वात अस्पष्ट प्राचीन स्वरूपांचे समर्थन करते. ते काही मानक समिती, समुदाय किंवा कॉर्पोरेशनने डिझाइन केलेले असले तरीही काही फरक पडत नाही.
हे अत्यंत पोर्टेबल देखील आहे: FFmpeg आमच्या चाचणी पायाभूत सुविधा FATE ला Linux, Mac OS X, Microsoft Windows, BSDs, Solaris, इ... विविध प्रकारच्या बिल्ड वातावरणांतर्गत संकलित करते, चालवते आणि पास करते, मशीन आर्किटेक्चर, आणि कॉन्फिगरेशन्स.
FFmpeg लायब्ररी स्वतः LGPL 2.1 परवान्या अंतर्गत आहे. काही बाह्य लायब्ररी (जसे की libx264) सक्षम केल्याने GPL 2 किंवा नंतरचा परवाना बदलतो.
मी लायब्ररी संकलित करण्यासाठी ffmpeg-android-maker स्क्रिप्ट (योगदानकर्ते: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) वापरली. ही स्क्रिप्ट 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 साठी Java समर्थन विकसित करण्यासाठी आणि ते Android 7.1 ते 12 वर चालवण्यासाठी, मी Taner Sener द्वारे https://github.com/tanersener/mobile-ffmpeg/ वर दस्तऐवजीकरण केलेल्या MobileFFmpeg प्रकल्पापासून सुरुवात केली, जी आता राखली जात नाही. ... आणि LGPL 3.0 ...
अंतर्गत परवानाकृत आहेशेवटी, मी लायब्ररीसह एक JNI Android स्टुडिओ प्रकल्प तयार केला, फाइल्स आणि Java समर्थन कोड समाविष्ट केला आणि माझ्या विद्यमान प्रकल्पांमध्ये अतिरिक्त लायब्ररी म्हणून समाकलित करण्यासाठी .aar लायब्ररी फाइल तयार केली.
मल्टिकास्ट चॅनल सुरू करण्यासाठी क्लायंट वापरणे आवश्यक आहे, तुमच्या स्थानिक नेटवर्कवर (वाय-फाय) FFmpeg समर्थनासह UPnP सर्व्हरमध्ये प्रवेश करणे आवश्यक आहे. या सर्व्हरने निर्यात केलेल्या फाइल्सच्या यादीसह उत्तर दिले पाहिजे. या सर्व्हरला FFmpeg समर्थन असल्यास, सूची पृष्ठाच्या शीर्ष ओळीच्या शेवटी "चॅनेल म्हणून" एक लहान मजकूर लाल रंगात दर्शविला जाणे आवश्यक आहे. जेव्हा मजकूर "लाल" असतो, तेव्हा "प्ले" बटणावर क्लिक करणे UPnP प्रोटोकॉल वापरण्यापूर्वी कार्य करते. तुम्ही मजकूरावर क्लिक केल्यास, ते "हिरवे" झाले पाहिजे आणि व्हिडिओ किंवा ऑडिओ फाइल्स निवडल्यानंतर "प्ले" बटणावर क्लिक केल्याने, "चॅनेल" सुरू झाले पाहिजे.
निवडलेल्या मीडिया फाइल्स वरवर पाहता UPnP द्वारे सारख्याच प्रकारे प्ले केल्या जातात, अतिरिक्त कार्यांमुळे स्टार्टअप विलंब वगळता. पाईप सक्रिय ठेवण्यासाठी तुम्ही या क्लायंटला मीडिया फाइल्स प्ले करत ठेवाव्यात.
आयपी मल्टिकास्ट इंटरनेटवर काम करत नाही, ते फक्त लोकल एरिया नेटवर्कवर काम करते त्यामुळे प्रामुख्याने वाय-फायवर. मल्टीकास्ट डेटा चॅनेल एकाच वेळी अनेक क्लायंटद्वारे शेअर केले जाऊ शकते. तुम्ही तुमच्या वाय-फाय नेटवर्कवर मीडिया डेटा फ्लो पाठवत आहात आणि हा डेटा कनेक्ट केलेल्या डिव्हाइसेसवर दाखवता, जवळजवळ समकालिकपणे, फक्त विलंब विलंब फरक.
UPnP किंवा HTTP स्ट्रीमिंगसह, प्रत्येक डिव्हाइसला दाखवलेल्या व्हिडिओची बँडविड्थ आवश्यक आहे आणि ग्लोबल बँडविड्थ ही दोन्ही ट्रॅफिकची बेरीज आहे. मल्टीकास्ट स्ट्रीमिंगसह, आम्ही LAN वर एक डेटा प्रवाह पाठवतो जो एकाधिक क्लायंटमध्ये सामायिक केला जातो.
तुम्ही चॅनेल सुरू केल्यानंतर तुमच्या नेटवर्कवर दुसरा क्लायंट वापरत असल्यास, तुम्हाला क्लायंटच्या मुख्य विंडोवर अतिरिक्त ओळ दिसेल. फक्त या ओळीवर क्लिक केल्याने शो सुरू झाला पाहिजे.
व्हीएलसी, एसएमप्लेअर, ... सारख्या इतर उत्पादनांचा वापर करणे देखील व्यवहार्य आहे. p>
मल्टिकास्ट चॅनल थांबवण्याचा चांगला मार्ग म्हणजे ज्या क्लायंटवर तुम्ही ते सुरू केले त्या क्लायंटवर ते थांबवा कारण हे चॅनल तिथे नियंत्रित आहे. प्रवाहित मीडिया फाइल्सच्या शेवटी प्ले केल्याने शोचा शेवट देखील झाला पाहिजे.
मल्टिकास्ट चॅनेल सुरू करण्यासाठी या अनुप्रयोगाचा विशिष्ट क्लायंट भाग आवश्यक आहे, माझ्या इतर अद्ययावत उत्पादनांच्या eXport-it क्लायंटप्रमाणेच. रनिंग मल्टिकास्ट चॅनल वापरण्यासाठी अॅप्लिकेशन क्लायंटसह किंवा VLC, SMPlayer, ... इतर प्लॅटफॉर्मवर किंवा Android वर चालणाऱ्या इतर उत्पादनांसह केले जाऊ शकते. VLC वापरताना मल्टीकास्ट चॅनेल वापरण्यासाठी URL सहजतेने भिन्न असते जसे की udp://@239.255.147.111:27192... फक्त अतिरिक्त "@" सह. UDP मल्टीकास्ट चॅनेलसह मीडिया डेटा एकाधिक क्लायंटवर दाखवण्यासाठी फक्त एकदाच पाठविला जातो, परंतु कोणतेही वास्तविक सिंक्रोनाइझेशन नाही आणि बफरिंग आणि डिव्हाइस वैशिष्ट्यांवर अवलंबून विलंब काही सेकंदांचा असू शकतो.
ऑडिओ मल्टिकास्ट चॅनल ऐकणे इतर उत्पादनांसह केले जाऊ शकते परंतु विशिष्ट क्लायंट आयपी मल्टीकास्टवर पाठवलेल्या प्रतिमा देखील दाखवतो. तुम्हाला तुमच्या संगीतासह विशिष्ट फोटो पाठवायचे असल्यास, तुम्ही सर्व्हरवरील "पेज 2" मेनू पर्याय वापरू शकता, फक्त तुम्हाला हव्या असलेल्या प्रतिमा निवडण्यासाठी, एका क्लिकने सर्व प्रतिमांची निवड रद्द करा, त्यानंतर तुम्हाला हवे असलेले ते निवडा... p>
प्रत्येक प्रोटोकॉलमध्ये फायदे आणि गैरसोयी आहेत. UPnP आणि मल्टीकास्ट चॅनेल फक्त स्थानिक नेटवर्कवर (प्रामुख्याने वाय-फाय) वापरले जाऊ शकतात, HTTP स्ट्रीमिंग स्थानिक पातळीवर पण इंटरनेटवर देखील कार्य करते आणि क्लायंट म्हणून वेब ब्राउझर वापरतात. UPnP आणि मल्टीकास्ट चॅनेलकडे प्रवेश नियंत्रित करण्याचा कोणताही सुरक्षित मार्ग नाही आणि Wi-Fi नेटवर्कवर कनेक्ट केलेले कोणतेही डिव्हाइस चालू असलेल्या सर्व्हरचा वापर करू शकते. HTTP प्रोटोकॉलसह, तुम्ही वापरकर्तानावे आणि पासवर्ड परिभाषित करू शकता आणि विशिष्ट वापरकर्त्यांसाठी काही मीडिया फाइल्समध्ये प्रवेश मर्यादित करून, प्रवेश श्रेणींमध्ये (समूह) फाइल सेट करू शकता. सर्व्हरची सेटिंग्ज कोणत्या फायली वितरीत केल्या जातात यावर मर्यादा घालण्यास आणि आवश्यक असल्यास प्रति फाइल श्रेणी नाव सेट करण्यास परवानगी देते.