FMUSER უფრო მარტივად გადასცემს ვიდეოს და აუდიოს!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> აფრიკული
sq.fmuser.org -> ალბანური
ar.fmuser.org -> არაბული
hy.fmuser.org -> სომხური
az.fmuser.org -> აზერბაიჯანული
eu.fmuser.org -> ბასკური
be.fmuser.org -> ბელორუსული
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> კატალანური
zh-CN.fmuser.org -> ჩინური (გამარტივებული)
zh-TW.fmuser.org -> ჩინური (ტრადიციული)
hr.fmuser.org -> ხორვატული
cs.fmuser.org -> ჩეხური
da.fmuser.org -> დანიური
nl.fmuser.org -> ჰოლანდიური
et.fmuser.org -> ესტონური
tl.fmuser.org -> ფილიპინური
fi.fmuser.org -> ფინური
fr.fmuser.org -> ფრანგული
gl.fmuser.org -> გალური
ka.fmuser.org -> ქართული
de.fmuser.org -> გერმანული
el.fmuser.org -> ბერძნული
ht.fmuser.org -> ჰაიტიური კრეოლური
iw.fmuser.org -> ებრაული
hi.fmuser.org -> ჰინდი
hu.fmuser.org -> Hungarian
is.fmuser.org -> ისლანდიური
id.fmuser.org -> ინდონეზიური
ga.fmuser.org -> ირლანდიური
it.fmuser.org -> იტალიური
ja.fmuser.org -> იაპონური
ko.fmuser.org -> კორეული
lv.fmuser.org -> ლატვიური
lt.fmuser.org -> ქართული
mk.fmuser.org -> მაკედონური
ms.fmuser.org -> მალაიზიური
mt.fmuser.org -> მალტური
no.fmuser.org -> ნორვეგიული
fa.fmuser.org -> სპარსული
pl.fmuser.org -> პოლონური
pt.fmuser.org -> პორტუგალიური
ro.fmuser.org -> რუმინული
ru.fmuser.org -> რუსული
sr.fmuser.org -> სერბული
sk.fmuser.org -> სლოვაკური
sl.fmuser.org -> Slovenian
es.fmuser.org -> ესპანური
sw.fmuser.org -> სუაჰილი
sv.fmuser.org -> შვედური
th.fmuser.org -> Thai
tr.fmuser.org -> თურქული
uk.fmuser.org -> უკრაინული
ur.fmuser.org -> ურდუ
vi.fmuser.org -> ვიეტნამური
cy.fmuser.org -> უელსური
yi.fmuser.org -> Yiddish
რამდენიმე დღის წინ გარკვეული დრო გავატარე HTTP ცოცხალი სტრიმინგის (HLS) ტექნოლოგიის შესასწავლად და C + + - ზე დაწერილი HLS შიფრატორის, hlsliveencoder- ის განსახორციელებლად. მისი ფუნქციაა კამერისა და მიკროფონის, რეალურ დროში H.264 ვიდეო კოდირებისა და aac აუდიო კოდირების აღება, ხოლო HLS პროტოკოლის დაზუსტების შესაბამისად, სეგმენტირებული სტანდარტული TS ფაილისა და m3u8 ინდექსის ფაილის შექმნა. ჩემი hlsliveencoder- ისა და მესამე მხარის HTTP სერვერის (მაგალითად, nginx) საშუალებით, ჩვენ წარმატებით ვაცნობიერეთ HTTP- ის პირდაპირი სტრიმინგი და ჩავაბარეთ ტესტი iPhone- ზე. რამდენიმე მოგებას აქ დავწერ.
1. HLS ტექნოლოგიის ანალიზი
HTTP ცოცხალი ნაკადი (HLS) არის სტრიმინგის მედიის ტრანსპორტირების პროტოკოლი, რომელიც დაფუძნებულია HTTP– ზე, რომელსაც ახორციელებს Apple Inc., რომელსაც შეუძლია რეალიზება პირდაპირი და მოთხოვნადი სტრიმინგის მედია საშუალებით. იგი ძირითადად გამოიყენება IOS სისტემაში აუდიო და ვიდეო ცოცხალი და მოთხოვნადი გადაწყვეტილებების უზრუნველსაყოფად IOS მოწყობილობებისთვის (მაგალითად, iPhone და iPad). HLS მოთხოვნით, ძირითადად, მოთხოვნილზე გავრცელებულია სეგმენტირებული HTTP. განსხვავება იმაშია, რომ მისი სეგმენტები ძალიან მცირეა. იმისათვის, რომ საჭირო გახდეს HLS მოთხოვნა, მთავარია მედია ფაილების სეგმენტირება. დღეისათვის არსებობს მრავალი ღია წყარო, რომლის გამოყენებაც შესაძლებელია. აქ ამას არ განვიხილავ, უბრალოდ ვისაუბროთ HLS- ის პირდაპირი ტრანსლაციის ტექნოლოგიაზე.
ცოცხალი სტრიმინგის საერთო პროტოკოლებთან შედარებით, როგორიცაა RTMP პროტოკოლი, RTSP პროტოკოლი, MMS პროტოკოლი და ა.შ., HLS პირდაპირი სტრიმინგის ყველაზე დიდი განსხვავება ისაა, რომ ცოცხალი კლიენტი არ იღებს მონაცემთა სრულ ნაკადს. HLS პროტოკოლი ინახავს მონაცემთა პირდაპირ ნაკადს, როგორც უწყვეტი, მოკლევადიანი და გრძელი მედია ფაილები (mpeg-ts ფორმატი) სერვერის მხარეს, ხოლო კლიენტის მხარე განუწყვეტლივ ჩამოტვირთავს და თამაშობს ამ პატარა ფაილებს, რადგან სერვერის მხარე ყოველთვის ქმნის ახალ მცირე უახლესი ცოცხალი მონაცემები, რომ კლიენტის მხარემ მხოლოდ ლაივის რეალიზაციისთვის საჭიროა მხოლოდ სერვერიდან მიღებული ფაილების დაკვრა. ჩანს, რომ HLS ძირითადად ახორციელებს პირდაპირ მაუწყებლობას VOD ტექნოლოგიის საშუალებით. იმის გამო, რომ მონაცემები გადაეცემა HTTP პროტოკოლის საშუალებით, არ არის საჭირო Firewall ან მარიონეტული სისტემის პრობლემის განხილვა და ფაილების სეგმენტირების დრო ძალიან მცირეა. კლიენტს შეუძლია სწრაფად აირჩიოს და შეცვალოს კოდის სიჩქარე, რათა ადაპტირდეს დაკვრა სხვადასხვა გამტარუნარიანობის პირობებში. ამასთან, HLS– ის ტექნიკური მახასიათებლების გამო, მისი შეფერხება ყოველთვის უფრო მაღალია, ვიდრე ჩვეულებრივი პირდაპირი სტრიმინგის პროტოკოლის.
ზემოაღნიშნული გაგებით, HTTP ცოცხალი ნაკადი რომ მივაღწიოთ, საჭიროა შემდეგი ძირითადი ტექნოლოგიების შესწავლა და დანერგვა.
(1) შეაგროვეთ ვიდეოს წყაროს და აუდიოს წყაროს მონაცემები
(2) თავდაპირველი მონაცემები დაშიფრულია H264 და AAC მიერ
(3) ვიდეო და აუდიო მონაცემები შეფუთულია როგორც mpeg-ts პაკეტები
(4) HLS სეგმენტაციის გენერაციის სტრატეგია და m3u8 ინდექსის ფაილი
2. HTTP ტრანსპორტის პროტოკოლი
მათ შორის პირველი და მეორე პუნქტები აღინიშნა ჩემს წინა სტატიაში და ბოლო ისაა, რომ შეგვიძლია გამოვიყენოთ არსებული HTTP სერვერი, ამიტომ მთავარია მესამე და მეოთხე წერტილების განხორციელება.
(1) პროგრამის ჩარჩო და განხორციელება
ზემოთ მოცემული ანალიზის საშუალებით, HLS ცოცხალი კოდირების ლოგიკა და პროცესი ძირითადად ნათელია: დაიწყეთ აუდიო და ვიდეო კოდირების თემა, აუდიოს და ვიდეოს შეძენა გაითვალისწინეთ DirectShow (ან სხვა) ტექნოლოგიის საშუალებით, შემდეგ კი დარეკეთ libx264 და libfaac ვიდეოზე და აუდიო კოდირება. ორი კოდირების ძაფის რეალურ დროში კოდირების აუდიო და ვიდეო მონაცემები, ისინი ინახავენ მას mpeg-ts ფორმატის სეგმენტურ ფაილში, დაყოფილი დანაყოფის სტრატეგიის შესაბამისად. სეგმენტის ფაილის შენახვისას, განახლდება m3u8 ინდექსის ფაილი. როგორც ნაჩვენებია ქვემოთ მოცემულ ფიგურაში:
ზემოთ მოცემულ ფიგურაში, ვიდეო და აუდიო მონაცემების მიღების შემდეგ, hlsliveencoder– მა პირველ რიგში უნდა დაადგინოს უნდა დასრულდეს თუ არა მიმდინარე დანაყოფი და შექმნას ახალი დანაყოფი TS დანაყოფის უწყვეტი წარმოქმნის გასაგრძელებლად. უნდა აღინიშნოს, რომ ახალი ფრაგმენტაცია უნდა დაიწყოს ძირითადი ჩარჩოდან, რათა მოთამაშემ არ გაშიფროს დეკოდირება. ძირითადი კოდი შემდეგია:
Tsmuxer– ის ინტერფეისი ასევე შედარებით მარტივია.
(2) HLS სეგმენტის გენერაციის სტრატეგია და m3u8
① სეგმენტაციის სტრატეგია
HLS– ის სეგმენტაციის სტრატეგია ძირითადად რეკომენდებულია ყოველ 10 წამში გაყოფისთვის. რა თქმა უნდა, კონკრეტული დრო უნდა აღინიშნოს გაყოფის რეალური სიგრძის შესაბამისად
ზოგადად, ქეშის და სხვა მიზეზების გამო, უახლესი სამი ფრაგმენტის მისამართი ინახება ინდექსის ფაილში და განახლდება "მოცურების ფანჯრის" სახით.
M m3u8 ფაილის დანერგვა
M3u8 არის HTTP პირდაპირი სტრიმინგის ინდექსი ფაილი. M3u8 შეიძლება ჩაითვალოს, როგორც. ძირითადად M3U ფორმატის ფაილი, განსხვავება იმაშია, რომ m3u8 ფაილი იყენებს UTF-8 სიმბოლოების კოდირებას.
დააკოპირე კოდი
# Extm3u M3U ფაილის სათაური, პირველ რიგში უნდა განთავსდეს
ექსტ-x- მედია-მიმდევრობის პირველი TS სეგმენტის # სერიული ნომერი
# Ext-x-targetduration თითოეული TS სეგმენტის მაქსიმალური ხანგრძლივობა
# საშუალებას იძლევა ext-x-allow-cache ქეში
# X-endlist m3u8 ფაილის დასასრული
# Extinf დამატებითი ინფორმაცია, ინფორმაცია split split- ის შესახებ, როგორიცაა ხანგრძლივობა, გამტარობა და ა.შ.
|
შეიყვანეთ ელ.წერილი სიურპრიზის მისაღებად
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> აფრიკული
sq.fmuser.org -> ალბანური
ar.fmuser.org -> არაბული
hy.fmuser.org -> სომხური
az.fmuser.org -> აზერბაიჯანული
eu.fmuser.org -> ბასკური
be.fmuser.org -> ბელორუსული
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> კატალანური
zh-CN.fmuser.org -> ჩინური (გამარტივებული)
zh-TW.fmuser.org -> ჩინური (ტრადიციული)
hr.fmuser.org -> ხორვატული
cs.fmuser.org -> ჩეხური
da.fmuser.org -> დანიური
nl.fmuser.org -> ჰოლანდიური
et.fmuser.org -> ესტონური
tl.fmuser.org -> ფილიპინური
fi.fmuser.org -> ფინური
fr.fmuser.org -> ფრანგული
gl.fmuser.org -> გალური
ka.fmuser.org -> ქართული
de.fmuser.org -> გერმანული
el.fmuser.org -> ბერძნული
ht.fmuser.org -> ჰაიტიური კრეოლური
iw.fmuser.org -> ებრაული
hi.fmuser.org -> ჰინდი
hu.fmuser.org -> Hungarian
is.fmuser.org -> ისლანდიური
id.fmuser.org -> ინდონეზიური
ga.fmuser.org -> ირლანდიური
it.fmuser.org -> იტალიური
ja.fmuser.org -> იაპონური
ko.fmuser.org -> კორეული
lv.fmuser.org -> ლატვიური
lt.fmuser.org -> ქართული
mk.fmuser.org -> მაკედონური
ms.fmuser.org -> მალაიზიური
mt.fmuser.org -> მალტური
no.fmuser.org -> ნორვეგიული
fa.fmuser.org -> სპარსული
pl.fmuser.org -> პოლონური
pt.fmuser.org -> პორტუგალიური
ro.fmuser.org -> რუმინული
ru.fmuser.org -> რუსული
sr.fmuser.org -> სერბული
sk.fmuser.org -> სლოვაკური
sl.fmuser.org -> Slovenian
es.fmuser.org -> ესპანური
sw.fmuser.org -> სუაჰილი
sv.fmuser.org -> შვედური
th.fmuser.org -> Thai
tr.fmuser.org -> თურქული
uk.fmuser.org -> უკრაინული
ur.fmuser.org -> ურდუ
vi.fmuser.org -> ვიეტნამური
cy.fmuser.org -> უელსური
yi.fmuser.org -> Yiddish
FMUSER უფრო მარტივად გადასცემს ვიდეოს და აუდიოს!
კონტაქტები
მისამართი:
No.305 ოთახი HuiLan კორპუსი No.273 Huanpu Road Guangzhou China 510620
კატეგორიები
საინფორმაციო ბიულეტენი