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>
मल्टिकास्ट च्यानल रोक्नको लागि राम्रो तरिका भनेको तपाईंले सुरु गर्नुभएको क्लाइन्टमा यसलाई रोक्नु हो किनभने यो च्यानल त्यहाँ नियन्त्रित छ। स्ट्रिम गरिएका मिडिया फाइलहरूको अन्त्यमा प्ले गर्दा शोको अन्त्य पनि दिनुपर्छ।
मल्टिकास्ट च्यानल सुरु गर्नको लागि यो अनुप्रयोगको एक विशेष ग्राहक भाग चाहिन्छ, मेरो अन्य अप-टु-डेट उत्पादनहरूको एक्सपोर्ट-इट क्लाइन्ट जस्तै। चलिरहेको मल्टिकास्ट च्यानल प्रयोग गर्न अनुप्रयोग ग्राहक वा अन्य उत्पादनहरू जस्तै VLC, SMPlayer, ... अन्य प्लेटफर्महरूमा वा एन्ड्रोइडमा चलिरहेकोसँग गर्न सकिन्छ। VLC प्रयोग गर्दा मल्टिकास्ट च्यानल प्रयोग गर्न URL सजिलै फरक हुन्छ जस्तै udp://@239.255.147.111:27192... अतिरिक्त "@" को साथ। UDP मल्टिकास्ट च्यानलको साथ मिडिया डेटा एक पटक मात्र धेरै क्लाइन्टहरूमा देखाउन पठाइन्छ, तर त्यहाँ कुनै वास्तविक सिङ्क्रोनाइजेसन छैन, र ढिलाइ बफरिङ र उपकरण विशेषताहरूमा निर्भर गर्दै सेकेन्ड हुन सक्छ।
अडियो मल्टिकास्ट च्यानल सुन्न अन्य उत्पादनहरूसँग गर्न सकिन्छ तर विशिष्ट ग्राहकले आईपी मल्टिकास्टमा पठाइएका छविहरू पनि देखाउँछन्। यदि तपाइँ तपाइँको संगीत संग विशिष्ट फोटोहरू पठाउन चाहनुहुन्छ भने, तपाइँ सर्भरमा "पृष्ठ 2" मेनु विकल्प प्रयोग गर्न सक्नुहुन्छ, तपाइँ चाहानु भएको छविहरू मात्र चयन गर्न, एक क्लिकमा सबै छविहरू अचयन गर्नुहोस्, त्यसपछि तपाइँ चाहानु भएको यी चयन गर्नुहोस्... p>
प्रत्येक प्रोटोकलमा फाइदा र असुविधाहरू छन्। UPnP र Multicast च्यानल स्थानीय नेटवर्कमा मात्र प्रयोग गर्न सकिन्छ (मुख्य रूपमा Wi-Fi), HTTP स्ट्रिमिङले स्थानीय रूपमा तर इन्टरनेटमा पनि काम गर्दछ र ग्राहकको रूपमा वेब ब्राउजर प्रयोग गर्दछ। UPnP र Multicast च्यानल पहुँच नियन्त्रण गर्न कुनै सुरक्षित तरिका छैन, र Wi-Fi नेटवर्कमा जडान भएको कुनै पनि उपकरणले चलिरहेको सर्भर प्रयोग गर्न सक्छ। HTTP प्रोटोकलको साथ, तपाइँ प्रयोगकर्ता नाम र पासवर्डहरू परिभाषित गर्न सक्नुहुन्छ, र पहुँच कोटीहरू (समूहहरू) मा फाइलहरू सेट गर्न सक्नुहुन्छ, विशिष्ट प्रयोगकर्ताहरूको लागि केही मिडिया फाइलहरूमा पहुँच सीमित गर्दै। सर्भरको सेटिङहरूले कुन फाइलहरू वितरण गरिन्छन् भनेर सीमित गर्न र आवश्यक भएमा प्रति फाइल श्रेणी नाम सेट गर्न अनुमति दिन्छ।