back

eXport-it FFmpeg

എന്താണ് FFmpeg ലൈബ്രറി?

FFmpeg (https://www.ffmpeg.org/) എന്നത് ഓഡിയോയും വീഡിയോയും റെക്കോർഡ് ചെയ്യാനും പരിവർത്തനം ചെയ്യാനും സ്ട്രീം ചെയ്യാനുമുള്ള ഒരു സമ്പൂർണ്ണ, ക്രോസ്-പ്ലാറ്റ്ഫോം പരിഹാരമാണ്. മനുഷ്യരും മെഷീനുകളും സൃഷ്‌ടിച്ച ഏതൊരു കാര്യവും ഡീകോഡ് ചെയ്യാനും, എൻകോഡ് ചെയ്യാനും, ട്രാൻസ്‌കോഡ് ചെയ്യാനും, മക്‌സ്, ഡീമക്‌സ്, സ്‌ട്രീം ചെയ്യാനും, ഫിൽട്ടർ ചെയ്യാനും, പ്ലേ ചെയ്യാനും കഴിയുന്ന പ്രമുഖ മൾട്ടിമീഡിയ ചട്ടക്കൂടാണ് FFmpeg. കട്ടിംഗ് എഡ്ജ് വരെയുള്ള ഏറ്റവും അവ്യക്തമായ പുരാതന ഫോർമാറ്റുകളെ ഇത് പിന്തുണയ്ക്കുന്നു. അവ ചില സ്റ്റാൻഡേർഡ് കമ്മിറ്റിയോ കമ്മ്യൂണിറ്റിയോ കോർപ്പറേഷനോ രൂപകല്പന ചെയ്തതാണെങ്കിൽ പ്രശ്നമില്ല.

ഇത് വളരെ പോർട്ടബിൾ കൂടിയാണ്: ലിനക്സ്, മാക് ഒഎസ് എക്സ്, മൈക്രോസോഫ്റ്റ് വിൻഡോസ്, ബിഎസ്‌ഡികൾ, സോളാരിസ് തുടങ്ങിയവയിലുടനീളമുള്ള ഞങ്ങളുടെ ടെസ്റ്റിംഗ് ഇൻഫ്രാസ്ട്രക്ചർ FATE FFmpeg കംപൈൽ ചെയ്യുന്നു, പ്രവർത്തിപ്പിക്കുന്നു, പാസ്സാക്കുന്നു... കോൺഫിഗറേഷനുകളും.

FFmpeg ലൈബ്രറി തന്നെ LGPL 2.1 ലൈസൻസിന് കീഴിലാണ്. ചില ബാഹ്യ ലൈബ്രറികൾ പ്രവർത്തനക്ഷമമാക്കുന്നത് (libx264 പോലെയുള്ളത്) ലൈസൻസിനെ GPL 2 അല്ലെങ്കിൽ അതിന് ശേഷമുള്ളതാക്കി മാറ്റുന്നു.

Android ആപ്ലിക്കേഷനിൽ ഈ ലൈബ്രറി എങ്ങനെ സംയോജിപ്പിച്ചിരിക്കുന്നു

ലൈബ്രറികൾ സമാഹരിക്കാൻ ഞാൻ ffmpeg-android-maker സ്ക്രിപ്റ്റ് (സംഭാവകർ: Alexander Berezhnoi Javernaut + codacy-badger Codacy Badger + A2va) ഉപയോഗിച്ചു. ഈ സ്‌ക്രിപ്റ്റ് https://www.ffmpeg.org-ൽ നിന്ന് FFmpeg-ന്റെ സോഴ്‌സ് കോഡ് ഡൗൺലോഡ് ചെയ്യുകയും ലൈബ്രറി നിർമ്മിക്കുകയും Android-നായി അത് കൂട്ടിച്ചേർക്കുകയും ചെയ്യുന്നു. സ്ക്രിപ്റ്റ് പങ്കിട്ട ലൈബ്രറികളും (*.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-നുള്ള ജാവ പിന്തുണ വികസിപ്പിക്കാനും 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-ലേക്ക് ഒരു ഡാറ്റാ ഫ്ലോ അയയ്‌ക്കുന്നു, അത് ഒന്നിലധികം ക്ലയന്റുകൾക്കിടയിൽ പങ്കിടുന്നു.

ഒരു ചാനൽ ആരംഭിച്ചതിന് ശേഷം നിങ്ങളുടെ നെറ്റ്‌വർക്കിൽ മറ്റൊരു ക്ലയന്റ് ഉപയോഗിക്കുകയാണെങ്കിൽ, ക്ലയന്റ് മെയിൻ വിൻഡോയിൽ നിങ്ങൾ ഒരു അധിക ലൈൻ കാണും. ഈ ലൈനിൽ ക്ലിക്ക് ചെയ്താൽ ഷോ ആരംഭിക്കും.

എക്‌സ്‌പോർട്ട്-ഇറ്റ് ക്ലയന്റിൽ കാണിച്ചിരിക്കുന്ന "UDP" URL ഉപയോഗിച്ച് ഒരു വീഡിയോ കാണിക്കുന്നതിനോ മൾട്ടികാസ്റ്റ് ചാനലിൽ വിതരണം ചെയ്യുന്ന സംഗീതം കേൾക്കുന്നതിനോ VLC, SMplayer, ... പോലുള്ള മറ്റ് ഉൽപ്പന്നങ്ങൾ ഉപയോഗിക്കുന്നതും സാധ്യമാണ്.

ഒരു മൾട്ടികാസ്റ്റ് ചാനൽ നിർത്താൻ

ഒരു മൾട്ടികാസ്റ്റ് ചാനൽ നിർത്തുന്നതിനുള്ള നല്ല മാർഗം, നിങ്ങൾ അത് ആരംഭിച്ച ക്ലയന്റിൽ അത് നിർത്തുക എന്നതാണ്, കാരണം ഈ ചാനൽ അവിടെ നിയന്ത്രിക്കപ്പെടുന്നു. സ്‌ട്രീം ചെയ്‌ത മീഡിയ ഫയലുകളുടെ അവസാനം വരെ പ്ലേ ചെയ്യുന്നത് ഷോയുടെ അവസാനവും നൽകണം.

പ്രായോഗിക പരിഗണനകൾ

ഒരു മൾട്ടികാസ്റ്റ് ചാനൽ ആരംഭിക്കുന്നതിന് ഈ ആപ്ലിക്കേഷന്റെ ഒരു പ്രത്യേക ക്ലയന്റ് ഭാഗം ആവശ്യമാണ്, എന്റെ മറ്റ് കാലികമായ ഉൽപ്പന്നങ്ങളുടെ എക്‌സ്‌പോർട്ട്-ഇറ്റ് ക്ലയന്റ് പോലെ തന്നെ. പ്രവർത്തിക്കുന്ന മൾട്ടികാസ്റ്റ് ചാനൽ ഉപയോഗിക്കാൻ ആപ്ലിക്കേഷൻ ക്ലയന്റ് ഉപയോഗിച്ചോ അല്ലെങ്കിൽ മറ്റ് പ്ലാറ്റ്‌ഫോമുകളിലോ Android-ലോ പ്രവർത്തിക്കുന്ന VLC, SMPlayer, ... പോലുള്ള മറ്റ് ഉൽപ്പന്നങ്ങൾ ഉപയോഗിച്ചോ ചെയ്യാം. VLC ഉപയോഗിക്കുമ്പോൾ, ഒരു മൾട്ടികാസ്റ്റ് ചാനൽ ഉപയോഗിക്കുന്നതിനുള്ള URL, udp://@239.255.147.111:27192... ഒരു അധിക "@" ഉപയോഗിച്ച് സുഗമമായി വ്യത്യസ്തമാണ്. ഒരു UDP മൾട്ടികാസ്റ്റ് ചാനൽ ഉപയോഗിച്ച്, ഒന്നിലധികം ക്ലയന്റുകളിൽ കാണിക്കാൻ മീഡിയ ഡാറ്റ ഒരു തവണ മാത്രമേ അയയ്‌ക്കൂ, എന്നാൽ യഥാർത്ഥ സമന്വയം ഇല്ല, ബഫറിംഗും ഉപകരണ സവിശേഷതകളും അനുസരിച്ച് കാലതാമസം സെക്കന്റുകൾ ആകാം.

ഒരു ഓഡിയോ മൾട്ടികാസ്റ്റ് ചാനൽ ശ്രവിക്കുന്നത് മറ്റ് ഉൽപ്പന്നങ്ങളിലൂടെ ചെയ്യാവുന്നതാണ്, എന്നാൽ നിർദ്ദിഷ്ട ക്ലയന്റ് ഐപി മൾട്ടികാസ്റ്റ് വഴി അയച്ച ചിത്രങ്ങളും കാണിക്കുന്നു. നിങ്ങൾക്ക് സംഗീതത്തോടൊപ്പം നിർദ്ദിഷ്‌ട ഫോട്ടോകൾ അയയ്‌ക്കണമെങ്കിൽ, സെർവറിലെ "പേജ് 2" മെനു ഓപ്ഷൻ ഉപയോഗിക്കാം, നിങ്ങൾക്ക് ആവശ്യമുള്ള ചിത്രങ്ങൾ മാത്രം തിരഞ്ഞെടുക്കാം, എല്ലാ ചിത്രങ്ങളും ഒറ്റ ക്ലിക്കിലൂടെ തിരഞ്ഞെടുത്തത് മാറ്റുക, തുടർന്ന് നിങ്ങൾക്ക് ആവശ്യമുള്ളവ തിരഞ്ഞെടുക്കുക...

ഓരോ പ്രോട്ടോക്കോളിനും ഗുണങ്ങളും അസൗകര്യങ്ങളും ഉണ്ട്. UPnP, Multicast ചാനലുകൾ പ്രാദേശിക നെറ്റ്‌വർക്കിൽ (പ്രധാനമായും Wi-Fi) മാത്രമേ ഉപയോഗിക്കാനാകൂ, HTTP സ്ട്രീമിംഗ് പ്രാദേശികമായും ഇൻറർനെറ്റിലും പ്രവർത്തിക്കുകയും ക്ലയന്റ് ആയി ഒരു വെബ് ബ്രൗസർ ഉപയോഗിക്കുകയും ചെയ്യുന്നു. UPnP, Multicast ചാനലിന് ആക്‌സസ് നിയന്ത്രിക്കാൻ സുരക്ഷിതമായ മാർഗമില്ല, Wi-Fi നെറ്റ്‌വർക്കിൽ കണക്‌റ്റ് ചെയ്‌തിരിക്കുന്ന ഏത് ഉപകരണത്തിനും പ്രവർത്തിക്കുന്ന സെർവർ ഉപയോഗിക്കാനാകും. HTTP പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ഉപയോക്തൃനാമങ്ങളും പാസ്‌വേഡുകളും നിർവചിക്കാനും ആക്‌സസ് വിഭാഗങ്ങളിൽ (ഗ്രൂപ്പുകൾ) ഫയലുകൾ സജ്ജീകരിക്കാനും പ്രത്യേക ഉപയോക്താക്കൾക്കായി ചില മീഡിയ ഫയലുകളിലേക്കുള്ള ആക്‌സസ് പരിമിതപ്പെടുത്താനും കഴിയും. ഏതൊക്കെ ഫയലുകളാണ് വിതരണം ചെയ്യുന്നതെന്ന് പരിമിതപ്പെടുത്താനും ആവശ്യമെങ്കിൽ ഓരോ ഫയലിനും ഒരു വിഭാഗത്തിന്റെ പേര് സജ്ജീകരിക്കാനും സെർവറിന്റെ ക്രമീകരണങ്ങൾ അനുവദിക്കുന്നു.

back