FFmpeg (https://www.ffmpeg.org/) అనేది ఆడియో మరియు వీడియోలను రికార్డ్ చేయడానికి, మార్చడానికి మరియు ప్రసారం చేయడానికి పూర్తి, క్రాస్-ప్లాట్ఫారమ్ పరిష్కారం. FFmpeg అనేది ప్రముఖ మల్టీమీడియా ఫ్రేమ్వర్క్, ఇది డీకోడ్ చేయగలదు, ఎన్కోడ్ చేయగలదు, ట్రాన్స్కోడ్, మక్స్, డీమక్స్, స్ట్రీమ్, ఫిల్టర్ మరియు మానవులు మరియు యంత్రాలు సృష్టించిన ఏదైనా చాలా చక్కగా ప్లే చేయగలదు. ఇది కట్టింగ్ ఎడ్జ్ వరకు అత్యంత అస్పష్టమైన పురాతన ఫార్మాట్లకు మద్దతు ఇస్తుంది. అవి కొన్ని ప్రమాణాల కమిటీ, సంఘం లేదా కార్పొరేషన్ ద్వారా రూపొందించబడినా సరే.
ఇది కూడా అత్యంత పోర్టబుల్: FFmpeg Linux, Mac OS X, Microsoft Windows, BSDలు, సోలారిస్ మొదలైన వాటిలో మా టెస్టింగ్ ఇన్ఫ్రాస్ట్రక్చర్ FATEని కంపైల్ చేస్తుంది, అమలు చేస్తుంది మరియు పాస్ చేస్తుంది... అనేక రకాల బిల్డ్ ఎన్విరాన్మెంట్లు, మెషిన్ ఆర్కిటెక్చర్లు, మరియు కాన్ఫిగరేషన్లు.
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 కోసం జావా సపోర్ట్ని డెవలప్ చేయడానికి మరియు దానిని ఆండ్రాయిడ్ 7.1 నుండి 12 వరకు రన్ చేయడానికి, Taner Sener ద్వారా https://github.com/tanersener/mobile-ffmpeg/లో డాక్యుమెంట్ చేయబడిన MobileFFmpeg ప్రాజెక్ట్ నుండి నేను ప్రారంభించాను, ఇది ఇకపై నిర్వహించబడదు. ... మరియు LGPL 3.0 ...
కింద లైసెన్స్ పొందిందిచివరిగా, నేను లైబ్రరీలతో JNI ఆండ్రాయిడ్ స్టూడియో ప్రాజెక్ట్ని సిద్ధం చేసాను, ఫైల్లు మరియు జావా సపోర్ట్ కోడ్ని చేర్చాను మరియు నా ప్రస్తుత ప్రాజెక్ట్లలో అదనపు లైబ్రరీగా ఏకీకరణ చేయడానికి .aar లైబ్రరీ ఫైల్ను రూపొందించాను.
మల్టీకాస్ట్ ఛానెల్ని ప్రారంభించడానికి ఒక క్లయింట్ని ఉపయోగించాలి, FFmpeg మద్దతుతో మీ స్థానిక నెట్వర్క్ (Wi-Fi)లో UPnP సర్వర్ని యాక్సెస్ చేయాలి. ఈ సర్వర్ ఎగుమతి చేసే ఫైల్లకు జాబితాతో సమాధానం ఇవ్వాలి. ఈ సర్వర్ FFmpeg మద్దతుని కలిగి ఉన్నట్లయితే, జాబితా పేజీ యొక్క ఎగువ పంక్తి చివరిలో "ఛానల్ వలె" అనే చిన్న వచనం తప్పనిసరిగా ఎరుపు రంగులో చూపబడుతుంది. వచనం "ఎరుపు"గా ఉన్నప్పుడు, "ప్లే" బటన్పై క్లిక్ చేయడం UPnP ప్రోటోకాల్ని ఉపయోగించే ముందు పని చేస్తుంది. మీరు టెక్స్ట్పై క్లిక్ చేస్తే, అది "ఆకుపచ్చ"గా మారుతుంది మరియు "ప్లే" బటన్పై క్లిక్ చేస్తే, వీడియో లేదా ఆడియో ఫైల్లను ఎంచుకున్న తర్వాత, "ఛానెల్"ని ప్రారంభించాలి.
అదనపు టాస్క్ల కారణంగా స్టార్టప్ ఆలస్యం ఎక్కువ కాకుండా, ఎంచుకోబడిన మీడియా ఫైల్లు UPnP ద్వారా కాకుండా అదే విధంగా ప్లే చేయబడతాయి. పైప్ను సక్రియంగా ఉంచడానికి మీరు ఈ క్లయింట్ని మీడియా ఫైల్లను ప్లే చేస్తూ ఉండాలి.
IP మల్టీక్యాస్ట్ ఇంటర్నెట్లో పని చేయదు, ఇది లోకల్ ఏరియా నెట్వర్క్లో మాత్రమే పని చేస్తుంది కాబట్టి ప్రధానంగా Wi-Fiలో. బహుళ ప్రసార డేటా ఛానెల్ని అనేక మంది క్లయింట్లు ఏకకాలంలో భాగస్వామ్యం చేయవచ్చు. మీరు మీ Wi-Fi నెట్వర్క్లో మీడియా డేటా ఫ్లోను పంపుతున్నారు మరియు కనెక్ట్ చేయబడిన పరికరాలలో ఈ డేటాను దాదాపుగా సమకాలీకరించబడినట్లుగా చూపండి, కేవలం జాప్యం ఆలస్యం తేడా.
UPnP లేదా HTTP స్ట్రీమింగ్తో, ప్రతి పరికరానికి చూపబడిన వీడియో యొక్క బ్యాండ్విడ్త్ అవసరం మరియు గ్లోబల్ బ్యాండ్విడ్త్ అనేది ట్రాఫిక్ రెండింటి మొత్తం. మల్టీక్యాస్ట్ స్ట్రీమింగ్తో, మేము బహుళ క్లయింట్ల మధ్య భాగస్వామ్యం చేయబడిన ఒక డేటా ఫ్లోను LANలో పంపుతాము.
మీరు ఛానెల్ని ప్రారంభించిన తర్వాత మీ నెట్వర్క్లో మరొక క్లయింట్ని ఉపయోగిస్తే, క్లయింట్ మెయిన్ విండోలో మీకు అదనపు లైన్ కనిపిస్తుంది. ఈ లైన్పై క్లిక్ చేయడం ద్వారా ప్రదర్శన ప్రారంభం అవుతుంది.
ఎక్స్పోర్ట్-ఇట్ క్లయింట్లో చూపిన "UDP" URLని ఉపయోగించి వీడియోను చూపించడానికి లేదా మల్టీక్యాస్ట్ ఛానెల్లో పంపిణీ చేయబడిన సంగీతాన్ని వినడానికి VLC, SMplayer, ... వంటి ఇతర ఉత్పత్తులను ఉపయోగించడం కూడా సాధ్యమే. p>
మల్టీకాస్ట్ ఛానెల్ని ఆపడానికి మంచి మార్గం ఏమిటంటే, మీరు దాన్ని ప్రారంభించిన క్లయింట్లో ఈ ఛానెల్ నియంత్రించబడుతుంది. స్ట్రీమ్ చేయబడిన మీడియా ఫైల్ల చివరి వరకు ప్లే చేయడం కూడా ప్రదర్శన ముగింపుని అందించాలి.
మల్టీకాస్ట్ ఛానెల్ని ప్రారంభించడానికి ఈ అప్లికేషన్లోని నిర్దిష్ట క్లయింట్ భాగం అవసరం, అదే నా ఇతర తాజా ఉత్పత్తుల యొక్క ఎగుమతి-ఇట్ క్లయింట్. రన్నింగ్ మల్టీక్యాస్ట్ ఛానెల్ని ఉపయోగించడానికి అప్లికేషన్ క్లయింట్ లేదా VLC, SMPlayer, ... ఇతర ప్లాట్ఫారమ్లలో లేదా Androidలో రన్ అయ్యే ఇతర ఉత్పత్తులతో చేయవచ్చు. VLCని ఉపయోగిస్తున్నప్పుడు మల్టీక్యాస్ట్ ఛానెల్ని ఉపయోగించడానికి URL udp://@239.255.147.111:27192... వంటి అదనపు "@"తో సజావుగా భిన్నంగా ఉంటుంది. UDP మల్టీక్యాస్ట్ ఛానెల్తో మీడియా డేటా బహుళ క్లయింట్లలో చూపబడటానికి ఒక్కసారి మాత్రమే పంపబడుతుంది, కానీ నిజమైన సమకాలీకరణ లేదు మరియు బఫరింగ్ మరియు పరికర లక్షణాలపై ఆధారపడి ఆలస్యం సెకన్లు ఉండవచ్చు.
ఆడియో మల్టీక్యాస్ట్ ఛానెల్ని వినడం ఇతర ఉత్పత్తులతో చేయవచ్చు కానీ నిర్దిష్ట క్లయింట్ IP మల్టీకాస్ట్ ద్వారా కూడా పంపబడిన చిత్రాలను చూపుతుంది. మీరు మీ సంగీతంతో నిర్దిష్ట ఫోటోలను పంపాలనుకుంటే, మీరు సర్వర్లో "పేజీ 2" మెను ఎంపికను ఉపయోగించవచ్చు, మీకు కావలసిన చిత్రాలను మాత్రమే ఎంచుకోవడానికి, ఒకే క్లిక్తో అన్ని చిత్రాలను ఎంపికను తీసివేయండి, ఆపై మీకు కావలసిన వీటిని ఎంచుకోండి... p>
ప్రతి ప్రోటోకాల్తో ప్రయోజనాలు మరియు అసౌకర్యాలు ఉన్నాయి. UPnP మరియు Multicast ఛానెల్ స్థానిక నెట్వర్క్లో మాత్రమే ఉపయోగించబడతాయి (ప్రధానంగా Wi-Fi), HTTP స్ట్రీమింగ్ స్థానికంగా కానీ ఇంటర్నెట్లో కానీ పని చేస్తుంది మరియు వెబ్ బ్రౌజర్ను క్లయింట్గా ఉపయోగిస్తుంది. UPnP మరియు Multicast ఛానెల్కి ప్రాప్యతను నియంత్రించడానికి సురక్షితమైన మార్గం లేదు మరియు Wi-Fi నెట్వర్క్లో కనెక్ట్ చేయబడిన ఏదైనా పరికరం నడుస్తున్న సర్వర్ని ఉపయోగించవచ్చు. HTTP ప్రోటోకాల్తో, మీరు వినియోగదారు పేర్లు మరియు పాస్వర్డ్లను నిర్వచించవచ్చు మరియు నిర్దిష్ట వినియోగదారుల కోసం కొన్ని మీడియా ఫైల్లకు ప్రాప్యతను పరిమితం చేస్తూ యాక్సెస్ కేటగిరీలు (సమూహాలు)లో ఫైల్లను సెట్ చేయవచ్చు. సర్వర్ సెట్టింగ్లు ఏ ఫైల్లు పంపిణీ చేయబడతాయో పరిమితం చేయడానికి మరియు అవసరమైతే ఒక్కో ఫైల్కు ఒక వర్గం పేరును సెట్ చేయడానికి అనుమతిస్తాయి.