FFmpeg (https://www.ffmpeg.org/) ઑડિયો અને વિડિયોને રેકોર્ડ કરવા, કન્વર્ટ કરવા અને સ્ટ્રીમ કરવા માટે એક સંપૂર્ણ, ક્રોસ-પ્લેટફોર્મ સોલ્યુશન છે. FFmpeg એ અગ્રણી મલ્ટીમીડિયા ફ્રેમવર્ક છે, જે માનવીઓ અને મશીનોએ બનાવેલ કોઈપણ વસ્તુને ડીકોડ, એન્કોડ, ટ્રાન્સકોડ, મક્સ, ડેમક્સ, સ્ટ્રીમ, ફિલ્ટર અને પ્લે કરવામાં સક્ષમ છે. તે કટીંગ એજ સુધીના સૌથી અસ્પષ્ટ પ્રાચીન ફોર્મેટને સપોર્ટ કરે છે. ભલે તેઓ અમુક ધોરણો સમિતિ, સમુદાય અથવા કોર્પોરેશન દ્વારા ડિઝાઇન કરવામાં આવ્યા હોય.
તે અત્યંત પોર્ટેબલ પણ છે: FFmpeg સમગ્ર Linux, Mac OS X, Microsoft Windows, BSDs, Solaris, વગેરે... પર અમારા ટેસ્ટિંગ ઇન્ફ્રાસ્ટ્રક્ચર 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 માટે Java સપોર્ટ વિકસાવવા અને તેને Android 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 પર. મલ્ટિકાસ્ટ ડેટા ચેનલને એકસાથે ઘણા ક્લાયન્ટ્સ દ્વારા શેર કરી શકાય છે. તમે તમારા વાઇ-ફાઇ નેટવર્ક પર મીડિયા ડેટા ફ્લો મોકલી રહ્યાં છો અને લગભગ સિંક્રનસ રીતે કનેક્ટેડ ડિવાઇસ પર આ ડેટા બતાવો છો, માત્ર લેટન્સી વિલંબનો તફાવત.
UPnP અથવા HTTP સ્ટ્રીમિંગ સાથે, દરેક ઉપકરણને બતાવેલ વિડિઓની બેન્ડવિડ્થની જરૂર છે અને વૈશ્વિક બેન્ડવિડ્થ એ બંને ટ્રાફિકનો સરવાળો છે. મલ્ટિકાસ્ટ સ્ટ્રીમિંગ સાથે, અમે LAN પર એક ડેટા ફ્લો મોકલીએ છીએ જે બહુવિધ ક્લાયન્ટ્સ વચ્ચે શેર કરવામાં આવે છે.
જો તમે ચેનલ શરૂ કર્યા પછી તમારા નેટવર્ક પર બીજા ક્લાયંટનો ઉપયોગ કરો છો, તો તમારે ક્લાયંટની મુખ્ય વિન્ડો પર વધારાની લાઇન જોવી જોઈએ. ફક્ત આ લાઇન પર ક્લિક કરવાથી શો શરૂ થવો જોઈએ.
વિડિઓ બતાવવા માટે અથવા ફક્ત eXport-it ક્લાયંટ પર દર્શાવેલ "UDP" URL નો ઉપયોગ કરીને વિડિયો બતાવવા અથવા મલ્ટિકાસ્ટ ચેનલ પર વિતરિત સંગીત સાંભળવા VLC, SMplayer, જેવા અન્ય ઉત્પાદનોનો ઉપયોગ કરવો પણ શક્ય છે.
p>મલ્ટિકાસ્ટ ચેનલને રોકવા માટેની સારી રીત એ છે કે તમે જે ક્લાયન્ટ પર તેને શરૂ કર્યું છે તેના પર તેને રોકો કારણ કે આ ચેનલ ત્યાં નિયંત્રિત છે. સ્ટ્રીમ કરેલી મીડિયા ફાઇલોના અંત સુધી ચલાવવાથી શોનો અંત પણ મળવો જોઈએ.
મલ્ટિકાસ્ટ ચેનલ શરૂ કરવા માટે આ એપ્લિકેશનના ચોક્કસ ક્લાયન્ટ ભાગની જરૂર છે, જે મારા અન્ય અપ-ટુ-ડેટ ઉત્પાદનોના eXport-it ક્લાયન્ટની જેમ છે. ચાલી રહેલ મલ્ટીકાસ્ટ ચેનલનો ઉપયોગ એપ્લીકેશન ક્લાયંટ સાથે અથવા અન્ય ઉત્પાદનો જેમ કે VLC, SMPlayer, ... અન્ય પ્લેટફોર્મ અથવા Android પર ચાલી શકે છે. VLC નો ઉપયોગ કરતી વખતે મલ્ટીકાસ્ટ ચેનલનો ઉપયોગ કરવા માટેનું URL સરળ રીતે અલગ છે જેમ કે udp://@239.255.147.111:27192... ફક્ત વધારાના "@" સાથે. UDP મલ્ટિકાસ્ટ ચેનલ સાથે મીડિયા ડેટા બહુવિધ ક્લાયંટ પર બતાવવા માટે માત્ર એક જ વાર મોકલવામાં આવે છે, પરંતુ ત્યાં કોઈ વાસ્તવિક સિંક્રનાઇઝેશન નથી, અને વિલંબ બફરિંગ અને ઉપકરણ લાક્ષણિકતાઓના આધારે સેકંડનો હોઈ શકે છે.
ઓડિયો મલ્ટીકાસ્ટ ચેનલને સાંભળવું એ અન્ય ઉત્પાદનો સાથે કરી શકાય છે પરંતુ ચોક્કસ ક્લાયંટ IP મલ્ટિકાસ્ટ પર મોકલવામાં આવેલી છબીઓ પણ બતાવે છે. જો તમે તમારા સંગીત સાથે ચોક્કસ ફોટા મોકલવા માંગતા હો, તો તમે સર્વર પર "પૃષ્ઠ 2" મેનૂ વિકલ્પનો ઉપયોગ કરી શકો છો, ફક્ત તમને જોઈતી છબીઓ પસંદ કરવા માટે, એક ક્લિક સાથે બધી છબીઓને નાપસંદ કરો, પછી તમે ઇચ્છો તે પસંદ કરો... p>
દરેક પ્રોટોકોલ સાથે ફાયદા અને અસુવિધાઓ છે. UPnP અને મલ્ટીકાસ્ટ ચેનલનો ઉપયોગ ફક્ત સ્થાનિક નેટવર્ક (મુખ્યત્વે Wi-Fi) પર થઈ શકે છે, HTTP સ્ટ્રીમિંગ સ્થાનિક રીતે પણ ઇન્ટરનેટ પર પણ કામ કરે છે અને ક્લાયન્ટ તરીકે વેબ બ્રાઉઝરનો ઉપયોગ કરે છે. UPnP અને મલ્ટીકાસ્ટ ચેનલ પાસે ઍક્સેસને નિયંત્રિત કરવાની કોઈ સુરક્ષિત રીત નથી અને Wi-Fi નેટવર્ક પર જોડાયેલ કોઈપણ ઉપકરણ ચાલતા સર્વરનો ઉપયોગ કરી શકે છે. HTTP પ્રોટોકોલ સાથે, તમે વપરાશકર્તાનામ અને પાસવર્ડ વ્યાખ્યાયિત કરી શકો છો, અને ચોક્કસ વપરાશકર્તાઓ માટે કેટલીક મીડિયા ફાઇલોની ઍક્સેસને મર્યાદિત કરીને ઍક્સેસ શ્રેણીઓ (જૂથો)માં ફાઇલોને સેટ કરી શકો છો. સર્વરની સેટિંગ્સ કઈ ફાઇલોને વિતરિત કરવામાં આવે છે તે મર્યાદિત કરવા અને જો જરૂરી હોય તો ફાઇલ દીઠ શ્રેણીનું નામ સેટ કરવાની પરવાનગી આપે છે.