സ്ട്രീമിംഗ് എച്ച്എൽഎസ്. എപ്പോൾ HLS പ്രോട്ടോക്കോൾ ഉപയോഗിക്കണം

സേവനങ്ങൾ നൽകൽ IPTVഇൻറർനെറ്റിലൂടെയും പ്രാദേശിക കമ്പ്യൂട്ടർ ശൃംഖലകളിലൂടെയും കൂടുതൽ വ്യാപകമായ രൂപങ്ങൾ നേടുന്നു. സിഐഎസ് രാജ്യങ്ങളിൽ വീഡിയോ പ്രക്ഷേപണം ചെയ്യാത്ത വലിയ ദാതാക്കളൊന്നും അവശേഷിക്കുന്നില്ല മൾട്ടികാസ്റ്റ്അവരുടെ പ്രാദേശിക നെറ്റ്‌വർക്കുകളിലേക്ക്, അതായത് സേവനം നൽകുന്നു IPTV. എന്നാൽ നിങ്ങളുടെ പ്രാദേശിക നെറ്റ്‌വർക്കിന് പുറത്ത് ടിവി സേവനങ്ങൾ നൽകുന്നത് ചില ഹാർഡ്‌വെയർ ചെലവുകളും ആവശ്യമായ പ്രക്ഷേപണ നിലവാരം ഉറപ്പാക്കുന്നതിനുള്ള ബുദ്ധിമുട്ടുമായും ബന്ധപ്പെട്ടിരിക്കുന്നു.

HTTP ലൈവ് സ്ട്രീമിംഗ്പുറമേ അറിയപ്പെടുന്ന എച്ച്.എൽ.എസ്., ആപ്പിൾ നടപ്പിലാക്കിയ ഒരു ആശയവിനിമയ പ്രോട്ടോക്കോൾ ആണ്. മൊത്തത്തിലുള്ള സ്ട്രീമിനെ ചെറിയ ഡൗൺലോഡ് ഫയലുകളുടെ ഒരു ശ്രേണിയായി തിരിച്ചിരിക്കുന്നു എന്നതാണ് ഇതിൻ്റെ പ്രത്യേകത, ഓരോ ഡൗൺലോഡും ട്രാൻസ്പോർട്ട് സ്ട്രീമിൻ്റെ ഒരു ചെറിയ ശകലം ഡൗൺലോഡ് ചെയ്യുന്നു. ഒരു സ്ട്രീം പ്ലേ ചെയ്യുമ്പോൾ, ലഭ്യമായ ബിറ്റ് റേറ്റുമായി പൊരുത്തപ്പെടാൻ അനുവദിക്കുന്ന, വ്യത്യസ്ത ബിറ്റ് നിരക്കിൽ റെക്കോർഡ് ചെയ്‌ത ഒരേ മെറ്റീരിയൽ അടങ്ങുന്ന നിരവധി വ്യത്യസ്ത സ്ട്രീമുകളിൽ നിന്ന് ക്ലയൻ്റ് തിരഞ്ഞെടുക്കാനാകും. ഒരു സ്ട്രീമിംഗ് സെഷൻ്റെ തുടക്കത്തിൽ, ലഭ്യമായ വിവിധ സബ്സ്ട്രീമുകൾക്കായി മെറ്റാഡാറ്റ അടങ്ങിയ ഒരു മെച്ചപ്പെടുത്തിയ M3U (m3u8) പ്ലേലിസ്റ്റ് ലോഡുചെയ്യുന്നു. അഭ്യർത്ഥനകൾ സാധാരണ HTTP പ്രവർത്തനങ്ങൾ മാത്രമേ ഉപയോഗിക്കുന്നുള്ളൂ എന്നതിനാൽ, RTP പോലുള്ള UDP പ്രോട്ടോക്കോളുകൾക്ക് വിരുദ്ധമായി സാധാരണ HTTP ട്രാഫിക് അനുവദിക്കുന്ന ഏത് ഫയർവാളും പ്രോക്സിയും മറികടക്കാൻ HTTP ലൈവ് സ്ട്രീമിംഗിന് കഴിയും.

എച്ച്എൽഎസ് എച്ച്ടിടിപി അടിസ്ഥാനമാക്കിയുള്ളതാണ്. എഇഎസ് ഉപയോഗിച്ചുള്ള ഒരു സ്റ്റാൻഡേർഡ് എൻക്രിപ്ഷൻ മെക്കാനിസവും എച്ച്ടിടിപിഎസ് അല്ലെങ്കിൽ എച്ച്ടിടിപി കുക്കികൾ ഉപയോഗിച്ചുള്ള സുരക്ഷാ കീ വിതരണ രീതിയും എച്ച്എൽഎസ് നിർവചിക്കുന്നു, ഇത് ഒരുമിച്ച് ലളിതമായ പകർപ്പവകാശ സംരക്ഷണ സംവിധാനം നൽകുന്നു.

HLS എങ്ങനെയാണ് പ്രവർത്തിക്കുന്നത്?

ഈ സാങ്കേതികവിദ്യയുടെ ഗുണങ്ങളും ദോഷങ്ങളും എന്താണെന്ന് ഇപ്പോൾ നമുക്ക് കണ്ടെത്താം. നേട്ടങ്ങൾ നിസ്സംശയവും വ്യക്തവുമാണ്. ഇത് ഒന്നാമതായി, ലൈനിൻ്റെയും സ്വീകരിക്കുന്ന ഉപകരണത്തിൻ്റെയും ഗുണങ്ങളിലേക്കുള്ള ഡാറ്റാ ട്രാൻസ്മിഷൻ വേഗതയുടെ പൊരുത്തപ്പെടുത്തലാണ്, രണ്ടാമതായി, ബിൽറ്റ്-ഇൻ പകർപ്പവകാശ സംരക്ഷണ സംവിധാനങ്ങൾ. മൂന്നാമതായി, വീതി പരിമിതിയുള്ള റൂട്ടർ ആവശ്യമില്ല മൾട്ടികാസ്റ്റ് സ്ട്രീംമൾട്ടികാസ്റ്റ് ഉപയോഗിച്ച് ഐപി ടെലിവിഷൻ പ്രക്ഷേപണത്തിൻ്റെ കാര്യത്തിൽ മൾട്ടികാസ്റ്റ് സ്ട്രീമുകൾ വഴി മുഴുവൻ ചാനൽ വീതിയും ആഗിരണം ചെയ്യുന്നത് ഒഴിവാക്കാൻ WI_FI-യിലൂടെ സഹായിക്കും. കൂടാതെ, പ്രവർത്തനത്തോടുകൂടിയ അധിക ഉപകരണവും ആവശ്യമില്ല UDP പ്രോക്സിസബ്‌സ്‌ക്രൈബർമാരുടെ ലോക്കൽ നെറ്റ്‌വർക്കിൽ UDP പ്രോക്‌സി ഫംഗ്‌ഷൻ നിർവ്വഹിക്കുന്ന റൂട്ടറിലോ മറ്റ് ഉപകരണത്തിലോ ഉള്ള ഹാർഡ്‌വെയർ ലോഡിനെ ഇത് ബാധിക്കുമെങ്കിലും, ഒരു മൾട്ടികാസ്റ്റ് സ്ട്രീം എച്ച്ടിടിപിയിലേക്ക് പരിവർത്തനം ചെയ്യുന്നതിന്, മൊബൈൽ ഉപകരണങ്ങൾക്ക് ഇത് പലപ്പോഴും ആവശ്യമാണ്. HLS സ്റ്റാൻഡേർഡ് വളരെ വ്യാപകമായിത്തീർന്നിരിക്കുന്നു, മിക്കവാറും എല്ലാ ആധുനിക വീഡിയോ പ്ലെയറുകളും IPTV സെറ്റ്-ടോപ്പ് ബോക്സുകളും പിന്തുണയ്ക്കുന്നു.

IPTV സെറ്റ്-ടോപ്പ് ബോക്സ്

ഒരു പ്രധാന പോരായ്മ സബ്‌സ്‌ക്രൈബർമാർക്ക് മൾട്ടിമീഡിയ സെറ്റ്-ടോപ്പ് ബോക്സുകളും സ്മാർട്ട് ടിവി സെറ്റ്-ടോപ്പ് ബോക്സുകളും കാലഹരണപ്പെട്ട ഫേംവെയറുകളോ അല്ലെങ്കിൽ എച്ച്എൽഎസ് മാനദണ്ഡങ്ങളെ പിന്തുണയ്ക്കാത്തതോ ശരിയായി പിന്തുണയ്ക്കാത്തതോ ആയ കാലഹരണപ്പെട്ട ഡിസൈനുകളോ ഉള്ളതാണ്. കൂടാതെ, അഭ്യർത്ഥിച്ച വീഡിയോ ശകലത്തിൻ്റെ ദൈർഘ്യത്തേക്കാൾ കുറഞ്ഞ സമയ ഇടവേളകളിൽ ലൈൻ സവിശേഷതകൾ മാറുന്ന സാഹചര്യങ്ങളിൽ സ്ഥിരതയുള്ള പ്രക്ഷേപണത്തിനായി ഗുണനിലവാരം ശരിയായി തിരഞ്ഞെടുക്കാനുള്ള കഴിവില്ലായ്മയാണ് പ്രശ്നങ്ങളിലൊന്ന്.

യൂട്യൂബ് പോലുള്ള സൈറ്റുകൾ ഉപയോഗിക്കുന്നതിനുപകരം, അവൻ്റെ ഓൺലൈൻ പ്രോജക്റ്റിനായി വീഡിയോ പ്രോസസ്സ് ചെയ്യുക, സംഭരിക്കുക, പ്രക്ഷേപണം ചെയ്യുക, ഉപയോക്താക്കളുടെ ഉപകരണങ്ങളിലേക്ക് വീഡിയോ പ്രക്ഷേപണം ചെയ്യുന്നതിന് ഏത് ട്രാൻസ്മിഷൻ പ്രോട്ടോക്കോൾ ഉപയോഗിക്കണം എന്ന ചോദ്യം അനിവാര്യമായും വരുന്നു. തിരഞ്ഞെടുപ്പ് ചെറുതാണ്, കാരണം ... ചില ഉപകരണങ്ങളെ പിന്തുണയ്ക്കുന്ന നിരവധി വ്യവസായ മാനദണ്ഡങ്ങളുണ്ട്. കൂടാതെ, പ്രോട്ടോക്കോൾ തിരഞ്ഞെടുക്കുന്നത് പ്രധാനമായും വീഡിയോയുടെ "ക്ലാസ്" - തത്സമയ പ്രക്ഷേപണം അല്ലെങ്കിൽ വീഡിയോ-ഓൺ-ഡിമാൻഡ് എന്നിവയെ ആശ്രയിച്ചിരിക്കുന്നു. നിങ്ങളുടെ മീഡിയ മെഷീൻ്റെ എഞ്ചിനാകുന്ന മീഡിയ സെർവറിൻ്റെ തിരഞ്ഞെടുപ്പും പ്രോട്ടോക്കോളിൻ്റെ തിരഞ്ഞെടുപ്പിനെ ആശ്രയിച്ചിരിക്കുന്നു: നിങ്ങൾ നിരവധി വൈവിധ്യമാർന്ന സെർവറുകൾ ഇൻസ്റ്റാൾ ചെയ്യുമോ അല്ലെങ്കിൽ ഒരു പരിഹാരത്തിൽ ഒരു ഡെലിവറി നെറ്റ്‌വർക്ക് നിർമ്മിക്കുമോ? അതിനാൽ, നിങ്ങൾ എല്ലാം തൂക്കിനോക്കുകയും നിങ്ങളുടെ ബിസിനസ്സിൻ്റെ മാനദണ്ഡത്തെ അടിസ്ഥാനമാക്കി തീരുമാനമെടുക്കുകയും വേണം.

പൊതുവേ, പല അജ്ഞാതരുമായി നമുക്ക് ഒരു സമവാക്യം ലഭിക്കും. പ്രക്രിയയുടെ ചലനാത്മകത ഇവിടെ പ്രധാനമാണ് - എന്തായാലും വ്യവസായം എവിടേക്കാണ് പോകുന്നത്? സാങ്കേതികവിദ്യയെ പിന്തുണയ്‌ക്കാൻ ഞാൻ നിക്ഷേപം നടത്തിയാലോ, പക്ഷേ ഇത് ഒരു വർഷത്തിനുള്ളിൽ ഇല്ലാതാകും, കാരണം ഇത് ഇതിനകം സംഭവിച്ചു. അല്ലെങ്കിൽ ഞാൻ ഒരു ഫാഷനബിൾ ടെക്നോളജിയിൽ പന്തയം വെക്കുമോ, പക്ഷേ ആരും അതിനെ പിന്തുണയ്ക്കുന്നില്ലേ?

കാലക്രമേണ വ്യത്യസ്ത പ്രോട്ടോക്കോളുകളുടെ പങ്ക് എങ്ങനെ മാറിയെന്ന് വിലയിരുത്താൻ ഞങ്ങൾ തീരുമാനിച്ചു - മുഴുവൻ പ്രക്രിയയുടെയും ചലനാത്മകത നോക്കാൻ. കഴിഞ്ഞ വർഷത്തെ ഡാറ്റയാണ് എടുത്തത്.

പ്രാരംഭ ഡാറ്റ

തുടക്കക്കാർക്ക്, മാർക്കറ്റ് ഷെയറുകൾ വിലയിരുത്താൻ ഞങ്ങൾ ആരാണ്? ഞങ്ങൾ മീഡിയ സെർവറുകൾക്കായി ഒരു വെബ് റിപ്പോർട്ടിംഗ് സേവനത്തിൻ്റെ ഡെവലപ്പർമാരാണ്. ഞങ്ങൾ നാല് വർഷമായി വിപണിയിൽ പ്രവർത്തിക്കുന്നു, വ്യത്യസ്ത ഇൻഫ്രാസ്ട്രക്ചറുകൾ, വ്യത്യസ്ത സെർവറുകൾ, വ്യത്യസ്ത ആവശ്യങ്ങൾ എന്നിവയുമായി കമ്പനികൾ ഞങ്ങളുടെ അടുത്തേക്ക് വരുന്നു. വ്യവസായത്തിൻ്റെ അവസ്ഥയുടെ നല്ല സ്നാപ്പ്ഷോട്ട് ആയി ഇത് മാറുന്നു.

വ്യത്യസ്ത പ്രോട്ടോക്കോളുകൾ വഴി നിങ്ങൾക്ക് ഒരു തീയതി ശ്രേണി തിരഞ്ഞെടുക്കാനും വീഡിയോ കാഴ്‌ചകളുടെ എണ്ണത്തെക്കുറിച്ചുള്ള ഒരു ഗ്രാഫ് ഉപയോഗിച്ച് ഡാറ്റ സ്വീകരിക്കാനും കഴിയുന്ന ഒരു ചെറിയ റിപ്പോർട്ട് ഞങ്ങൾ തയ്യാറാക്കിയിട്ടുണ്ട്.

റിപ്പോർട്ട് സെർവറുകളിൽ ഡാറ്റ നൽകുന്നു:

  • 2.2 മുതൽ ഏറ്റവും പുതിയ 4.x വരെയുള്ള എല്ലാ പതിപ്പുകളിലും Wowza സ്ട്രീമിംഗ് എഞ്ചിൻ; അവയിൽ മിക്കതും 3.x ആണ്.
  • എച്ച്എൽഎസ്, സ്മൂത്ത്, എച്ച്ഡിഎസ്, പ്രോഗ്രസീവ് ഡൗൺലോഡ് എന്നിവയിൽ പ്രവർത്തിക്കുന്ന വേഗതയുള്ള സ്ട്രീമർ ഞങ്ങളുടെ വികസനമാണ്.
  • വിൻഡോസ് മീഡിയ സേവനങ്ങൾ - അക്ഷരാർത്ഥത്തിൽ അവയിൽ രണ്ട് ഡസൻ ഉണ്ട്, പക്ഷേ അവ നിലവിലുണ്ട്, ഞങ്ങൾ അവ കണക്കിലെടുക്കേണ്ടതുണ്ട്.
എഴുതുമ്പോൾ, 60 രാജ്യങ്ങളിൽ നിന്നുള്ള ഏകദേശം 1000 സെർവറുകൾ സേവനം നൽകുന്നു.

റിപ്പോർട്ടും ഞങ്ങളുടെ ബ്ലോഗിൽ കാലാകാലങ്ങളിൽ അപ്ഡേറ്റ് ചെയ്യപ്പെടുന്നു, അത് ഉചിതമായ ടാഗിന് കീഴിൽ ലഭ്യമാണ്.

പോകൂ

2014 ജൂൺ/ജൂലൈ മാസത്തെ റിപ്പോർട്ട് ഇതുപോലെയാണ്. നിന്ന് 1.4 ബില്യൺ കാഴ്‌ചകൾപകുതിയിലധികം HLS ആണ്. രണ്ടാം സ്ഥാനത്ത് നാലിലൊന്ന് കാഴ്ചകളുള്ള ആർടിഎംപിയാണ്. ആർടിഎസ്പി ആറാമത്തേതാണ്. ബാക്കിയുള്ളവ സ്ഥിതിവിവരക്കണക്ക് പിശകുകളുടെ മേഖലയിലാണ്.

ഒരു വർഷം മുമ്പ് ഇതേ കാലയളവിൽ എന്താണ് സംഭവിച്ചത്? സ്ഥിതി ഏതാണ്ട് ഒരു മിറർ ഇമേജാണ്. RTMP - ഏകദേശം മൂന്നിൽ രണ്ട്, RTSP, HLS എന്നിവ രണ്ടും മൂന്നും സ്ഥാനങ്ങൾ പങ്കിടുന്നു. ശരിയാണ്, അളവ് അടിസ്ഥാനം ഏകദേശം 3 മടങ്ങ് ചെറുതായിരുന്നു - "മാത്രം" 500 ദശലക്ഷം കാഴ്ചകൾ. ഞങ്ങളുടെ സേവനത്തിൽ കുറച്ച് സെർവറുകളും ഉണ്ടായിരുന്നു, തീർച്ചയായും.

നമുക്ക് ഈ രണ്ട് പോയിൻ്റുകൾക്കിടയിൽ നടക്കാം.

അതിനാൽ, ജൂൺ - ഓഗസ്റ്റ് 2014, വേനൽക്കാലത്ത് 3 മാസം. 800 ദശലക്ഷം കാഴ്‌ചകൾ, എന്നാൽ ഓഹരികൾ ഒന്നുതന്നെയാണ്, ഓഗസ്റ്റ് മാറ്റങ്ങളൊന്നും കൊണ്ടുവന്നില്ല.

സെപ്റ്റംബർ - നവംബർ 2013. ഒരു പുതിയ സീസൺ ആരംഭിച്ചു, HLS RTMP-യുടെ വിഹിതം തിന്നു തുടങ്ങി. ആകെ 1.1 ബില്യൺ കാഴ്‌ചകൾ, RTMP-ക്ക് ആകെയുള്ളതിൻ്റെ പകുതിയോളം ഉണ്ട്, HLS-ന് നാലിലൊന്ന് ഉണ്ട്.

ഡിസംബർ 2013 - ഫെബ്രുവരി 2014. 1.4 ബില്യൺ കാഴ്‌ചകൾ, ഇതിൽ HLS ഇതിനകം 40%-ത്തിലധികം വരും. ആർടിഎംപിയും ആർടിഎംപിയും കാൽഭാഗം വിഹിതവുമായി രണ്ടും മൂന്നും സ്ഥാനങ്ങൾ പങ്കിടുന്നു. സോചിയിലെ ഒളിമ്പിക്‌സ് കാഴ്ചകളുടെ എണ്ണത്തിൽ വർദ്ധനവ് വരുത്തി, അതേ സമയം എല്ലാ ക്ലയൻ്റുകളേയും RTSP മാത്രം മനസ്സിലാക്കുന്ന എല്ലാ എക്സോട്ടിക് അല്ലെങ്കിൽ പഴയ ഉപകരണങ്ങളുമായി ഓർമ്മിക്കാൻ ദാതാക്കളെ നിർബന്ധിച്ചു - അതിനാൽ ഈ പ്രോട്ടോക്കോളിലെ കുതിപ്പ്.

പ്രാക്ടീസ് കാണിക്കുന്നത് പോലെ, RTMP-യുമായി താരതമ്യപ്പെടുത്തുമ്പോൾ വീഡിയോയ്ക്കുള്ള ഏറ്റവും മികച്ച ഗതാഗതം HLS ആണ്. ഇതിനുള്ള കാരണങ്ങൾ:

    വളരെ ലളിതമായ പ്രോക്സിയിംഗ്, nginx വഴിയുള്ള കാഷിംഗ്. ഒന്നാമതായി, ക്യാമറ, ഒരു ഉപകരണമെന്ന നിലയിൽ, ഒരു ചട്ടം പോലെ, ഒരേസമയം 10-ലധികം കണക്ഷനുകൾ കൈകാര്യം ചെയ്യാൻ കഴിയില്ല. ഈ അർത്ഥത്തിൽ, പണമടച്ചുള്ള പരിഹാരങ്ങളിലൂടെ മാത്രമേ RTMP സ്ട്രീമുകളുടെ ഗ്യാരണ്ടീഡ് പ്രോക്സിയിംഗ് സാധ്യമാകൂ, കൂടാതെ വലിയ ശേഷികൾ ആവശ്യമാണ്. പ്രത്യേക സെർവർ സോഫ്റ്റ്‌വെയർ ആവശ്യമില്ല.

    മുഴുവൻ സെർവർ ഇൻഫ്രാസ്ട്രക്ചറിൻ്റെയും ലളിതവൽക്കരണം. ആശയത്തിൻ്റെ അടിസ്ഥാനത്തിൽ, http വഴി പോർട്ട് 80 വഴി വീഡിയോ കഷണങ്ങളായി അയച്ചു. സ്റ്റാറ്റിക് ഡാറ്റ നൽകുന്നതിന് Nginx തന്നെ ഉത്തരവാദിയായിരിക്കാം. സ്റ്റാറ്റിക് ഫയലുകൾ (വീഡിയോ പീസുകൾ 50 കെബി വീതം) തിരികെ നൽകുന്നത് nginx-ന് വളരെ എളുപ്പമുള്ള കാര്യമാണ്.

    കഷണങ്ങളുടെ എണ്ണം സ്ഥിരമായതിനാൽ, പഴയവ നീക്കംചെയ്യുന്നു, പുതിയവ ചേർക്കുന്നു, ഹാർഡ് ഡ്രൈവ് ഒരിക്കലും പൂർണ്ണമാകില്ല.

    RTMP-യേക്കാൾ കൂടുതലാണ് വ്യാപനം. H.264 വീഡിയോ എൻകോഡിംഗുള്ള HLS-നെ iOS പിന്തുണയ്‌ക്കുകയും അധിക ഘട്ടങ്ങളൊന്നും കൂടാതെ പ്രവർത്തിക്കുകയും ചെയ്യുന്നു. ഹബ്ബിൽ നിന്നുള്ള ജൂലൈ 1, 2014 ലെ ഡാറ്റ അനുസരിച്ച്, HLS ട്രാൻസ്പോർട്ടുമായി സ്ട്രീമിംഗ് വീഡിയോ കണക്ഷനുകൾ - 55%, RTMP - 26%, RTSP - 15%, MPEG-DASH 1% ൽ താഴെ.

    ബ്രൗസറിൽ നിന്ന് നേരിട്ട് മിക്ക മൊബൈൽ ഉപകരണങ്ങൾക്കും ഡെസ്‌ക്‌ടോപ്പുകൾക്കും ടാബ്‌ലെറ്റുകൾക്കുമുള്ള പിന്തുണ.

    തത്വത്തിൽ RTSP വഴി പ്രക്ഷേപണം ചെയ്യുന്നതിനേക്കാൾ വളരെ ലളിതമാണ്. പുഷ് (ഒരു സ്ട്രീം പ്രസിദ്ധീകരിക്കൽ) അല്ലെങ്കിൽ പുൾ (ഒരു സ്ട്രീം സ്വീകരിക്കൽ) പോലുള്ള നടപടിക്രമങ്ങൾ ഇല്ലാത്തതിനാൽ.

    കൂടുതൽ http സൗഹൃദ ഫോർമാറ്റ്.

പോരായ്മകൾ ഇനിപ്പറയുന്നവയാണ്:

    എന്നിരുന്നാലും, എല്ലാ ഉപകരണങ്ങളും ഈ ഫോർമാറ്റിനെ പിന്തുണയ്ക്കുന്നില്ല. 4.2-ൽ താഴെയുള്ള Android പതിപ്പുകൾ H.264 കോഡെക്കിനെയും ഗതാഗതത്തെയും ഔദ്യോഗികമായി പിന്തുണയ്ക്കുന്നില്ല, എന്നാൽ Android-ൽ, ഒരു ബ്രൗസറിന് പകരം, നിങ്ങൾക്ക് കാണുന്നതിന് ഒരു മൂന്നാം കക്ഷി ആപ്ലിക്കേഷൻ ഉപയോഗിക്കാം - ഉദാഹരണത്തിന് MX Player

    ഇതെല്ലാം ക്യാമറയെ ആശ്രയിച്ചിരിക്കുന്നു. ക്യാമറ ബഗ്ഗിയാണെങ്കിൽ, ഉദാഹരണത്തിന് Dlink DCS-3010, മുഴുവൻ സിസ്റ്റവും വളരെ മോശമായി പ്രവർത്തിക്കും (ffmpeg നിരന്തരം വീഴുന്നു). ഉദാഹരണത്തിന്, AXIS M1011-W, HIKVISION DS-2CD2412F-IW ക്യാമറകൾ ഈ കോമ്പിനേഷനിൽ നന്നായി പ്രവർത്തിക്കുന്നു (പരാതികളില്ലാതെ ഒരു മാസം വരെ (ഞാൻ ഇത് കൂടുതൽ കാലം പരീക്ഷിച്ചിട്ടില്ല)). കേബിൾ റൂട്ടിംഗിനും വലിയ പ്രാധാന്യമുണ്ട്. ഈ അർത്ഥത്തിൽ, ഞങ്ങൾ അനുയോജ്യമായ ഓപ്ഷൻ പരിഗണിക്കും.

എന്താണ് എച്ച്എൽഎസ് ഗതാഗതം

h.264 എൻകോഡിംഗിലെ വീഡിയോ സ്ട്രീം (വഴി: പ്രൊഫൈൽ ബേസ്‌ലൈൻ Android ഉപകരണങ്ങൾ മനസ്സിലാക്കുന്നു), *.ts എന്ന വിപുലീകരണത്തോടുകൂടിയ കഷണങ്ങളായി വിഭജിച്ചിരിക്കുന്നു, ഉദാഹരണത്തിന്, 5 സെക്കൻഡ് വീതം, live.m3u8-ൽ ഒരു പ്ലേലിസ്റ്റ് സൃഷ്‌ടിക്കുന്നു. ഈ ഭാഗങ്ങളുടെ തുടർച്ചയായ വിവരണം. പ്ലേലിസ്റ്റിൻ്റെ ദൈർഘ്യം മുൻകൂട്ടി നിശ്ചയിച്ചതാണ്, ഉദാഹരണത്തിന് 10 കഷണങ്ങൾ. വീഡിയോയുടെ 11-ാമത്തെ ഭാഗം ദൃശ്യമാകുമ്പോൾ, ഒരു വീഡിയോ ഭാഗം ഇല്ലാതാക്കി, പ്ലേലിസ്റ്റ് പുനഃസൃഷ്ടിക്കുന്നു. കൂടുതൽ വിശദാംശങ്ങൾ ഡെവലപ്പറുടെ വെബ്സൈറ്റിൽ കാണാം.

സിസ്റ്റം പ്രവർത്തിക്കുന്നതിന്, ഞങ്ങൾ സൈറ്റിൽ കാണാൻ ആഗ്രഹിക്കുന്ന രീതിയിൽ ക്യാമറകളിൽ നിന്ന് ചിത്രം കോൺഫിഗർ ചെയ്യും, ഇമേജ് ഫോർമാറ്റ്, ഇമേജ് നിലവാരം. ഞങ്ങൾ സെർവറിൽ റീകോഡ് ചെയ്യില്ല. അതുകൊണ്ടാണ് ആവശ്യമായ ചിത്രം നിർമ്മിക്കാൻ ക്യാമറ കണ്ടുപിടിച്ചത്. ക്യാമറകൾക്ക് സാധാരണയായി നിരവധി പ്രൊഫൈലുകൾ ഉണ്ട്. നിങ്ങൾക്ക് H.264-നായി ഒരു പ്രൊഫൈൽ, HLS-നും രണ്ടാമത്തേത് MPEG-DASH-നായി MPEG4-നും കോൺഫിഗർ ചെയ്യാം. വിശാലവും ഇടുങ്ങിയതുമായ ഇൻ്റർനെറ്റ് ചാനലിനായി നിങ്ങൾക്ക് വ്യത്യസ്ത ഗുണങ്ങൾ ക്രമീകരിക്കാനും കഴിയും. സ്വയം ചിന്തിക്കുക - സ്വയം തീരുമാനിക്കുക.

പ്രധാനം!വീണ്ടും എൻകോഡ് ചെയ്യേണ്ട ആവശ്യമില്ലാത്ത ഒരു ഇമേജ് ക്യാമറ ഔട്ട്പുട്ട് ചെയ്യണം.

ഉയർന്ന ലോഡിനായി ബ്ലോക്ക് ഡയഗ്രം

ക്യാമറ(rtsp) ----->

-----> ഒരു കണക്ഷൻ FFmpeg(rtsp->hls) -> Nginx(nginx-rtmp-module) ----->

-----> ഒരു വലിയ കാഷെ ഉള്ള ഒരു ഇൻ്റർമീഡിയറ്റ് nginx പ്രോക്സിയിലേക്കുള്ള ഒരു കണക്ഷൻ =====>

=====> നിരവധി JWPlayer(hls) ക്ലയൻ്റുകൾ

ഞങ്ങളുടെ സെർവർ ffmpeg ഉപയോഗിച്ച് ക്യാമറയുമായി ബന്ധിപ്പിക്കുകയും nginx hls ആപ്ലിക്കേഷനിൽ രജിസ്റ്റർ ചെയ്യുകയും ചെയ്യുന്നു. nginx ഒരു പ്രത്യേക ഡയറക്ടറിയിൽ കഷണങ്ങളും പ്ലേലിസ്റ്റും സൃഷ്ടിക്കുന്നു. പിന്നീട് ഈ കഷണങ്ങൾ പ്രോക്സി സെർവറിലേക്ക് അയയ്ക്കുന്നു. JWPlayer ഉപയോഗിച്ച് ക്ലയൻ്റുകൾ പ്രോക്സിയിലേക്ക് കണക്റ്റുചെയ്യുന്നു.

nginx ആപ്ലിക്കേഷൻ സജ്ജീകരിക്കുന്നു

nginx-rtmp-module ഉപയോഗിച്ച് നമുക്ക് nginx നിർമ്മിക്കാം. ഈ നടപടിക്രമം ലേഖനത്തിൽ വിശദമായി വിവരിച്ചിരിക്കുന്നു.

നമുക്ക് നിരവധി ക്യാമറകൾ ഉണ്ടെന്ന് പറയാം, അവയെ സീരിയൽ നമ്പർ കൊണ്ട് ഹരിക്കുക. 2 ക്യാമറകൾക്കുള്ള nginx കോൺഫിഗറേഷൻ ഞാൻ വിവരിക്കും. ലോക്കൽ കാഷെയിൽ ഞങ്ങൾ 5 മിനിറ്റ് സ്റ്റാറ്റിക് ഇമേജുകൾ കാഷെ ചെയ്യുന്നു, ചിത്രം 5 സെക്കൻഡിനുള്ളിൽ ലോഡ് ചെയ്തില്ലെങ്കിൽ, ഞങ്ങൾ ഒരു സ്റ്റാറ്റിക് സ്ക്രീൻസേവർ അയയ്ക്കുന്നു.

# നാനോ /etc/nginx/nginx.conf

നമുക്ക് nginx കോൺഫിഗറേഷൻ എഡിറ്റ് ചെയ്യാം

ഉപയോക്താവ് www - ഡാറ്റ ; വർക്കർ_പ്രോസസ്സ് ഓട്ടോ; pid/run/nginx. പിഡ്; error_log /var/log/nginx/nginx_error. ലോഗ് ഡീബഗ്; env PATH; ഇവൻ്റുകൾ ( # multi_accept on ;) http ( access_log / var / log / nginx / access. log ; error_log / var / log / nginx / പിശക് proxy_cache_path / var / www / cache / ലോക്കൽ ലെവലുകൾ = 1 : 2 keys_zone = nginx_local_cache : 1 m inactive = 30 m max_size = 512 M ; proxy_temp_path / var / www / cache / local / tmp ; stat (rtmp_stat all; rtmp_stat_stylesheet stat. xsl;) ലൊക്കേഷൻ / സ്റ്റാറ്റ്. xsl മറ്റൊരു ലൊക്കേഷൻ റൂട്ടിലേക്ക് / etc / nginx ലേക്ക് നീക്കാം html ; cameras_rtmp_applications ഉൾപ്പെടുന്നു. conf ; ))

കാഷെക്കായി ഒരു പാത്ത് ഉണ്ടാക്കാം # mkdir /var/www/cache/local കാഷെയുടെ അവകാശങ്ങൾ ശരിയാക്കാം:

# chmod -R 755 /var/www/cache/local # chown -R www-data:www-data /var/www/cache/local`

ക്യാമറകൾക്കായി നമുക്ക് http ലൊക്കേഷനുകൾ സൃഷ്ടിക്കാം:

# നാനോ ക്യാമറകൾ_http_locations.conf

തരങ്ങൾ (അപ്ലിക്കേഷൻ / vnd. apple. mpegurl m3u8; video / mp2t ts;) # ക്യാമറ 1-ൽ നിന്ന് ചിത്രം അയയ്ക്കുക - /1/img/ # എല്ലാ ക്യാമറകൾക്കും വ്യത്യസ്തമാണ്, കാരണം ക്യാമറകളുടെ ഐപി വിലാസങ്ങൾ വ്യത്യസ്തമാണ് "http://192.168.0.2/GetImage.cgi?CH=1"# ക്യാമറ 2-ൽ നിന്ന് ചിത്രം അയയ്ക്കുക - /2/img/ലൊക്കേഷൻ / 1 / img / ( proxy_cache nginx_local_cache ; proxy_cache_key $ request_uri ; കാലഹരണപ്പെടും 1 മീറ്റർ ; # 1 മിനിറ്റ് ആഡ്_ഹെഡർ കാഷെ - കൺട്രോൾ പബ്ലിക് ; # പ്രോക്സിയിൽ കാഷെ ചെയ്യുന്നതിനായി പ്രോക്സി-ഇഗ്നോർ_ഹെഡറുകൾ കാഷെ - ഹെഡ്ഡറുകൾ ക്യാമറയിൽ നിന്ന് നീക്കം ചെയ്യുന്നതിനായി # പ്രോക്സി ഹെഡ്ഡറുകൾ നീക്കം ചെയ്യുന്നതിനായി ; "http://192.168.0.3/GetImage.cgi?CH=1"; proxy_set_header ഓതറൈസേഷൻ "ബേസിക്" ; error_page 502 504 404 @ fallback_img ; ) # പ്ലേലിസ്റ്റ് നൽകുക - /1/hls/live.m3u8 അല്ലെങ്കിൽ /3/hls/live.m3u8 # പ്ലേലിസ്റ്റ് പ്രോക്‌സിയിൽ 10 സെക്കൻഡ് കാഷെ ചെയ്‌തുസ്ഥാനം ~* /hls/ . *\. m3u8 $ ( റീറൈറ്റ് "/(.*)/hls/(.*)$" / hls - $ 1 / $ 2 ബ്രേക്ക് ; # റീറൈറ്റ് അഭ്യർത്ഥന / 1 / hls / to / hls - 1 / root / tmp / ; കാലഹരണപ്പെടുന്നത് 10 ആഡ്_ഹെഡർ കാഷെ - കൺട്രോൾ പബ്ലിക്; # ക്യാമറകളിൽ നിന്ന് ഒരു വീഡിയോ നൽകുക - /1/hls/live-12345678.ts അല്ലെങ്കിൽ /2/hls/live-12345678.ts ലോക്കൽ കമ്പ്യൂട്ടറിൽ # കാഷെ ചെയ്യേണ്ടതില്ല # കഷണം പ്രോക്സിയിൽ 3 മിനിറ്റ് കാഷെ ചെയ്യുന്നുസ്ഥാനം ~* /hls/ . *\. ts $ ( തിരുത്തിയെഴുതുക "/(.*)/hls/(.*)$" / hls - $ 1 / $ 2 ബ്രേക്ക് ; റൂട്ട് / tmp / ; 3 മീറ്റർ കാലഹരണപ്പെടുന്നു ; add_header Cache - കൺട്രോൾ പബ്ലിക് ;) ചിത്രമില്ലെങ്കിൽ # ലൊക്കേഷൻ എന്ന് പേരിട്ടുലൊക്കേഷൻ @ fallback_img (തിരിച്ചെഴുതുക (. +) / ഫാൾബാക്ക്. jpg ബ്രേക്ക്; റൂട്ട് / etc / nginx /;)

നമ്മുടെ ക്യാമറകൾക്കുള്ള ആപ്ലിക്കേഷനുകൾക്കൊപ്പം rtmp സെർവർ കോൺഫിഗറേഷനായി നമുക്ക് ഒരു hls ഫയൽ സൃഷ്ടിക്കാം:

# നാനോ ക്യാമറകൾ_rtmp_applications.conf

ചങ്ക്_വലിപ്പം 4000; ആപ്ലിക്കേഷൻ hls_1 ( ലൈവ് ഓൺ ; 10 എം എസ് സമന്വയിപ്പിക്കുക ; exec_static ffmpeg - i rtsp : //അഡ്മിൻ: [ഇമെയിൽ പരിരക്ഷിതം]:554/live1.sdp -c കോപ്പി -f flv -an rtmp://localhost:1935/hls_1/live 2>>/var/log/nginx/ffmpeg_1.log;എച്ച്എൽഎസ് ഓൺ; hls_path /tmp/hls - 1/ ; സെർവറിൽ കഷണങ്ങൾ സംഭരിക്കുന്നതിനുള്ള # പാത hls_fragment_naming timestamp ; # ചങ്കുകൾക്ക് പേരിടാൻ ടൈംസ്റ്റാമ്പ് ഉപയോഗിക്കുക) ആപ്ലിക്കേഷൻ hls_2 (തത്സമയം; സമന്വയിപ്പിക്കുക 10 ms; exec_static ffmpeg - i rtsp: //അഡ്മിൻ: [ഇമെയിൽ പരിരക്ഷിതം]:554/live1.sdp -c കോപ്പി -f flv -an rtmp://localhost:1935/hls_2/live 2>>/var/log/nginx/ffmpeg_2.log;എച്ച്എൽഎസ് ഓൺ; hls_path /tmp/hls - 2/ ; hls_fragment_naming ടൈംസ്റ്റാമ്പ്; )

ഡയറക്ടറിയുടെ ഉള്ളടക്കം /tmp/hls-1/

$ ls / tmp / hls - 1 / live - 10458360. ts live - 13292010. ts live - 16129440. ts live - 18963270. ts live - 10930050. ts live - 13767390 13767390 0 .ts ലൈവ് - 11405250. ടി എസ് ലൈവ് - 14239260. ടി എസ് ലൈവ് - 17072820. ടി എസ് ലൈവ് . m3u8 ലൈവ് - 11878560. ടി എസ് ലൈവ് - 14710860. ടി എസ് ലൈവ് - 17544960. ടി എസ് ലൈവ് - 12348630. ടി എസ് ലൈവ് - 15182550. ടി എസ് ലൈവ് - 18020160. ടി ലൈവ് - 12821840 60.41 2750.ts

ഉദാഹരണ ഫയൽ live.m3u8

#EXTM3U #EXT-X-VERSION:3 #EXT-X-MEDIA-SEQUENCE:35 #EXT-X-TARGETDURATION:5 #EXTINF:5.224, ലൈവ് - 16602660. ts #EXTINF:5.246, #EXTINFts820.0728 :5.280, ലൈവ് - 17544960. ts #EXTINF:5.251, ലൈവ് - 18020160. ts #EXTINF:5.228, ലൈവ് - 18492750. ts #EXTINF:5.242, ലൈവ് - 1896ts3270.

ക്യാമറകൾ വീഴുന്നതിലെ പ്രശ്നം പരിഹരിക്കുന്നു

ഗ്ലിച്ചി ക്യാമറ മാറ്റുക എന്നതാണ് ഏറ്റവും നല്ല പരിഹാരം. 90% കേസുകളിലും ഇത് സഹായിക്കുന്നു. ഒരു വഴിയുമില്ലെങ്കിൽ നിങ്ങൾ എങ്ങനെയെങ്കിലും മുന്നോട്ട് പോകേണ്ടതുണ്ടെങ്കിൽ, ഇനിപ്പറയുന്ന പരിഹാരം സഹായിക്കും.

ഈ പരിഹാരം രണ്ട് പൂരകങ്ങൾ ഉൾക്കൊള്ളുന്നു:

    ഓരോ ക്യാമറയ്ക്കും ഒരു പ്രത്യേക nginx പ്രോസസ്സും സ്റ്റാറ്റിക് ഡാറ്റ തിരികെ നൽകുന്നതിനുള്ള ഒരു പൊതു പ്രക്രിയയും പ്രവർത്തിപ്പിക്കുക. അതായത്, രണ്ട് ക്യാമറകൾക്ക് rtmp സെർവറുകൾ ഉപയോഗിച്ച് വെവ്വേറെ കോൺഫിഗറുകൾ എഴുതുക, ഒന്ന് http ഉപയോഗിച്ച്. അപ്പോൾ ഗ്ലിച്ചി ക്യാമറ മൊത്തത്തിലുള്ള പ്രക്രിയയെ ബാധിക്കില്ല.

    ക്യാമറയിൽ നിന്നുള്ള സ്ട്രീം അതിൻ്റെ തകരാറുകളുടെ ഫലമായി തടസ്സപ്പെട്ടാൽ (അമിത ചൂടാക്കൽ, മോശം കേസിംഗ്, അപര്യാപ്തമായ PoE പവർ മുതലായവ), ക്യാമറ വീഴും, ffmpeg ചൈൽഡ് പ്രോസസ്സ് പാക്കറ്റുകൾ നിരസിക്കുകയും nginx വീഡിയോ കഷണങ്ങൾ റെക്കോർഡുചെയ്യുന്നത് നിർത്തുകയും ചെയ്യും. ffmpeg പ്രക്രിയ അവസാനിക്കുമ്പോൾ, ചങ്ക്സ് ഡയറക്ടറിയിൽ നിന്ന് nginx എല്ലാ ഫയലുകളും ഇല്ലാതാക്കും. ക്രോൺ ഉപയോഗിച്ച് ഫോൾഡർ വൃത്തിയാക്കുന്നതിൻ്റെ ഈ നിമിഷം ഞങ്ങൾ കണക്കാക്കുകയും ആവശ്യമായ nginx പ്രോസസ്സ് പുനരാരംഭിക്കുകയും ചെയ്യുന്നു.

ഓരോ ക്യാമറയ്ക്കും, /etc/init.d/ എന്നതിൽ ഒരു എക്‌സിക്യൂട്ടബിൾ സ്‌ക്രിപ്റ്റ് സൃഷ്‌ടിക്കുന്നു, ക്യാമറ_1, camera_2 എന്ന് പേരുള്ള nginx-ൻ്റെ ഒരു പകർപ്പ്

# cp /etc/init.d/nginx /etc/init.d/camera_1 # cp /etc/init.d/nginx /etc/init.d/camera_2 # chmod +x /etc/init.d/camera_1 # chmod +x /etc/init.d/camera_2

nginx സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റ് എഡിറ്റുചെയ്യുന്നു.

nano/etc/init. d/nginx

DAEMON_OPTS വേരിയബിൾ മാറ്റുക. പ്രധാന nginx ഡെമൺ എല്ലാ സ്റ്റാറ്റിക് ഡാറ്റയും നൽകും. ക്യാമറകൾക്ക് ഉത്തരവാദികളായ ഡെമണുകളെ ഇത് ആരംഭിക്കുകയും നിർത്തുകയും ചെയ്യും./ init . [- f "/etc/init.d/camera_2" ] എങ്കിൽ d / camera_1 fi നിർത്തുക; പിന്നെ / etc / init . d/camera_2 stop fi

do_reload ഫംഗ്‌ഷനിലേക്ക് ചേർക്കുക:

[ - f "/etc/init.d/camera_1" ] എങ്കിൽ # ക്യാമറകൾ റീലോഡ് ചെയ്യുക; പിന്നെ / etc / init . [- f "/etc/init.d/camera_2" ] എങ്കിൽ d / camera_1 fi റീലോഡ് ചെയ്യുക; പിന്നെ / etc / init . d/camera_2 fi റീലോഡ് ചെയ്യുക

ക്യാമറ 1 ക്യാമറ_1, ക്യാമറ 2 ക്യാമറ_2 എന്നിവയ്‌ക്കായി ഞങ്ങൾ nginx ലോഞ്ച് സ്‌ക്രിപ്റ്റ് എഡിറ്റ് ചെയ്യുന്നു.

# നാനോ /etc/init.d/camera_1

DAEMON_OPTS, DESC വേരിയബിളുകൾ മാറ്റുക

DESC = "CAMERA-1 നുള്ള ക്യാമറ_1" DAEMON_OPTS = "-c /etc/nginx/nginx_1.conf"

ഉദാഹരണം പിന്തുടർന്ന് ക്യാമറ 2 camera_2-നുള്ള nginx സ്റ്റാർട്ടപ്പ് സ്ക്രിപ്റ്റ് എഡിറ്റ് ചെയ്യാം.

http ലൊക്കേഷനുകൾക്കൊപ്പം /etc/nginx/nginx_0.conf-ൽ ഞാൻ മാന്ത്രിക വരികൾ എഴുതുന്നു:

# DIR-PROCESS-NAME /tmp/hls-1/ camera_1 # DIR-PROCESS-NAME /tmp/hls-2/ camera_2

DIR-PROCESS-NAME എന്ന തിരയൽ പദവും റീബൂട്ട് ചെയ്യേണ്ട പ്രക്രിയയുടെ ഡയറക്ടറിയും പേരും ഒരു സ്‌പെയ്‌സ് കൊണ്ട് വേർതിരിച്ച് അവ സൂചിപ്പിക്കുന്നു.

പരീക്ഷ:

# സർവീസ് nginx ആരംഭം # സേവന ക്യാമറ_1 പുനരാരംഭിക്കുന്നു * ക്യാമറയ്‌ക്കായി ക്യാമറ_1 പുനരാരംഭിക്കുന്നു - 1 കോൺഫിഗറേഷൻ nginx # സേവന ക്യാമറ_2 പുനരാരംഭിക്കുന്നു * ക്യാമറയ്‌ക്കായി ക്യാമറ_2 പുനരാരംഭിക്കുന്നു - 2 കോൺഫിഗറേഷൻ nginx

ക്യാമറകൾ റീബൂട്ട് ചെയ്യുന്ന ഒരു സ്ക്രിപ്റ്റ്. ഇത് കഷണങ്ങളുള്ള ഫോൾഡറുകളിലൂടെ കടന്നുപോകുന്നു, *.m3u8 ഫയലുകൾ ഇല്ലാത്തവ തിരയുന്നു. ഫോൾഡറിൽ ഫയലുകളൊന്നും ഇല്ലെങ്കിൽ, അത് DIR-PROCESS-NAME എന്ന ലൈൻ ഉപയോഗിച്ച് പ്രധാന ഡെമണിൻ്റെ കോൺഫിഗറിലുള്ള അനുബന്ധ ഡെമണിനായി തിരയുന്നു. അത് റീബൂട്ട് ചെയ്യുന്നു.

# നാനോ /സ്ക്രിപ്റ്റ്/ക്യാമറകൾ_reloader.sh

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

#!/bin/bash PATH = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin മാസ്ക് = "*.m3u8" dir = "/tmp/ hls-*" ഫംഗ്‌ഷൻ find_process())( process_str = $(cat /etc/nginx/nginx_0.conf | grep "# DIR-PROCESS-NAME" | grep $1 | cut -d" " -f4) echo $process_str ) ഇതിനായി $dir-ൽ hls_dir; do find_result = $(കണ്ടെത്തുക $hls_dir -name $mask -type f) എങ്കിൽ [ -z $find_result ] ; തുടർന്ന് പ്രോസസ്സ് = $(find_process $hls_dir) സേവനം $പ്രോസസ് പുനരാരംഭിക്കുക 15സെക്കൻഡ് ഉറങ്ങിക്കഴിഞ്ഞു

MPEG-DASH-മായി HLS-ൻ്റെ താരതമ്യം

MPEG-4-നുള്ള ഗതാഗതമായി Google സൃഷ്ടിച്ച HLS-ൻ്റെ അനലോഗ് ആണ് MPEG-DASH. ഈ ഗതാഗതം വ്യാപകമല്ല, പ്രായോഗികമായി പിന്തുണയ്ക്കുന്നില്ല. അദ്ദേഹത്തിൻ്റെ പ്രത്യയശാസ്ത്രം ഒന്നുതന്നെയാണ്, സ്ട്രീം കഷണങ്ങളായി തകർക്കുക, കൂടുതൽ കഷണങ്ങൾ മാത്രമേയുള്ളൂ, വീഡിയോയ്ക്ക് പ്രത്യേക കഷണങ്ങൾ, ഓഡിയോയ്ക്ക് പ്രത്യേകം. nginx-rtmp-module-ൽ ഈ ഫോർമാറ്റ് HLS-ന് സമാനമായി ക്രമീകരിച്ചിരിക്കുന്നു.

ശ്രമിക്കുക, പകർത്തുക, ധൈര്യപ്പെടുക!

ലേഖനം നിങ്ങൾക്ക് ഉപയോഗപ്രദമായിരുന്നെങ്കിൽ, ദയവായി പരസ്യത്തിൽ ക്ലിക്കുചെയ്യുക. നന്ദി!

Flussonic മീഡിയ സെർവർ HLS പ്രോട്ടോക്കോൾ വഴിയുള്ള വീഡിയോ വിതരണത്തെ പിന്തുണയ്ക്കുന്നു.

ലഭ്യമായ പല ഫീച്ചറുകളും HLS-ന് നിലവാരമുള്ളതല്ല, എന്നാൽ നിങ്ങളുടെ സൗകര്യാർത്ഥം ഞങ്ങൾ അവയെ പിന്തുണയ്ക്കുന്നു.

പിന്തുണയ്ക്കുന്ന കോഡെക്കുകൾ: H264, H265, MPEG2 വീഡിയോ, AAC, MP3, MPEG2 ഓഡിയോ, AC-3.

എച്ച്എൽഎസ് വഴി ആർക്കൈവിൽ നിന്ന് തത്സമയ പ്രക്ഷേപണങ്ങൾ, വീഡിയോ ഓൺ ഡിമാൻഡ്, വീഡിയോ എന്നിവ സ്വീകരിക്കാൻ ഫ്ലൂസോണിക് മീഡിയ സെർവർ നിങ്ങളെ അനുവദിക്കുന്നു.

ലളിതമായ HLS പ്ലേബാക്ക്

നിങ്ങൾക്ക് ലളിതമായ ഒരു തത്സമയ സ്ട്രീം അല്ലെങ്കിൽ ഫയലുണ്ടെങ്കിൽ (ഒരു വീഡിയോ, ഒരു ഓഡിയോ), HLS വഴി പ്ലേ ചെയ്യാനുള്ള URL വളരെ ലളിതമാണ്:

http://flussonic-ip/STREAMNAME/index.m3u8

flussonic-ip എന്നത് നിങ്ങളുടെ ഫ്ലൂസോണിക് മീഡിയ സെർവറിൻ്റെ ഒരു ഉദാഹരണ വിലാസം + പോർട്ട് ആണ്.

Flussonic മീഡിയ സെർവറും മറ്റ് സെർവറുകളുമായുള്ള ബാക്ക്വേർഡ് കോംപാറ്റിബിളിറ്റിക്കായി URL-ൻ്റെ അവസാനം playlist.m3u8 സ്വീകരിക്കുന്നു.

നിങ്ങൾ ബഹുഭാഷാ അല്ലെങ്കിൽ മൾട്ടിബിട്രേറ്റ് ഉള്ളടക്കത്തിൽ പ്രവർത്തിക്കാൻ തുടങ്ങുമ്പോൾ, കാര്യങ്ങൾ കൂടുതൽ സങ്കീർണ്ണമാകും.

ബഹുഭാഷാ HLS

iPhone-ൽ നിങ്ങളുടെ ബഹുഭാഷാ സ്ട്രീം പ്ലേ ചെയ്യണമെങ്കിൽ, നിങ്ങൾ http://192.168.2.3:8080/STREAMNAME/index.m3u8 ഉപയോഗിക്കേണ്ടതുണ്ട്

എന്നാൽ VLC അല്ലെങ്കിൽ ഒരു സെറ്റ്-ടോപ്പ് ബോക്സ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു ബഹുഭാഷാ സ്ട്രീം കാണണമെങ്കിൽ, നിങ്ങൾ video.m3u8 പ്രവർത്തനക്ഷമമാക്കേണ്ടതുണ്ട്.

കളിക്കാരനുള്ള URL: http://flussonic-ip/STREAMNAME/video.m3u8

Apple HLS ആവശ്യകതകൾ അനുസരിച്ച്, ഓരോ വ്യക്തിഗത ഭാഷയ്ക്കും നിങ്ങൾ ഓഡിയോ മാത്രം ഓപ്ഷനുള്ള ഒരു പ്രത്യേക പ്ലേലിസ്റ്റ് വ്യക്തമാക്കേണ്ടതുണ്ട് എന്നതാണ് ഇതിന് കാരണം. MPEG-TS-ന് മറ്റൊരു സംവിധാനമുണ്ട്: എല്ലാ ഓഡിയോ ട്രാക്കുകളും വീഡിയോയ്ക്ക് അടുത്തായി സ്ഥാപിച്ചിരിക്കുന്നു, കൂടാതെ പ്ലേയർ തന്നെ അത് പ്ലേ ചെയ്യേണ്ടത് തിരഞ്ഞെടുക്കുന്നു. ഐഫോണിൽ ഒരു വീഡിയോ കാണുന്നതിന്, അത് ആപ്പിളിൻ്റെ ആവശ്യകതകൾ പാലിക്കണം. എന്നാൽ VLC, സെറ്റ്-ടോപ്പ് ബോക്സുകൾ, HLS നിലവാരം ലംഘിച്ച്, MPEG-TS ൻ്റെ പഴയ പതിപ്പ് HLS ആയി പരിവർത്തനം ചെയ്യപ്പെടുമെന്ന് പ്രതീക്ഷിക്കുന്നു. അതിനാൽ, നിങ്ങൾ video.m3u8 ഉൾപ്പെടുത്തേണ്ടതുണ്ട്.

ആപ്പിളിനായി "ഓഡിയോ മാത്രം" ചേർക്കുന്നു

ആപ്പിളിന് നിങ്ങളുടെ എല്ലാ സ്ട്രീമുകളിലും വീഡിയോ ഇല്ല, ഓഡിയോ മാത്രം ഓപ്‌ഷൻ ഉണ്ടായിരിക്കണമെന്ന് ആവശ്യപ്പെടുന്നു.

ഒരു ഉപയോക്താവ് 3G-യിൽ ഒരു വീഡിയോ കാണുകയും അനിശ്ചിതത്വമുള്ള ഒരു സ്വീകാര്യതയുള്ള ഒരു പ്രദേശത്ത് സ്വയം കണ്ടെത്തുകയും ചെയ്യുന്നുവെങ്കിൽ, അയാൾക്ക് ബഫറിംഗിനെക്കാൾ ശബ്‌ദം മാത്രം ഉണ്ടായിരിക്കുന്നതാണ് നല്ലതെന്ന് അവർ വിശ്വസിക്കുന്നു.

ഫ്ലൂസോണിക് മീഡിയ സെർവറിൽ നിങ്ങൾക്ക് ഈ ഓപ്ഷൻ പ്രവർത്തനക്ഷമമാക്കാം:

സ്ട്രീം ort (url udp://239.0.0.1: 1234; add_audio_only; )

ഇത് നിങ്ങളുടെ index.m3u8 വിലാസം VLC-ലോ STB-ലോ പ്ലേ ചെയ്യാൻ കഴിയാത്തതാക്കിയേക്കാം എന്ന കാര്യം ശ്രദ്ധിക്കുക. ഈ സാഹചര്യത്തിൽ, video.m3u8 ഉപയോഗിക്കുക.

സെറ്റ്-ടോപ്പ് ബോക്സുകൾക്കായി പ്രത്യേക ബിറ്റ്റേറ്റുകൾ

നിങ്ങൾക്ക് മൾട്ടിബിട്രേറ്റ് ബഹുഭാഷാ ഉള്ളടക്കം ഉണ്ടായിരിക്കുകയും മൾട്ടിബിട്രേറ്റ് എച്ച്എൽഎസ് പ്ലേലിസ്റ്റുകളെ പിന്തുണയ്ക്കാത്ത ഒരു സെറ്റ്-ടോപ്പ് ബോക്സിൽ പ്ലേ ചെയ്യാൻ ആഗ്രഹിക്കുകയും ചെയ്യുമ്പോൾ, മോണോ ഓപ്ഷൻ പോലെ, ഒരു വീഡിയോയും എല്ലാ ഓഡിയോ ട്രാക്കുകളും ഉള്ള പ്രത്യേക പ്ലേലിസ്റ്റുകൾ ഫ്ലൂസോണിക് മീഡിയ സെർവറിൽ നിന്ന് നിങ്ങൾക്ക് അഭ്യർത്ഥിക്കാം:

http://flussonic - ip/STREAMNAME/video1. m3u8

ഈ പ്ലേലിസ്റ്റ് മൾട്ടിബിട്രേറ്റ് അല്ല, ആദ്യ വീഡിയോ ട്രാക്കും ലഭ്യമായ എല്ലാ ഓഡിയോ ട്രാക്കുകളും ഉള്ള സെഗ്‌മെൻ്റുകൾ വരെയുള്ള URL-കൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു.

ആപ്പിളിൻ്റെ ബഹുഭാഷാ നിലവാരം മനസ്സിലാക്കാത്ത സെറ്റ്-ടോപ്പ് ബോക്സുകളിലേക്ക് ബഹുഭാഷാ, മൾട്ടിബിട്രേറ്റ് സ്ട്രീമുകൾ നൽകണമെങ്കിൽ, video.m3u8 ഉപയോഗിക്കുക:

http://flussonic - ip/STREAMNAME/video. m3u8

വ്യത്യസ്ത ഗുണങ്ങളുള്ള പ്ലേലിസ്റ്റുകളുടെ ഒരു ലിസ്റ്റ് നൽകുന്ന മൾട്ടിബിട്രേറ്റ് പ്ലേലിസ്റ്റാണിത്: video1.m3u8, video2.m3u8, മുതലായവ.

DVR ക്യാച്ച്അപ്പ് പ്ലേബാക്ക്

നിങ്ങളുടെ സ്ട്രീം ഇതിനകം തന്നെ സെർവറിൽ ഞങ്ങളുടെ DVR റെക്കോർഡ് ചെയ്‌തിരിക്കുമ്പോൾ, പ്രക്ഷേപണത്തിൻ്റെ ആരംഭ സമയവും അവസാന സമയവും (ഉദാഹരണത്തിന്, EPG-ൽ നിന്ന്) ഉപയോഗിച്ച് നിങ്ങൾക്ക് HLS വഴി വീഡിയോ പ്ലേ ചെയ്യാം.

http://flussonic - ip/STREAMNAME/archive -1508403742-3600. m3u8

ഈ പ്ലേലിസ്റ്റ് എന്ന് വിളിക്കപ്പെടും. വേരിയൻ്റ്, സ്ട്രീമിൽ ഒന്നിലധികം ഓഡിയോ ട്രാക്കുകൾ അല്ലെങ്കിൽ ഒന്നിൽ കൂടുതൽ ബിറ്റ്റേറ്റുകൾ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ. ഇത് UTC 1362504585 (2013 മാർച്ച് 5 17:29:45 GMT) മുതൽ ഒരു മണിക്കൂർ ഫോർവേഡ് ചെയ്യുന്ന സെഗ്‌മെൻ്റുകളുടെ ഒരു ലിസ്റ്റ് നൽകും.

mpeg-ts-ലെ എല്ലാ ട്രാക്കുകളും അടങ്ങുന്ന സെഗ്‌മെൻ്റുകളുടെ ഒരു ലിസ്റ്റ് മോണോ URL നൽകും:

http://flussonic - ip/STREAMNAME/mono -1362504585-3600. m3u8

കൂടുതൽ നിർദ്ദിഷ്ട വീഡിയോഎൻ പ്ലേലിസ്റ്റ് എൻ വീഡിയോ ട്രാക്കുകളും എല്ലാ ഓഡിയോ ട്രാക്കുകളും ഉള്ള സെഗ്‌മെൻ്റുകളുടെ ഒരു ലിസ്റ്റ് നൽകും:

http://flussonic - ip/STREAMNAME/video1 -1362504585-3600. m3u8

വീഡിയോഎൻ പ്ലേലിസ്റ്റുകളുടെ ഒരു ലിസ്റ്റുള്ള ഒരു വേരിയൻ്റ് വീഡിയോ പ്ലേലിസ്റ്റും:

http://flussonic - ip/STREAMNAME/video -1362504585-3600. m3u8

റിവൈൻഡ് പ്ലേലിസ്റ്റ്

ഒരു പ്രത്യേക പ്ലേലിസ്റ്റ് ഉണ്ട് "rewind-N.m3u8"ഒരു വലിയ "സ്ലൈഡിംഗ്" വിൻഡോ ഉപയോഗിച്ച്, മണിക്കൂറുകളോളം HLS സ്ട്രീമുകൾ റിവൈൻഡ് ചെയ്യാനും താൽക്കാലികമായി നിർത്താനും നിങ്ങളെ അനുവദിക്കുന്നു.

http://flussonic - ip/STREAMNAME/rewind -7200. m3u8

7200 - സെക്കൻഡിൽ HLS പ്ലേലിസ്റ്റ് ദൈർഘ്യം. ഇതിനർത്ഥം നിങ്ങളുടെ ക്ലയൻ്റുകൾക്ക് പ്രത്യേക ആർക്കൈവ് ലിങ്കുകൾ ആക്‌സസ് ചെയ്യാതെ തന്നെ 2 മണിക്കൂർ പ്രക്ഷേപണം താൽക്കാലികമായി നിർത്താനോ ഫുട്ബോൾ മത്സരത്തിൻ്റെ തുടക്കത്തിലേക്ക് റിവൈൻഡ് ചെയ്യാനോ കഴിയും.