ባለፉት ጥቂት አመታት በዲጂታል ስርጭት አለም ላይ ትልቅ ለውጦች ታይተዋል። በአዶቤ የተገነባው በበይነመረቡ ላይ ይዘትን ለማድረስ ቴክኖሎጂ የሆነው ፍላሽ መገኘቱን በፍጥነት እየቀነሰ ነው። እና ቦታው እንደ HLS ባሉ ፕሮቶኮሎች ይወሰዳል.
HTML5 እና HLS ክፍት ምንጭ ናቸው፣ እንደፈለጋችሁት ሊሻሻሉ ይችላሉ፣ እና ለመጠቀም ነጻ ናቸው። እንዲሁም ከቀድሞዎቹ የበለጠ አስተማማኝ, አስተማማኝ እና ፈጣን ናቸው. በዚህ ጽሑፍ ውስጥ የመስመር ላይ ስርጭትን ጽንሰ-ሀሳቦች ለማብራራት እንሞክራለን, የዥረት ፕሮቶኮሎችን እና የ HLS ን ለመጠቀም ምክሮችን እንሰጣለን.
HLS ምንድን ነው?
ኤችኤልኤስ ማለት የኤችቲቲፒ የቀጥታ ዥረት ማለት ነው፣ የሚዲያ ውሂብን በኢንተርኔት ላይ ለማሰራጨት ፕሮቶኮል ነው። HLS የቪዲዮ ይዘትን በMP4 ቅርጸት ወደ አጭር ባለ 10 ሰከንድ ብሎኮች ፣ ቁርጥራጮች ይቆርጣል። እነዚህ አጭር ቁርጥራጮች በኤችቲቲፒ በኩል ይላካሉ፣ ይህም ፕሮቶኮሉን ከአብዛኛዎቹ መሳሪያዎች እና ፋየርዎል ጋር ተኳሃኝ ያደርገዋል።
HLS በዋናነት እጅግ በጣም ጥሩ የመስመር ላይ ስርጭቶችን ያቀርባል። ነገር ግን, በመስመር ላይ ስርጭት ጊዜ መዘግየት ከ15-30 ሰከንድ መሆኑን ግምት ውስጥ ማስገባት አለብዎት. በአገልጋዩ በኩል፣ የስርጭት ፈጣሪው ዥረቱን ኢንኮዲንግ ለተለያዩ ጥራቶች ሊመድብ ይችላል። ከዚያም ተጫዋቹ በተወሰነ ቅጽበት የኢንተርኔት ቻናል ስፋት ላይ በመመስረት ጥሩውን ጥራት በተለዋዋጭነት ይጠይቃል። በዚህ መሠረት ቁርጥራጮቹ ጥራት ሊለያይ ይችላል.
ለምሳሌ ሞባይል ስልክ በኤችዲ ጥራት ያለው ቪዲዮ ያጫውታል፣ እና ከአንድ ደቂቃ በኋላ ተመልካቹ ደካማ አቀባበል ባለበት አካባቢ እራሱን ያገኛል። ተጫዋቹ የግንኙነት ጥራት መቀነስ ሲያገኝ ዝቅተኛ ጥራት ያላቸውን የቪዲዮ ቁርጥራጮች ይጠይቃል። ይህ ማቋረጡን፣ ቅዝቃዜን እና ሌሎች ችግሮችን ይቀንሳል።
የ HLS አፈጣጠር ታሪክ
HLS በመጀመሪያ የተጀመረው በ2009 በአፕል ከአይፎን 3 ጋር ነው።የቀድሞ የአይፎን ሞዴሎች አንዳንድ ጊዜ በዋይ ፋይ አውታረመረብ እና በተንቀሳቃሽ ስልክ ውሂብ ማስተላለፍ መካከል በመቀያየራቸው በመስመር ላይ ስርጭት ላይ ችግር አጋጥሟቸዋል።
ኤችኤልኤስ ከመለቀቁ በፊት፣ የአፕል ዋና የዥረት ሚዲያ ፕሮቶኮል ፈጣን ጊዜ ዥረት አገልጋይ ነበር። ጥሩ አገልግሎት፣ ነገር ግን ለመረጃ ማስተላለፍ መደበኛ ያልሆኑ ወደቦችን ስለሚጠቀም የ RTSP ፕሮቶኮሉ በየጊዜው በፋየርዎል ታግዷል። ከዘገምተኛው ኢንተርኔት ጋር ተዳምሮ ይህ ፕሮቶኮል እንዲተው አድርጓል። ነገር ግን ከትግበራው የተማሩት ትምህርቶች በ HLS እድገት ውስጥ በጣም ጠቃሚ ነበሩ.
የኤችኤልኤስ ዥረት በበረራ ላይ የተፈጠረ እና በኤችቲቲፒ አገልጋይ ላይ ይከማቻል። የቪዲዮ ፋይሎች፣ ከላይ እንደተጠቀሰው፣ ከኤክስቴንሽኑ .ts - MPEG2 ትራንስፖርት ዥረት ጋር ወደ አጫጭር ቁርጥራጮች ተከፋፍለዋል።
የኤችቲቲፒ አገልጋዩ የአጫዋች ዝርዝር ፋይልን ከቅጥያው .M3U8 (በተጨማሪም አንጸባራቂ ተብሎም ይጠራል) ይፈጥራል፣ ይህም ሁሉንም የቪዲዮ ቁርጥራጮች ለመጠቆም ያገለግላል። ይህ አጫዋች ዝርዝር ፋይል ለእያንዳንዱ ነባር የስርጭት ጥራቶች ተጨማሪ መረጃ ጠቋሚ ፋይሎችን ይጠቁማል። አንድ ጥራትን ተጠቅመው ለማሰራጨት ከወሰኑ እንኳ "ማኒፌስቶ" አሁንም ይፈጠራል.
የተጠቃሚው ተጫዋች በበይነመረቡ ላይ ያለውን የመረጃ ስርጭት ፍጥነት መበላሸትን ወይም መሻሻልን ማወቅ አለበት። እንደዚህ አይነት ክስተት ሲከሰት ተጫዋቹ ወደየትኛው የቪዲዮ ጥራት መቀየር እንዳለበት ለማወቅ አንጸባራቂ ፋይሉን ይደርሳል። ተጫዋቹ ተመልካቹ ያቆመበትን የቪዲዮውን ክፍል ለመጫን ጥራት ያለው መረጃ ጠቋሚ ፋይል ይጠይቃል። ይህ አጠቃላይ ሂደት ለተጠቃሚው የማይታይ ነው። የ HLS ፕሮቶኮል ዝግ መግለጫ ፅሁፍን ይደግፋል፣
የዥረት ፕሮቶኮሎች አጠቃላይ እይታ
እያንዳንዳቸው ቀደም ሲል የተፈጠሩት ፕሮቶኮሎች በመገናኛ ብዙሃን ዥረት ውስጥ አንዳንድ ፈጠራዎችን መተግበርን ይወክላሉ። እንደ HD-DVD ከብሉ ሬይ እና Betamax ከ VHS ጋር ያሉ “የቅርጸት ጦርነቶች” ነበሩ። HLS በኦንላይን ስርጭት ውስጥ መሪ ነው፣ ነገር ግን ይህ ሁልጊዜ እንደዚያ አልነበረም እናም ለወደፊቱም እንደዚያ እንደሚቆይ እውነት አይደለም።
RTMP ወይም Real-Time Messaging ፕሮቶኮል፣ የእውነተኛ ጊዜ የውሂብ ዥረት ፕሮቶኮል። የድምጽ እና የቪዲዮ ይዘትን ለማቅረብ ማክሮሚዲያ በ2000 አጋማሽ ተፈጠረ። ብዙውን ጊዜ በቀላሉ ፍላሽ ይባላል. ማክሮሚዲያ ከጊዜ በኋላ ከ Adobe Inc ጋር ተዋህዷል፣ ይህም RTMPን እንደ ከፊል-ክፍት ፕሮቶኮል ማዳበሩን ቀጥሏል።
ላለፉት አስርት አመታት፣ RTMP የበይነ መረብ ስርጭት ዋነኛ ዘዴ ነው። HLS ሲመጣ ብቻ ድርሻው መቀነስ ጀመረ። ዛሬ፣ አብዛኛዎቹ የመስመር ላይ የቪዲዮ መድረኮች ከሚመጣው RTMP ዥረት ጋር ይሰራሉ። በሌላ አነጋገር፣ በ RTMP ውስጥ ታሰራጫለህ፣ እሱም የኦንላይን ቪዲዮ መድረክ ከዚያም በHLS ውስጥ ኮድ ያስገባ እና ለዋና ተመልካቾች ይሰጣል። እውነት ነው, ብዙ የሲዲኤን ኦፕሬተሮች የ RTMP ድጋፍን መተው ይጀምራሉ - ማረጋገጫ
በአዶቤ የተገነባው ቀጣዩ ትውልድ ዥረት ፕሮቶኮል ኤችዲኤስ - ኤችቲቲፒ ተለዋዋጭ ዥረት ይባላል። ከፍላሽ መልሶ ማጫወት ተሰኪ ጋር ተኳሃኝ ነው፣ ነገር ግን የአጠቃቀም ድግግሞሽ ከተለመደው HLS በጣም ያነሰ ነው።
ፍላሽ ለሚደግፉ መሳሪያዎች እና አሳሾች ኤችዲኤስ ምርጥ ምርጫ ነው። በስርጭት ጊዜ አነስተኛ መዘግየትን ይሰጣል፣ ልክ እንደ HLS፣ የሚዲያ ፋይሎችን ወደ ትናንሽ ቁርጥራጮች ይከፋፍላል፣ ምስጠራን እና DRMን ይደግፋል።
የማይክሮሶፍት ለስላሳ ዥረት
ማይክሮሶፍት የራሱን የመስመር ላይ ዥረት ፕሮቶኮል ማይክሮሶፍት ለስላሳ ዥረት ፈጥሯል። ኤም ኤስ ኤስ በተጨማሪም ይዘትን በተቻለ መጠን በተሻለ ጥራት ለማቅረብ አዳፕቲቭ ቢትሬትን ይጠቀማል።
አዳፕቲቭ የቢትሬት ስርጭት በ2008 ተጀመረ። ኤምኤስኤስ የ2008 የበጋ ኦሎምፒክን ለማሰራጨት ስራ ላይ ውሏል። የዚህ ዓይነቱ ስርጭት ዋና ተጠቃሚ የ XBox One መድረክ ነው። በተመሳሳይ ጊዜ፣ MSS ዛሬ በጣም ታዋቂ ከሆኑ ፕሮቶኮሎች አንዱ ነው።
MPEG-DASH
በዥረት ፕሮቶኮሎች መስክ ውስጥ ካሉት የቅርብ ጊዜ ጉልህ መፍትሄዎች አንዱ MPEG-DASH ነው፣ DASH በኤችቲቲፒ ላይ ተለዋዋጭ ዥረት የሚያመለክት ነው።
የ MPEG-DASH ጥቅም በኤችቲቲፒ በኩል ለመገናኛ ብዙኃን ለማሰራጨት እንደ አንድ የተዋሃደ ዓለምአቀፍ ደረጃ መታወቁ ነው። በአሁኑ ጊዜ, ገና አልተስፋፋም እና ሁሉም ብሮድካስተሮች አይደግፉትም. ግን በሁሉም መለያዎች ፣ በጥቂት ዓመታት ውስጥ ይህ ልዩ መመዘኛ በጣም ታዋቂው የብሮድካስት ፕሮቶኮል ይሆናል።
MPEG-DASH በኮዴክ አይነት ላይ የተመካ አይደለም፣ ይህንን ፕሮቶኮል በመጠቀም ሚዲያ ለመላክ ማናቸውንም መጠቀም ይችላሉ - H.264፣ HEVC/H.265፣ VP10
ለመስመር ላይ ስርጭት HLS መቼ መጠቀም እንዳለበት
ሁል ጊዜ HLS ን እንድትጠቀም እንመክራለን። በጣም ዘመናዊ እና በሰፊው የሚደገፍ የሚዲያ ዥረት ፕሮቶኮል ነው። ወደ ተንቀሳቃሽ መሳሪያዎች ማሰራጨት ከፈለጉ ያለሱ ማድረግ አይችሉም. ቤተኛ HTML5 ማጫወቻ ድጋፍ እና እርግጥ ነው፣ የሚለምደዉ ቢትሬት ጥሩ የእይታ ጥራትን ያረጋግጣል።
እንደ ልምምድ እንደሚያሳየው ከ RTMP ጋር ሲነጻጸር ለቪዲዮ በጣም ጥሩው መጓጓዣ HLS ነው. ለዚህ ምክንያቶች፡-
በጣም ቀላል ተኪ፣ በ nginx በኩል መሸጎጥ። በመጀመሪያ ደረጃ, ካሜራው እንደ መሳሪያ, እንደ አንድ ደንብ, ከ 10 በላይ ግንኙነቶችን በአንድ ጊዜ ማስተናገድ ስለማይችል. ከዚህ አንፃር፣ የ RTMP ዥረቶችን ዋስትና ያለው ፕሮክሲ ማድረግ የሚቻለው በሚከፈልባቸው መፍትሄዎች ብቻ ነው እና ትልቅ አቅምን ይፈልጋል። ምንም ልዩ የአገልጋይ ሶፍትዌር አያስፈልግም።
የአገልጋይ መሠረተ ልማትን በሙሉ ማቃለል። በሃሳቡ መሰረት, ቪዲዮው በፒሲ በኩል ወደብ 80 በክፍል ይላካል. Nginx ራሱ የማይንቀሳቀስ ውሂብን የማድረስ ኃላፊነት አለበት። የማይንቀሳቀሱ ፋይሎችን መመለስ (እያንዳንዳቸው 50 ኪ.ባ ያላቸው የቪዲዮ ቁርጥራጮች) ለ nginx በጣም ቀላል ተግባር ነው።
ለአብዛኛዎቹ ተንቀሳቃሽ መሳሪያዎች፣ ዴስክቶፖች እና ታብሌቶች በቀጥታ ከአሳሹ ይደግፉ።
በመርህ ደረጃ በ RTSP በኩል ከማሰራጨት የበለጠ ቀላል። እንደ መግፋት (ዥረት ማተም) ወይም መጎተት (ዥረት መቀበል) ያሉ ሂደቶች ስለሌሉ ነው።
ብዙ ተጨማሪ http ተስማሚ ቅርጸት።
ጉዳቶቹ የሚከተሉት ናቸው።
አሁንም ሁሉም መሳሪያዎች ይህን ቅርጸት አይደግፉም. ከ 4.2 ያነሱ የአንድሮይድ ስሪቶች H.264 ኮድ እና መጓጓዣን በይፋ አይደግፉም ፣ ግን በአንድሮይድ ላይ ፣ በአሳሽ ምትክ ፣ ለማየት የሶስተኛ ወገን መተግበሪያን መጠቀም ይችላሉ - ለምሳሌ MX Player
ሁሉም በካሜራው ላይ የተመሰረተ ነው. ካሜራው አስቸጋሪ ከሆነ ፣ ለምሳሌ Dlink DCS-3010 ፣ ከዚያ አጠቃላይ ስርዓቱ በጣም ደካማ ነው (ffmpeg ያለማቋረጥ ይወድቃል)። ለምሳሌ፣ ካሜራዎች AXIS M1011-W፣ HIKVISION DS-2CD2412F-IW በዚህ ጥምር (እስከ አንድ ወር ድረስ ያለ ቅሬታ (ለረዘመ ጊዜ አልሞከርኩትም)) በጥሩ ሁኔታ ይሰራሉ። የኬብል ማዘዋወርም ትልቅ ጠቀሜታ አለው. ከዚህ አንፃር, ተስማሚውን አማራጭ እንመለከታለን.
HLS ትራንስፖርት ምንድን ነው?
በ h.264 ኢንኮዲንግ ውስጥ ያለው የቪዲዮ ዥረት (በነገራችን ላይ፡ የመገለጫ መነሻ በአንድሮይድ መሳሪያዎች ተረድቷል) ከቅጥያው *.ts ጋር ወደ ቁርጥራጭ ይከፈላል፣ ለምሳሌ እያንዳንዳቸው 5 ሰከንድ፣ አጫዋች ዝርዝር በቀጥታ.m3u8 ውስጥ ተፈጥሯል፣ ከ ጋር የእነዚህ ክፍሎች ተከታታይ መግለጫ. የአጫዋች ዝርዝሩ ርዝመት አስቀድሞ ተወስኗል፣ ለምሳሌ 10 ቁርጥራጮች። ቪዲዮው 11ኛው ክፍል ሲመጣ 1 ቪዲዮ ይሰረዛል፣ አጫዋች ዝርዝሩ እንደገና ይፈጠራል። ተጨማሪ ዝርዝሮች በገንቢው ድር ጣቢያ ላይ ይገኛሉ።
ስርዓቱ እንዲሰራ, ምስሉን ከካሜራዎች በጣቢያው ላይ ማየት በምንፈልገው መንገድ, የምስሉ ቅርጸት እና የምስል ጥራት እናዋቅራለን. በአገልጋዩ ላይ ዳግም ኮድ አንሰጥም። አስፈላጊ የሆነውን ምስል ለማምረት ካሜራ የተፈጠረው ለዚህ ነው. ካሜራዎች ብዙ ጊዜ ብዙ መገለጫዎች አሏቸው። አንዱን መገለጫ ለH.264፣ ለ HLS፣ እና ሁለተኛው ከ MPEG4 ጋር ለ MPEG-DASH ማዋቀር ይችላሉ። እንዲሁም ለሰፊ እና ለጠባብ የኢንተርኔት ቻናል የተለያዩ ጥራቶችን ማዋቀር ይችላሉ። ለራስዎ ያስቡ - ለራስዎ ይወስኑ.
አስፈላጊ!ካሜራው እንደገና መመሳጠር የማያስፈልገው ምስል ማውጣት አለበት።
ለከፍተኛ ጭነት ንድፍ አግድ
ካሜራ(rtsp) ------>
-- አንድ ግንኙነት FFmpeg(rtsp->hls) -> Nginx(nginx-rtmp-module) ----->
--> አንድ ግንኙነት ወደ መካከለኛ nginx ፕሮክሲ ከትልቅ መሸጎጫ ጋር =====>
====> ብዙ JWPlayer(hls) ደንበኞች
የእኛ አገልጋይ ffmpegን በመጠቀም ከካሜራ ጋር ይገናኛል እና በ nginx hls መተግበሪያ ይመዘግባል። nginx በአንድ የተወሰነ ማውጫ ውስጥ ቁርጥራጮች እና አጫዋች ዝርዝር ይፈጥራል። ከዚያም እነዚህን ቁርጥራጮች ወደ ተኪ አገልጋይ ይልካል. ደንበኞች JWPlayerን በመጠቀም ከፕሮክሲው ጋር ይገናኛሉ።
nginx መተግበሪያን በማዋቀር ላይ
nginxን በ nginx-rtmp-module እንገንባ። ይህ አሰራር በአንቀጹ ውስጥ በዝርዝር ተገልጿል.
በርካታ ካሜራዎች አሉን እንበል፣ በተከታታይ ቁጥር ይከፋፍሏቸው። ለ 2 ካሜራዎች የ nginx ውቅረትን እገልጻለሁ. በአከባቢው መሸጎጫ ውስጥ ለ 5 ደቂቃዎች የማይንቀሳቀሱ ምስሎችን እናስከማቸዋለን;
# nano /etc/nginx/nginx.conf
የ nginx ውቅረትን እናርትዕ
ተጠቃሚ www - ውሂብ;
የሰራተኛ_ሂደቶች አውቶማቲክ;
pid / አሂድ / nginx. ፒድ; error_log /var/log/nginx/nginx_error. የምዝግብ ማስታወሻ ማረም;
env PATH;
ክስተቶች ( # ባለብዙ_ተቀባይነት ፤ ) http ( access_log / var / log / nginx / access . log ; error_log / var / log / nginx / ስህተት . ሎግ ; mime . አይነቶችን ያካትቱ ; ነባሪ_አይነት መተግበሪያ / octet - ዥረት ; መላኪያ በ ላይ; keepalive_timeout 65 ; proxy_cache_path / var / www / መሸጎጫ / የአካባቢ ደረጃዎች = 1: 2 keys_zone = nginx_local_cache: 1 ሜትር የቦዘነ = 30 m max_size = 512 M; proxy_temp_path / var / www / cache / local / tmp (80 ስታቲስቲክስ ያዳምጡ) stat ( rtmp_stat all ፤ rtmp_stat_stylesheet stat. xsl ፤ ) አካባቢ / ስታቲስቲክስ xsl ኤችቲኤምኤል; አካባቢ = / 50 x. ኤችቲኤምኤል (ሥር ኤችቲኤምኤል) ያካትታል rtmp ( access_log / var / log / nginx / rtmp_access . ሎግ; አገልጋይ (1935 ያዳምጡ; ፒንግ 30 ሴ.
ካሜራዎች_rtmp_መተግበሪያዎችን ያካትቱ። 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; proxy_set_header ፍቃድ "መሰረታዊ"; ስህተት_ገጽ 502 504 404 @ fallback_img;) # አጫዋች ዝርዝሩን ይስጡ - /1/hls/live.m3u8 ወይም /3/hls/live.m3u8 # አጫዋች ዝርዝር በፕሮክሲው ላይ ለ10 ሰከንድ ተሸፍኗል አካባቢ ~* /hls/ . *\. m3u8 $ ( "/(.*)/hls/(.*)$"/hls - $ 1/$ 2 break; # እንደገና ጻፍ ጥያቄ / 1 / hls / ወደ / hls - 1 / root / tmp / , 10 ላይ ያበቃል. s; add_header መሸጎጫ - ቁጥጥር ይፋዊ;# ከካሜራዎች አንድ ቪዲዮ ይስጡ - /1/hls/live-12345678.ts ወይም /2/hls/live-12345678.ts በአካባቢው ኮምፒውተር ላይ # መሸጎጫ አያስፈልግም# ቁራጭ በፕሮክሲው ላይ ለ3 ደቂቃ ተሸፍኗል
አካባቢ ~* /hls/ . *\. ts $ ("/(.*)/hls/(.*)$"/hls - $ 1/$ 2 እረፍት፣ root/tmp/፣ 3 ሜትር ጊዜው ያበቃል፣ add_header Cache - Control public;)
ምስል ከሌለ # የተሰየመ ቦታ
አካባቢ @ fallback_img ( እንደገና ጻፍ (. + ) / fallback . jpg break; root / ወዘተ / nginx /;) ለ rtmp አገልጋይ ውቅረት የhls ፋይል ከካሜራዎቻችን ጋር እንፍጠር፡- # nano cameras_rtmp_applications.conf chunk_size 4000;አፕሊኬሽን hls_1 (በቀጥታ 10 ms አመሳስል፤ exec_static ffmpeg - i rtsp : ለ rtmp አገልጋይ ውቅረት የhls ፋይል ከካሜራዎቻችን ጋር እንፍጠር፡- # nano cameras_rtmp_applications.conf//አስተዳዳሪ፡[ኢሜል የተጠበቀ]
: 554/live1.sdp -c ቅጂ -f flv -an rtmp://localhost:1935/hls_1/live 2>>/var/log/nginx/ffmpeg_1.log;
hls ላይ;
hls_path /tmp/hls - 1/;
#EXTM3U #EXT-X-ስሪት፡3 #EXT-X-ሚዲያ-ቅደም ተከተል፡35 በቀጥታ - 17544960
በካሜራዎች መውደቅ ችግሩን መፍታት
በጣም ጥሩው መፍትሔ የሚያብረቀርቅ ካሜራ መቀየር ነው። ይህ በ 90% ጉዳዮች ላይ ይረዳል. ምንም መንገድ ከሌለ እና በሆነ መንገድ መቀጠል ከፈለጉ, የሚከተለው መፍትሄ ይረዳል.
ይህ መፍትሔ ሁለት ተጨማሪ ነገሮችን ያቀፈ ነው-
ለእያንዳንዱ ካሜራ የተለየ nginx ሂደት እና የማይንቀሳቀስ ውሂብን ለመመለስ የተለመደ ሂደትን ያሂዱ። ማለትም ለሁለት ካሜራዎች ከ rtmp አገልጋዮች ጋር እና አንድ የተለመደ በ http ይጽፋሉ። ከዚያ የሚያብረቀርቅ ካሜራ አጠቃላይ ሂደቱን አይጎዳውም.
ከካሜራው የሚወጣው ዥረት በችግሮቹ ምክንያት ከተስተጓጎለ (ከመጠን በላይ ማሞቅ ፣ ደካማ መያዣ ፣ በቂ ያልሆነ የፖው ኃይል አቅርቦት ፣ ወዘተ) ፣ ከዚያ ካሜራው ይወድቃል ፣ የ ffmpeg ልጅ ሂደት ፓኬቶችን ውድቅ ያደርጋል እና nginx ቁርጥራጮች መመዝገብ ያቆማል። ቪዲዮ. እና የffmpeg ሂደቱ ሲያልቅ nginx ሁሉንም ፋይሎች ከ chunks ማውጫ ይሰርዛል። ክሮን በመጠቀም አቃፊውን የማጽዳት ጊዜን እናሰላለን እና አስፈላጊውን የ nginx ሂደት እንደገና እንጀምራለን ።
ለእያንዳንዱ ካሜራ፣ በ /etc/init.d/፣ የ nginx ቅጂ፣ ካሜራ_1 እና ካሜራ_2 ውስጥ ሊተገበር የሚችል ስክሪፕት ይፈጠራል።
# 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 daemon ሁሉንም የማይንቀሳቀስ ውሂብ ያቀርባል። እንዲሁም ለካሜራዎች ተጠያቂ የሆኑትን ዲሞኖች ይጀምር እና ያቆማል።/ init . d / camera_1 አቁም fi ከሆነ [- f "/etc/init.d/camera_2"];
ከዚያም / ወዘተ / init . d/camera_2 stop fi
ወደ do_reload ተግባር አክል፡
# ካሜራዎችን እንደገና ይጫኑ [- f "/etc/init.d/camera_1" ];
ከዚያም / ወዘተ / init . d / camera_1 ዳግም ጫን fi ከሆነ [- f "/etc/init.d/camera_2" ];
ከዚያም / ወዘተ / init . d/camera_2 ዳግም ጫን fi
ምሳሌውን በመከተል የ nginx ማስጀመሪያ ስክሪፕት ለካሜራ 1 camera_1 እና ለካሜራ 2 camera_2 እናስተካክላለን።
# nano /etc/init.d/camera_1
የDAEMON_OPTS እና DESC ተለዋዋጮችን ቀይር
DESC = "ካሜራ_1 ለCAMERA-1" DAEMON_OPTS = "-c /etc/nginx/nginx_1.conf" ምሳሌውን በመከተል የ nginx ማስጀመሪያ ስክሪፕት ለካሜራ 2 camera_2 እናርትዕ።
እነሱ በቦታ ተለያይተው የተፈለገውን DIR-PROCESS-NAME ቃል፣ ማውጫውን እና የሂደቱን ስም ዳግም ማስነሳት እንዳለበት ያመለክታሉ።
ምርመራ፡-
# አገልግሎት nginx ጀምር # አገልግሎት ካሜራ_1 ዳግም ማስጀመር * ካሜራ_1ን እንደገና በማስጀመር ላይ ለ CAMERA - 1 ውቅር nginx # አገልግሎት ካሜራ_2 ዳግም ማስጀመር * ካሜራ_2ን እንደገና በማስጀመር ላይ ለ CAMERA - 2 ውቅር nginx
ካሜራዎችን ዳግም የሚያስነሳ ስክሪፕት። ምንም * .m3u8 ፋይሎች የሌሉበትን መፈለግ, ቁርጥራጮች ጋር አቃፊዎች በኩል ይሄዳል. በአቃፊው ውስጥ ምንም ፋይሎች ከሌሉ የዋናውን ዴሞን አወቃቀሩን በመጠቀም DIR-PROCESS-NAME የሚለውን መስመር በመጠቀም ተዛማጅ ዴሞንን ይፈልጋል። ዳግም ያስነሳዋል።
# nano /script/cameras_reloader.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/ቢን/ባሽ PATH = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin mask = "*.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 ) ለ hls_dir በ$dir ; Find_result = $ ( $ hls_dir ፈልግ -ስም $ ጭንብል -አይነት ረ) [ -z $ find_result ] ከሆነ; ከዚያ ሂደት = $(find_process $hls_dir) አገልግሎት $ሂደት እንደገና ይጀምራል fi done sleep 15s |
HLS ከ MPEG-DASH ጋር ማወዳደር
MPEG-DASH በGoogle ለ MPEG-4 ማጓጓዣ ሆኖ የተፈጠረ የHLS አናሎግ ነው። ይህ መጓጓዣ አልተስፋፋም እና በተግባር አይደገፍም. የእሱ ርዕዮተ ዓለም አንድ ነው፣ ዥረቱን ወደ ቁርጥራጭ ይሰብራል፣ ብቻ ይበዛል፣ ለቪዲዮ የተለየ ቁራጭ፣ ለድምጽ የተለየ። በ nginx-rtmp-module ይህ ቅርጸት ከኤችኤልኤስ ጋር በተመሳሳይ መልኩ ተዋቅሯል።
ሞክር፣ ቅዳ፣ ደፋር!
ጽሑፉ ለእርስዎ ጠቃሚ ከሆነ እባክዎን ማስታወቂያውን ጠቅ ያድርጉ። አመሰግናለሁ!
አገልግሎቶች አቅርቦት IPTVበኢንተርኔት እና በአካባቢያዊ የኮምፒዩተር ኔትወርኮች ከጊዜ ወደ ጊዜ እየተስፋፉ ያሉ ቅርጾችን እያገኙ ነው. በሲአይኤስ አገሮች ውስጥ ቪዲዮ የማያሰራጩ ትልልቅ አቅራቢዎች የሉም ማለት ይቻላል። መልቲካስትወደ አካባቢያዊ አውታረ መረቦች ማለትም አገልግሎቱን መስጠት IPTV. ነገር ግን ከአካባቢያዊ አውታረመረብ ውጭ የቴሌቪዥን አገልግሎቶችን መስጠት ከአንዳንድ የሃርድዌር ወጪዎች እና አስፈላጊውን የስርጭት ጥራት ከማረጋገጥ ችግር ጋር የተቆራኘ ነው።
HTTP የቀጥታ ዥረትበመባልም ይታወቃል ኤች.ኤል.ኤስ.በአፕል የተተገበረ የግንኙነት ፕሮቶኮል ነው። ልዩነቱ አጠቃላይ ዥረቱ በትንሽ የማውረጃ ፋይሎች ቅደም ተከተል የተከፋፈለ መሆኑ ነው፣ እያንዳንዱ ማውረጃ አንድ ትንሽ የትራንስፖርት ዥረት ቁራጭ ይጭናል። ዥረት በሚጫወትበት ጊዜ ደንበኛው ተመሳሳይ ይዘት ያላቸውን ከበርካታ የተለያዩ ተለዋጭ ዥረቶች መምረጥ ይችላል፣ በተለያየ የቢት ተመኖች ተመዝግቧል፣ ይህም ካለው የቢት ፍጥነት ጋር እንዲላመድ ያስችለዋል። በዥረት ክፍለ ጊዜ መጀመሪያ ላይ፣ የተሻሻለ M3U (m3u8) አጫዋች ዝርዝር ለተለያዩ ንዑስ ዥረቶች ሜታዳታ ይጫናል። ጥያቄዎች መደበኛ የኤችቲቲፒ ኦፕሬሽኖችን ብቻ ስለሚጠቀሙ፣ HTTP የቀጥታ ዥረት እንደ RTP ካሉ የUDP ፕሮቶኮሎች በተቃራኒ መደበኛ የኤችቲቲፒ ትራፊክን የሚፈቅድ ማንኛውንም ፋየርዎልን ወይም ፕሮክሲን ማለፍ ይችላል።
HLS በኤችቲቲፒ ላይ የተመሠረተ ነው። ኤችኤልኤስ እንዲሁም ቀላል የቅጂ መብት ጥበቃ ስርዓትን የሚያቀርቡትን ኤኢኤስን እና የ HTTPS ወይም HTTP ኩኪዎችን በመጠቀም የደህንነት ቁልፍ ማከፋፈያ ዘዴን በመጠቀም መደበኛ የምስጠራ ዘዴን ይገልጻል።
![]() |
HLS እንዴት ነው የሚሰራው? |
አሁን የዚህ ቴክኖሎጂ ጥቅሞች እና ጉዳቶች ምን እንደሆኑ ለማወቅ እንሞክር. ጥቅሞቹ የማይጠራጠሩ እና ግልጽ ናቸው. ይህ በመጀመሪያ ደረጃ የመረጃ ማስተላለፊያ ፍጥነትን ከመስመሩ እና ከተቀባዩ መሳሪያ ባህሪያት ጋር ማጣጣም እና ሁለተኛ, አብሮገነብ የቅጂ መብት ጥበቃ ዘዴዎች. ሦስተኛ, ምንም ስፋት ገደቦች ያለው ራውተር አያስፈልግም ባለብዙ ዥረትበ WI_FI በኩል፣ መልቲካስትን በመጠቀም የአይፒ ቴሌቪዥን ስርጭትን በተመለከተ ሙሉውን የሰርጥ ስፋት በብዝሃ-ካስት ዥረቶች እንዳይወሰድ ይረዳል። እንዲሁም, ተግባር ያለው ተጨማሪ መሳሪያ አያስፈልግም የ UDP ተኪየመልቲካስት ዥረትን ወደ ኤችቲቲፒ ለመቀየር ብዙ ጊዜ ለሞባይል መሳሪያዎች የሚፈለግ ምንም እንኳን በራውተር ላይ ያለውን የሃርድዌር ጭነት ወይም ሌላ በተመዝጋቢው የአካባቢ አውታረመረብ ውስጥ የ UDP ተኪ ተግባርን በሚያከናውን መሳሪያ ላይ ተጽዕኖ ያሳድራል። የኤችኤልኤስ ደረጃ በጣም የተስፋፋ ሲሆን በሁሉም ዘመናዊ የቪዲዮ ማጫወቻዎች እና በአይፒ ቲቪ የ set-top ሳጥኖች ይደገፋል።
![]() |
IPTV set-top ሣጥን |
ትልቅ ጉዳቱ የደንበኝነት ተመዝጋቢዎች የመልቲሚዲያ ስታፕ ቶፕ ሳጥኖች እና ስማርት-ቲቪ ስታፕ ቶፕ ሳጥኖች ያረጁ firmware ወይም ጊዜ ያለፈባቸው ዲዛይኖች HLS ደረጃዎችን የማይደግፉ ወይም በትክክል የማይደግፉ መሆናቸው ነው። እንዲሁም ከችግሮቹ ውስጥ አንዱ ከተጠየቀው የቪዲዮ ቁርጥራጭ ጊዜ ባነሰ ጊዜ ውስጥ የመስመር ባህሪያትን በሚቀይሩ ሁኔታዎች ውስጥ የተረጋጋ ስርጭትን ጥራት በትክክል መምረጥ አለመቻል ነው።
የመስመር ላይ ስርጭቶችን በእውነተኛ ጊዜ ለማደራጀት ፣ ቪዲዮ በፍላጎት (vod) ፣ እንዲሁም የቪዲዮ ዥረቶችን ለመቅዳት ፣ nginx ከ nginx-rtmp-module ሞጁል ጋር አንድ ላይ መጠቀም ይችላሉ።
የሚዲያ አገልጋዮች
ዛሬ ብዙ ታዋቂ የሚዲያ አገልጋዮች አሉ፣ ከነሱ በአንዱ የበለጠ ማንበብ ይችላሉ። የመስመር ላይ ስርጭቶችን በእውነተኛ ጊዜ ለመፍጠር የሚዲያ አገልጋዮች ያስፈልጋሉ።
የተለያዩ ተግባራትን ያካተቱ ሁለቱም የሚከፈልባቸው እና ነጻ የሚዲያ አገልጋዮች አሉ። ዛሬ ስለ አንድ ነጻ እና ቆንጆ ጥሩ መፍትሄ እንነጋገራለን.
Ngnix-rtmp
የማህደረመረጃ አገልጋይ መሰረታዊ ተግባር ነፃ ሶፍትዌሮችን በመጠቀም ሊተገበር ይችላል - የ Ngnix-rtmp-module ሞጁል፣ በአሁኑ ጊዜ እንደ RTMP እና HLS ያሉ የዥረት ፕሮቶኮሎችን ይደግፋል።
ስለዚህ Ngnix-rtmp (Ngnix web server + Ngnix-rtmp-module module) በመጠቀም የ RTMP እና HLS ስርጭትን ወደ ተጠቃሚ መሳሪያዎች ማደራጀት ይችላሉ። እነሱን የሚደግፉ የፕሮቶኮሎች እና መሳሪያዎች ማጠቃለያ ሰንጠረዥ በአንቀጹ ውስጥ ይገኛል። እንዲሁም፣ ከወደፊት ጽሑፎቼ በአንዱ፣ የ Ngnix-rtmp-module ሞጁል እና ሌሎች የሚዲያ አገልጋዮችን ተግባራዊነት የማነፃፀር ሠንጠረዥ ለመስራት አቅጃለሁ።
በ HLS ፕሮቶኮል በኩል የመስመር ላይ ስርጭት
ዛሬ የ HLS ፕሮቶኮልን በመጠቀም ቀላል ስርጭትን በተለዋዋጭ ቢትሬት ለማደራጀት Nginx-rtmp-moduleን እንዴት መጠቀም እንደምንችል እንመለከታለን። በመጀመሪያ ደረጃ የ Nginx ድር አገልጋይ ምንጭ ኮዶችን ከኦፊሴላዊው ድር ጣቢያ ማውረድ አለብን። ከዚህ በታች የቀረቡት ሁሉም ትዕዛዞች በሊኑክስ ውስጥ ተፈጽመዋል።
- wgethttp://nginx.org/download/nginx-1.4.1.tar.gz
ፋይሎችን ከማህደር ያውጡ።
- tar -zxvf nginx-1.4.1.tar.gz
የዚፕ ማህደሩን ከ nginx-rtmp-module ሞዱል ምንጭ ፋይሎች ጋር ያውርዱ እና ፋይሎቹን ከማህደሩ ያውጡ።
- wget https://github.com/arut/nginx-rtmp-module/archive/master.zip
አሁን nginx ን ከሞጁሉ ጋር ማጠናቀር ያስፈልገናል nginx-rtmp-ሞዱል , ይህንን ለማድረግ, nginx ን ሲያዋቅሩ, በምርጫው ውስጥ መግለጽ ያስፈልግዎታል --መደመር-ሞዱል የምንጭ ፋይሎች ቦታ nginx-rtmp-ሞዱል , እና ተጨማሪ አማራጭ መግለጽ አለብዎት በhttp_ssl_module .
./configure --add-module=/home/nginx/nginx-rtmp-module-master --with-http_ssl_module
መጫን ማድረግ
- ሁሉም ነገር ያለ ስህተት ከሄደ አገልጋዩን ማዋቀር መጀመር ይችላሉ። በነባሪ, አገልጋዩ በማውጫው ውስጥ ተጭኗል/usr/local/nginx . የ nginx.conf አገልጋይ ውቅር ፋይል በማውጫው ውስጥ ይገኛል።/usr/local/nginx/conf . የውቅረት ፋይልን የ rtmp: አገልጋይ ክፍልን ጠለቅ ብለን እንመርምር። የማዳመጥ መለኪያው አገልጋዩ የrtmp ጥያቄዎችን የሚቀበልበትን ወደብ ይገልጻል።
- በመቀጠል የሙከራ ቀጥታ መተግበሪያን ለማዘጋጀት ክፍሉን እንከፍተዋለን. እዚህ የቀጥታ ዥረት እንዳለን እንጠቁማለን - ቀጥታ በመለኪያ ላይ ፣ ለዚህ መተግበሪያ የ hls ፕሮቶኮል ድጋፍን እናነቃለን - hls on parameter።
- መለኪያውን በመጠቀም hls_መንገድ የዥረቱ ቁርጥራጮች (ቁራጮች) የሚገኙበትን ማውጫ እናዘጋጃለን። ለእያንዳንዱ የቪዲዮ ዥረት ቁርጥራጮች (ቁራጮች) በተለየ ማውጫ ውስጥ እንዲገኙ መመሪያውን ማካተት አለብዎት hls_የተሰራ .
- በመቀጠል መለኪያውን በመጠቀም ማተምን ፍቀድ ከኮምፒዩተርዎ ላይ ዥረቶችን እንዲያትሙ እና መለኪያውን በመጠቀም እንፈቅዳለን። ሁሉንም አትም ሁሉም ሰው ቪዲዮዎችን እንዳያትም እንከለክላለን።
- አሁን ክፍሉን እንይhttp: አገልጋይ . በመለኪያው ውስጥ አዳምጡ አገልጋዩ በየትኛው ወደብ እንደሚቀበል ማመልከት አስፈላጊ ነውhttp ጥያቄዎች. ወደብ 8080 እንገልፃለን እና ከምሳሌው የማዋቀሪያ ፋይል ክፍልን ያንቀሳቅሱhttp: አገልጋይ: አካባቢ/hls . በሁሉም የውቅረት ፋይሉ መመሪያዎች ላይ የበለጠ ዝርዝር መረጃን በሚከተለው ላይ ማየት ይችላሉ፡-https://github.com/arut/nginx-rtmp-module/wiki/Directives።
- አገልጋዩን ለመጀመር ጊዜው አሁን ነው። ይህንን ለማድረግ ወደ ማውጫው መሄድ ያስፈልግዎታል /usr/local/nginx/bin እና ትዕዛዙን ያሂዱ ./nginx .
አሁን አንድ ምሳሌ እንመልከት። ሶስት የቪዲዮ ዥረቶችን ወደ አገልጋዩ እንልካለን፡-
- ፈተና1በ256 kbit/s የቢት ፍጥነት፣
- ፈተና2በ512 kbit/s የቢት ፍጥነት፣
- ፈተና3በ 1024 ኪ.ቢ.ቢ ቢትሬት።
ግባችን የኤችኤልኤስ ፕሮቶኮል (መሳሪያዎች፡ ማክ፣ አይፓድ፣ አይፎን) የሚጠቀም ደንበኛ እንደ በይነመረብ ግንኙነት ጥራት በዥረቶች መካከል በተለዋዋጭ መቀያየር እንዲችል ነው። ይህንን ለማድረግ በማውጫው ውስጥ ያስፈልገናል /usr/local/nginx/html ከቅጥያው ጋር ፋይል ይፍጠሩ m3u8 ለምሳሌ አጫዋች ዝርዝር.m3u8 ከሚከተለው ይዘት ጋር፡-
#EXTM3U
#EXT-X-ስሪት፡3
#EXT-X-STREAM-INF፡ፕሮግራም-መታወቂያ=1፣ባንድዊድዝ=256000፣መፍትሄ=640×480
hls/ፈተና1/index.m3u8
#EXT-X-STREAM-INF፡ፕሮግራም-መታወቂያ=1፣ባንድዊድዝ=512000፣መፍትሄ=640×480
hls/test2/index.m3u8
#EXT-X-STREAM-INF፡ፕሮግራም-መታወቂያ=1፣ባንድዊድዝ=1024000፣መፍትሄ=640×480
hls/test3/index.m3u8
ስርጭቱን ይመልከቱ
የቪዲዮ ዥረቶችን ለማየት የሚከተለውን ኮድ ወደ ጣቢያው ድረ-ገጽ መክተት አለብዎት።
- የእርስዎ nginx አገልጋይ አይፒ አድራሻ።
[የአጫዋች ዝርዝር ስም]- በቀደመው አንቀጽ ውስጥ የተፈጠረውን ፋይል ስም (playlist.m3u8)።
ከታች የቀላል nginx.conf ውቅር ፋይል ምሳሌ ነው።
የሰራተኛ_ሂደቶች 1;
አገልጋይ (
1935 ያዳምጡ;
የመተግበሪያ ሙከራ በቀጥታ (
ላይ መኖር;
hls ላይ;
hls_path /tmp/hls;
hls_nested ላይ;
ማተምን መፍቀድ 10.10.146.148;
ሁሉንም አትም መካድ;
አገልጋይ (
ያዳምጡ 8080;
የአገልጋይ_ስም rtmp_test;
charset utf-8;
አካባቢ/(
ስርወ html;
መረጃ ጠቋሚ.html index.htm;
አካባቢ / hls (
ዓይነቶች (
መተግበሪያ/vnd.apple.mpegurl m3u8;
ተለዋጭ ስም /tmp/hls;
ማጠቃለያ
ይህ ጽሑፍ ከባልደረባዬ Evgeniy Petrov ጋር በጋራ ተጽፎ ታትሟል። ይህንን ሞጁል (Ngnix-rtmp) በተለያዩ ፕሮጀክቶች ውስጥ እንጠቀማለን። ስለ Ngnix-rtmp፣ Wowza አገልጋይ ማንም ጥያቄ ካለው ይፃፉ። የሆነ ነገር ማዋቀር ወይም በሚዲያ አገልጋዮች እና መልቲሚዲያ ስርዓቶች ላይ ምክር ማግኘት ከፈለጉ እኔን እና ቡድናችንን በ በኩል ማግኘት ይችላሉ።
በቴክኒካል ፍፁም የሆኑ አፕሊኬሽኖችን መፍጠር ብዙ ጊዜ እጅግ ከባድ እና ጊዜ የሚወስድ ስራ ነው። በተመሳሳይ ጊዜ, ጠቃሚ መረጃ ብዙውን ጊዜ በብዙ ምንጮች ውስጥ ተበታትኗል. ይህ ከሌሎች ነገሮች በተጨማሪ ለ iOS የቪዲዮ ትግበራዎች እድገትን ይመለከታል። ይህ ጽሑፍ ሙሉውን የኤችቲቲፒ የቀጥታ ዥረት አቅም በብቃት እንድትጠቀም የሚያስችልህ በጣም አስፈላጊ እና ጠቃሚ መረጃን እንዲሁም የዋና ምንጮችን ዝርዝር ይዟል። እነዚህ ቁሳቁሶች ከፍተኛ ጥራት ያላቸውን እና ለተጠቃሚ ምቹ የቪዲዮ አገልግሎቶችን ለመፍጠር ለሚፈልጉ አንባቢዎች ሁሉ ጠቃሚ ይሆናሉ።
የቪዲዮ አገልግሎቶችን ምቾት እና መስተጋብር ማሳደግ በፍጥነት በማስጀመር እና በመመለስ እንዲሁም በማቋረጫ አለመኖር ይሳካል። ምርጡን ውጤት ለማግኘት, የሚከተሉት የድርጊት ስብስቦች ይመከራሉ.
- በዝቅተኛ የቪዲዮ ጥራት ይጀምሩ።ቪዲዮ ለመጀመር ቢያንስ አንድ ቁራጭ ያስፈልጋል። በዚህ መሠረት የአንድ ቁራጭ ትንሽ መጠን, ቪዲዮው በፍጥነት ይጀምራል. የመነሻ ዥረቱን የቢት ፍጥነት መቀነስ እና የጭራሹን ቆይታ መቀነስ ፈጣን የቪዲዮ ማስጀመርን ያመጣል። ከ4-8 ሰከንድ እና የመነሻ የቢት ፍጥነት ከ200-300 Kbps እንዲቆይ እንመክራለን። ስለዚህ ቪዲዮውን መጫወት ለመጀመር ተጠቃሚው ቢበዛ 300 ኪባ ማውረድ ይኖርበታል።
- የአጫዋች ዝርዝር ማመቻቸት።አጫዋች ዝርዝሮች ከአጠቃላይ የውሂብ ዥረቱ ውስጥ ጉልህ የሆነ ክፍል ሊወስዱ ይችላሉ፣ በተለይም በትንሽ ቁርጥራጮች እና ረጅም ጊዜ የሚቆይ ይዘት (በርካታ ሰዓታት)። በአብዛኛዎቹ አጋጣሚዎች አጫዋች ዝርዝሮችን ወደ ቪዲዮ ማጫወቻ ሲያስተላልፉ, እነሱን በማህደር ለማስቀመጥ ይመከራል.
- ቁልፍ ፍሬሞች።በእያንዳንዱ ክፍል ቢያንስ አንድ IDR ፍሬም እንዲኖር ይመከራል ፣ በተለይም በክፍሉ መጀመሪያ ላይ። በተጨማሪም ቪዲዮን በተንቀሳቃሽ ስልክ አውታረ መረቦች ላይ ሲያስተላልፍ በየ3 ሰከንድ ቢያንስ አንድ ጊዜ የቁልፍ ፍሬሞችን መፍጠር ይመከራል።
- TS በላይ.ኤችቲቲፒ LS MPEG TSን እንደ መያዣ ይጠቀማል፣ ስለዚህ የ TS ወጪን መቀነስ በጣም አስፈላጊ ነው (በዝቅተኛ የቪዲዮ ጥራት እንኳን ከ 10% ያነሰ መሆን አለበት)። በዚህ ሁኔታ የትራፊክ ማጠራቀሚያዎችን በመጠቀም እውነተኛ ቢትሬትን መለካት እና ጥቅም ላይ የዋሉ ፓኬጆችን (ክፍልፋዮችን) ማመቻቸት ጠቃሚ ነው.
- የዒላማ ቆይታ መለኪያ በአጫዋች ዝርዝሩ ውስጥ።ይህ ቅንብር የጅምር ጊዜን ይነካል፣ ነገር ግን አፕል ወደ 10 ሰከንድ እንዲያዋቅሩት ይመክራል ምክንያቱም ዝቅተኛ ቅንጅቶች የማቋት እድላቸውን ስለሚጨምሩ በተለይም ከፍተኛ መዘግየት ባለው ሴሉላር አውታረ መረቦች ላይ። እንዲሁም ከ 20 ሰከንድ በላይ ክፍሎችን መፍጠር አይመከርም.
- ተለዋዋጭ ቢትሬት።በአይኦኤስ ውስጥ አብሮ የተሰራው የማላመድ የማስተላለፊያ ዘዴ በተለዋጭ አጫዋች ዝርዝር ውስጥ በትክክል በተገለጹ ቢትሬትስ (የአጫዋች ዝርዝሩን ትራፊክ ግምት ውስጥ በማስገባት) በጥሩ ሁኔታ ይሰራል። በዚህ አጋጣሚ፣ የተለያየ ቢትሬት ላላቸው ዥረቶች፣ ወደ ከፍተኛው የቀረበ እሴት መግለጽ ያስፈልግዎታል። አለበለዚያ የአሁኑን የቪዲዮ ዥረት ስለመቀየር የተሳሳቱ ውሳኔዎች ሊኖሩ ይችላሉ። የአጎራባች ቢትሬት ፍጥነት በ 1.5 - 2 ጊዜ ሊለያይ ይገባል.
- ኦዲዮ ብቻ ይለቀቃል።የHE-AAC ኦዲዮ ኮዴክ በጣም ቀልጣፋ እና በአብዛኛዎቹ መሳሪያዎች የተደገፈ ነው። የኦዲዮ ብቻ ቻናሎችን ማድረስ የሚመከር የ MPEG አንደኛ ደረጃ ዥረትን በመጠቀም እንጂ የ MPEG ትራንስፖርት ዥረት (በትልቁ ትንሽ ከአናት በላይ) አይደለም።
የቪዲዮ ማጫወቻዎን በሚያዳብሩበት ጊዜ ጠቃሚ መረጃ ከኤችቲቲፒ የቀጥታ ዥረት ሎግ (መዳረሻ ሎግ) ማግኘት ይችላሉ። እንዴት አውቶማቲክ መቀያየር እንደተከሰተ፣ ምን ቢትሬት ጥቅም ላይ እንደዋለ፣ ወዘተ መረጃ ይዟል። በምዝግብ ማስታወሻው ውስጥ ስላለው መረጃ ዝርዝሮች. በዚህ ውሂብ ላይ በመመስረት በተጠቃሚዎችዎ ላይ የቪዲዮ ትንታኔ ውሂብን መሰብሰብ ይችላሉ።
ተጨማሪ ምክሮች
በኦንላይን ቪዲዮ ስርጭቶች ላይ በሲዲኤን መዘግየት ምክንያት እንዲሁም የአጫዋች ዝርዝር ማሻሻያ ጊዜ በጣም አጭር በሆነበት እና አገልጋዩ በጊዜ ውስጥ ክፍሎችን ለመፍጠር ጊዜ በማይሰጥበት ጊዜ ማቋረጡም ይቻላል ። የመመለሻ ዘዴን ለማመቻቸት ኢንቲጀር ያልሆኑ (ትክክለኛ) ክፍል የቆይታ ጊዜ እሴቶችን ለመጠቀም ይመከራል፡ ያለበለዚያ ስህተት ሊከማች ይችላል።
አፕሊኬሽንዎ በተለያዩ መሳሪያዎች ላይ ጥቅም ላይ እንዲውል የታቀደ ከሆነ በዝርዝሩ ውስጥ የተለያዩ የምስል ጥራትን በተለያዩ የስክሪን ጥራቶች መግለጽ ይችላሉ። በዚህ መንገድ የተለያዩ ቪዲዮዎችን በአይፓድ በሬቲና ማሳያ እና በአንፃራዊነት ያረጀ አይፎን ማውጣት ይችላሉ።
የኤችቲቲፒ የቀጥታ ዥረት ፕሮቶኮል የስሕተት መቻቻልን (የምትኬ የቪዲዮ ምንጮችን በመጥቀስ) ለማረጋገጥ ስልቶችን ያቀርባል። ይህ ባህሪ የአገልግሎቶችዎን አስተማማኝነት ለማሻሻል ጠቃሚ ሊሆን ይችላል።
የእውቀት ምንጮች
በቪዲዮ መተግበሪያዎች ውስጥ HTTP የቀጥታ ዥረት ስለመጠቀም አጭር የቁሳቁስ ዝርዝር፡
HTTP የቀጥታ ዥረት ረቂቅ
የኤችቲቲፒ የቀጥታ ዥረት ተዘውትረው የሚጠየቁ ጥያቄዎች
ለ HLS ምርጥ ልምዶች
በመጨረሻም ከ WWDC 2012 ነፃ የቴክኒክ ቪዲዮ ክፍለ ጊዜዎች ለተመዘገቡ ማክ/አይኦኤስ/ሳፋሪ ገንቢዎች መኖራቸውን ልብ ሊባል የሚገባው ሲሆን ይህ ደግሞ ብዙ ጠቃሚ መረጃዎችን የያዘ ሲሆን በተለይም ከቪዲዮ ጋር አብሮ ለመስራት እና HTTP Live Streamingን መጠቀም ነው።