FFmpeg (https://www.ffmpeg.org/) अडियो र भिडियो रेकर्ड, रूपान्तरण र स्ट्रिम गर्नको लागि एक पूर्ण, क्रस-प्लेटफर्म समाधान हो। FFmpeg एक अग्रणी मल्टिमिडिया फ्रेमवर्क हो, जसले डिकोड गर्न, इन्कोड गर्न, ट्रान्सकोड गर्न, mux, demux, स्ट्रिम गर्न, फिल्टर गर्न र मानिस र मेसिनहरूले सिर्जना गरेका धेरै कुराहरू प्ले गर्न सक्षम छ। यसले सबैभन्दा अस्पष्ट पुरातन ढाँचाहरूलाई कटिङ एजसम्म समर्थन गर्दछ। तिनीहरू केही मानक समिति, समुदाय वा निगम द्वारा डिजाइन गरिएको हो भने फरक पर्दैन।
यो अत्यधिक पोर्टेबल पनि छ: FFmpeg ले हाम्रो परीक्षण पूर्वाधार FATE लाई Linux, Mac OS X, Microsoft Windows, BSDs, Solaris, इत्यादिमा कम्पाइल गर्छ, चलाउँछ र पास गर्छ। र कन्फिगरेसनहरू।
FFmpeg पुस्तकालय नै LGPL २.१ लाइसेन्स अन्तर्गत छ। केही बाह्य पुस्तकालयहरू (जस्तै libx264) सक्षम गर्नाले GPL 2 वा पछिको लाइसेन्स परिवर्तन हुन्छ।
मैले पुस्तकालयहरू कम्पाइल गर्न ffmpeg-android-maker स्क्रिप्ट (योगदानकर्ताहरू: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) प्रयोग गरें। यो स्क्रिप्टले https://www.ffmpeg.org बाट FFmpeg को स्रोत कोड डाउनलोड गर्छ र पुस्तकालय निर्माण गर्छ र एन्ड्रोइडका लागि जम्मा गर्छ। स्क्रिप्टले साझा पुस्तकालयहरू (*.so फाइलहरू) साथै हेडर फाइलहरू (*.h फाइलहरू) उत्पादन गर्छ।
ffmpeg-android-maker को मुख्य फोकस एन्ड्रोइड परियोजनामा सिमलेस एकीकरणको लागि साझा पुस्तकालयहरू तयार गर्नु हो। स्क्रिप्टले 'आउटपुट' डाइरेक्टरी तयार गर्दछ जुन प्रयोग गर्नको लागि हो। र यो मात्र यो परियोजना गर्छ भन्ने कुरा होइन। ffmpeg-android-maker को स्रोत कोड MIT लाइसेन्स अन्तर्गत उपलब्ध छ। https://github.com/Javernaut/ffmpeg-android-maker/ मा थप विवरणहरूको लागि LICENSE.txt फाइल हेर्नुहोस् eXport-it FFmpeg पुस्तकालयहरू libaom, libdav1d, liblame, libopus र libtwolame... तर सबै सम्बन्धित पुस्तकालयहरूसँग मात्र कम्पाइल गरिएका छन्।
FFmpeg को लागि Java समर्थन विकास गर्न र एन्ड्रोइड 7.1 देखि 12 मा चलाउन, मैले Taner Sener द्वारा https://github.com/tanersener/mobile-ffmpeg/ मा दस्तावेज गरिएको MobileFFmpeg परियोजनाबाट सुरु गरें, जुन अब राखिएको छैन। ... र LGPL 3.0 अन्तर्गत इजाजतपत्र प्राप्त छ ...
अन्तमा, मैले पुस्तकालयहरूसँग JNI एन्ड्रोइड स्टुडियो परियोजना तयार गरें, फाइलहरू र Java समर्थन कोड समावेश गरें, र मेरा अवस्थित परियोजनाहरूमा अतिरिक्त पुस्तकालयको रूपमा एकीकृत गर्नको लागि .aar लाइब्रेरी फाइल उत्पन्न गरें।
मल्टिकास्ट च्यानल सुरु गर्न ग्राहक प्रयोग गर्न आवश्यक छ, FFmpeg समर्थनको साथ तपाईंको स्थानीय नेटवर्क (Wi-Fi) मा UPnP सर्भर पहुँच गर्न। यो सर्भरले निर्यात गर्ने फाइलहरूको सूचीसँग जवाफ दिनुपर्छ। यदि यो सर्भरमा FFmpeg समर्थन छ भने, एउटा सानो पाठ "च्यानलको रूपमा" सूची पृष्ठको शीर्ष रेखाको अन्त्यमा रातोमा देखाइनुपर्छ। जब पाठ "रातो" हुन्छ, "प्ले" बटनमा क्लिक गर्दा UPnP प्रोटोकल प्रयोग गर्नु अघि जस्तै काम गर्दछ। यदि तपाईंले पाठमा क्लिक गर्नुभयो भने, यो "हरियो" बन्छ र "प्ले" बटनमा क्लिक गर्दा, भिडियो वा अडियो फाइलहरू चयन गरेपछि, "च्यानल" सुरु गर्नुपर्छ।
चयन गरिएका मिडिया फाइलहरू UPnP मार्फत भन्दा उस्तै रूपमा प्ले हुन्छन्, बाहेक स्टार्टअप ढिलाइ थप कार्यहरूको कारणले लामो हुन्छ। तपाईंले यो क्लाइन्टलाई पाइप सक्रिय राख्न मिडिया फाइलहरू प्ले गरिराख्नु पर्छ।
IP मल्टिकास्टले इन्टरनेटमा काम गर्दैन, यसले लोकल एरिया नेटवर्कमा मात्र काम गर्छ त्यसैले मुख्यतया Wi-Fi मा। मल्टीकास्ट डाटा च्यानल एकै साथ धेरै ग्राहकहरु द्वारा साझा गर्न सकिन्छ। तपाईं आफ्नो Wi-Fi नेटवर्कमा मिडिया डेटा प्रवाह पठाउँदै हुनुहुन्छ र यी डाटाहरू जडान गरिएका यन्त्रहरूमा देखाउनुहुन्छ, लगभग सिंक्रोनस रूपमा, केवल विलम्बता ढिलाइ भिन्नता।
UPnP वा HTTP स्ट्रिमिङको साथमा, प्रत्येक यन्त्रलाई देखाइएको भिडियोको ब्यान्डविथ चाहिन्छ र विश्वव्यापी ब्यान्डविथ दुवै ट्राफिकको योगफल हो। मल्टिकास्ट स्ट्रिमिङको साथ, हामी LAN मा एक डेटा प्रवाह पठाउँछौं जुन धेरै ग्राहकहरू बीच साझा गरिन्छ।
यदि तपाईंले च्यानल सुरु गरेपछि आफ्नो नेटवर्कमा अर्को क्लाइन्ट प्रयोग गर्नुहुन्छ भने, तपाईंले क्लाइन्टको मुख्य सञ्झ्यालमा अतिरिक्त लाइन देख्नुपर्छ। यो लाइनमा क्लिक गर्दा मात्र शो सुरु गर्नुपर्छ।
वीएलसी, एसएमप्लेयर, ... जस्ता अन्य उत्पादनहरू प्रयोग गर्न पनि सम्भाव्य छ। p>
मल्टिकास्ट च्यानल रोक्नको लागि राम्रो तरिका भनेको तपाईंले सुरु गर्नुभएको क्लाइन्टमा यसलाई रोक्नु हो किनभने यो च्यानल त्यहाँ नियन्त्रित छ। स्ट्रिम गरिएका मिडिया फाइलहरूको अन्त्यमा प्ले गर्दा शोको अन्त्य पनि दिनुपर्छ।