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 -> Բուլղարիայի
ca.fmuser.org -> կատալաներեն
zh-CN.fmuser.org -> չինարեն (պարզեցված)
zh-TW.fmuser.org -> Chinese (Traditional)
hr.fmuser.org -> խորվաթերեն
cs.fmuser.org -> չեխերեն
da.fmuser.org -> դանիերեն
nl.fmuser.org -> Dutch
et.fmuser.org -> էստոնական
tl.fmuser.org -> ֆիլիպիներեն
fi.fmuser.org -> ֆիններեն
fr.fmuser.org -> French
gl.fmuser.org -> Գալիսիերեն
ka.fmuser.org -> վրացերեն
de.fmuser.org -> գերմաներեն
el.fmuser.org -> Հունական
ht.fmuser.org -> հաիթական կրեոլերեն
iw.fmuser.org -> եբրայերեն
hi.fmuser.org -> հինդի
hu.fmuser.org -> Հունգարիայի
is.fmuser.org -> իսլանդերեն
id.fmuser.org -> Ինդոնեզերեն
ga.fmuser.org -> իռլանդերեն
it.fmuser.org -> Italian
ja.fmuser.org -> ճապոներեն
ko.fmuser.org -> կորեերեն
lv.fmuser.org -> լատվիերեն
lt.fmuser.org -> Լիտվայի
mk.fmuser.org -> մակեդոներեն
ms.fmuser.org -> մալայերեն
mt.fmuser.org -> մալթերեն
no.fmuser.org -> Norwegian
fa.fmuser.org -> պարսկերեն
pl.fmuser.org -> լեհերեն
pt.fmuser.org -> Պորտուգալերեն
ro.fmuser.org -> Romanian
ru.fmuser.org -> ռուսերեն
sr.fmuser.org -> սերբերեն
sk.fmuser.org -> սլովակերեն
sl.fmuser.org -> Սլովեներեն
es.fmuser.org -> իսպաներեն
sw.fmuser.org -> սուահիլի
sv.fmuser.org -> Շվեդերեն
th.fmuser.org -> Թայերեն
tr.fmuser.org -> թուրք
uk.fmuser.org -> ուկրաիներեն
ur.fmuser.org -> Ուրդու
vi.fmuser.org -> Վիետնամերեն
cy.fmuser.org -> Ուելսերեն
yi.fmuser.org -> Հայերեն
Մի քանի օր առաջ ես որոշ ժամանակ անցկացրեցի HTTP կենդանի հոսքի (HLS) տեխնոլոգիան ուսումնասիրելու և C + + - ով գրված HLS կոդավորիչ ՝ hlsliveencoder իրականացնելու համար: Դրա գործառույթն է ֆոտոխցիկը և խոսափողը, իրական ժամանակում H.264 վիդեո կոդավորումը և aac աուդիո կոդավորումը, և ըստ HLS պրոտոկոլի բնութագրերի, առաջացնել հատվածավորված ստանդարտ TS ֆայլ և m3u8 ինդեքս ֆայլ: Իմ hlsliveencoder- ի և երրորդ կողմի HTTP սերվերի միջոցով (օրինակ `nginx) մենք հաջողությամբ իրականացրինք HTTP- ի կենդանի հոսքը և փորձարկում անցանք iPhone- ով: Որոշ ձեռքբերումներ ես կգրեմ այստեղ:
1. HLS տեխնոլոգիայի վերլուծություն
HTTP կենդանի հոսքը (HLS) հոսքային լրատվամիջոցների փոխադրման արձանագրություն է, որը հիմնված է Apple Inc.- ի կողմից իրականացվող HTTP- ի վրա, որը կարող է իրականացնել կենդանի և ըստ պահանջի հոսքային լրատվամիջոցներ: Այն հիմնականում օգտագործվում է IOS համակարգում `IOS սարքերի (օրինակ` iPhone և iPad) աուդիո և վիդեո կենդանի և ըստ պահանջի լուծումներ ապահովելու համար: Ըստ պահանջի HLS- ը հիմնականում պահանջված ընդհանուր սեգմենտավորված HTTP է: Տարբերությունն այն է, որ դրա հատվածները շատ փոքր են: Որպեսզի պահանջարկ ունենա HLS, բանալին է բաժանել մեդիա ֆայլերը: Ներկայումս կան բազմաթիվ բաց աղբյուրների գործիքներ, որոնք կարող են օգտագործվել: Ես դա այստեղ չեմ քննարկի, պարզապես խոսեք HLS- ի ուղիղ հեռարձակման տեխնոլոգիայի մասին:
Համեմատված սովորական կենդանի հոսքային արձանագրությունների, ինչպիսիք են RTMP պրոտոկոլը, RTSP պրոտոկոլը, MMS պրոտոկոլը և այլն, HLS կենդանի հոսքի ամենամեծ տարբերությունն այն է, որ կենդանի հաճախորդը տվյալների ամբողջական հոսք չի ստանում: HLS պրոտոկոլը պահում է տվյալների կենդանի հոսքը որպես շարունակական, կարճաժամկետ և երկար մեդիա ֆայլեր (mpeg-ts ձևաչափ) սերվերի կողմից, մինչդեռ հաճախորդի կողմը անընդհատ ներբեռնում և նվագում է այդ փոքր ֆայլերը, քանի որ սերվերի կողմը միշտ նորից փոքր ֆայլեր է առաջացնում կենդանի վերջին տվյալները, որպեսզի հաճախորդը ուղիղ եթերն իրականացնելու համար անհրաժեշտ լինի միայն սերվերից ստացված ֆայլերը խաղալ: Տեսանելի է, որ HLS- ն իրականում իրականացնում է ուղիղ հեռարձակում VOD տեխնոլոգիայի միջոցով: Քանի որ տվյալները փոխանցվում են HTTP պրոտոկոլի միջոցով, կարիք չկա դիտարկել firewall- ի կամ վստահված անձի խնդիրը, և ֆայլերի բաժանման ժամանակը շատ կարճ է: Հաճախորդը կարող է արագ ընտրել և փոխել ծածկագրի մակարդակը `տարբեր թողունակության պայմաններում նվագարկմանը հարմարվելու համար: Այնուամենայնիվ, HLS– ի տեխնիկական բնութագրերի պատճառով դրա հետաձգումը միշտ ավելի բարձր է, քան սովորական կենդանի հոսքային արձանագրության հետաձգումը:
Վերոհիշյալ ըմբռնման համաձայն, HTTP- ի կենդանի հոսքին հասնելու համար անհրաժեշտ է ուսումնասիրել և իրականացնել հետևյալ հիմնական տեխնոլոգիաները:
(1) Հավաքեք տեսանյութի աղբյուրի և աուդիո աղբյուրի տվյալները
(2) Սկզբնական տվյալները ծածկագրված են H264- ի և ՇՊԱԿ-ի կողմից
(3) Տեսանյութերի և աուդիո տվյալները փաթեթավորված են որպես mpeg-ts փաթեթներ
(4) HLS սեգմենտացիայի առաջացման ռազմավարություն և m3u8 ինդեքս ֆայլ
2. HTTP տրանսպորտային արձանագրություն
Դրանց շարքում առաջին և երկրորդ կետերը նշվել են իմ նախորդ հոդվածում, և վերջին կետն այն է, որ մենք կարող ենք օգտագործել առկա HTTP սերվերը, ուստի երրորդ և չորրորդ կետերի իրականացումը առանցքային է:
(1) frameworkրագրի շրջանակը և իրականացումը
Վերոնշյալ վերլուծության միջոցով 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 ֆայլի վերնագիր, պետք է տեղադրվի առաջին տողում
Ext-x-media-հաջորդականության առաջին TS հատվածի # սերիական համարը
# Ext-x-targetduration յուրաքանչյուր TS հատվածի առավելագույն տևողությունը
# Արդյո՞ք ext-x-allow-cache- ը քեշի հնարավորություն է տալիս
Ext-x-endlist m3u8 ֆայլի վերջը
# Extinf հավելյալ տեղեկատվություն, պառակտման մասին տեղեկատվություն, ինչպիսիք են տևողությունը, թողունակությունը և այլն
|
Անակնկալ ստանալու համար մուտքագրեք էլ
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 -> Բուլղարիայի
ca.fmuser.org -> կատալաներեն
zh-CN.fmuser.org -> չինարեն (պարզեցված)
zh-TW.fmuser.org -> Chinese (Traditional)
hr.fmuser.org -> խորվաթերեն
cs.fmuser.org -> չեխերեն
da.fmuser.org -> դանիերեն
nl.fmuser.org -> Dutch
et.fmuser.org -> էստոնական
tl.fmuser.org -> ֆիլիպիներեն
fi.fmuser.org -> ֆիններեն
fr.fmuser.org -> French
gl.fmuser.org -> Գալիսիերեն
ka.fmuser.org -> վրացերեն
de.fmuser.org -> գերմաներեն
el.fmuser.org -> Հունական
ht.fmuser.org -> հաիթական կրեոլերեն
iw.fmuser.org -> եբրայերեն
hi.fmuser.org -> հինդի
hu.fmuser.org -> Հունգարիայի
is.fmuser.org -> իսլանդերեն
id.fmuser.org -> Ինդոնեզերեն
ga.fmuser.org -> իռլանդերեն
it.fmuser.org -> Italian
ja.fmuser.org -> ճապոներեն
ko.fmuser.org -> կորեերեն
lv.fmuser.org -> լատվիերեն
lt.fmuser.org -> Լիտվայի
mk.fmuser.org -> մակեդոներեն
ms.fmuser.org -> մալայերեն
mt.fmuser.org -> մալթերեն
no.fmuser.org -> Norwegian
fa.fmuser.org -> պարսկերեն
pl.fmuser.org -> լեհերեն
pt.fmuser.org -> Պորտուգալերեն
ro.fmuser.org -> Romanian
ru.fmuser.org -> ռուսերեն
sr.fmuser.org -> սերբերեն
sk.fmuser.org -> սլովակերեն
sl.fmuser.org -> Սլովեներեն
es.fmuser.org -> իսպաներեն
sw.fmuser.org -> սուահիլի
sv.fmuser.org -> Շվեդերեն
th.fmuser.org -> Թայերեն
tr.fmuser.org -> թուրք
uk.fmuser.org -> ուկրաիներեն
ur.fmuser.org -> Ուրդու
vi.fmuser.org -> Վիետնամերեն
cy.fmuser.org -> Ուելսերեն
yi.fmuser.org -> Հայերեն
FMUSER- ը անթերի փոխանցում է տեսանյութն ու աուդիոն ավելի հեշտ:
Կապ
Հասցե:
No.305 սենյակ HuiLan շենք No.273 Huanpu Road Guangzhou China 510620
Կատեգորիաներ
Տեղեկագիր