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 -> Հայերեն
HLS- ը և Http Live Streaming- ը Apple- ի կողմից սահմանված իրական ժամանակում հոսքի արձանագրություններ են: HLS- ն իրականացվում է HTTP արձանագրության հիման վրա: Փոխանցման պարունակությունը ներառում է երկու մաս, մեկը M3U8 նկարագրության ֆայլն է, իսկ մյուսը ՝ TS մեդիա ֆայլը:
1. M3U8 ֆայլ
Մեդիա ֆայլը նկարագրված է տեքստով, որը բաղկացած է մի շարք պիտակներից:
#EXTM3U
# EXT-X- ՆՊԱՏԱԿԸ ՝ 5
#EXTINF ՝ 5,
./0.ց
#EXTINF ՝ 5,
./1.ց
# EXTM3U. Յուրաքանչյուր M3U8 ֆայլի առաջին տողը պետք է լինի այս պիտակը:
# EXT-X-TARGETDURATION. Նշեք մեդիայի հատվածի առավելագույն ժամանակահատվածի տևողությունը (վայրկյաններ): #EXTINF- ում նշված ժամանակի տևողությունը պետք է լինի այս առավելագույն արժեքից փոքր կամ հավասար: Այս արժեքը կարող է հայտնվել միայն մեկ անգամ:
#EXTINF. Նկարագրեք մեկ մեդիա ֆայլի երկարությունը: Հետևում են մեդիա ֆայլերը, օրինակ ./0.ts
2. ts ֆայլ
Ts ֆայլը տրանսպորտային հոսքի ֆայլ է, տեսանյութերի կոդավորման հիմնական ձևաչափը h264 / mpeg4 է, իսկ աուդիոն ՝ acc / MP3:
Ts ֆայլը բաժանված է երեք շերտերի. Ts շերտ Transport Stream, pes շերտ Packet Elemental Stream, es շերտ Elementary Stream. Es շերտը աուդիո և վիդեո տվյալներն են, իսկ pes շերտը տվյալների շրջանակի նկարագրության տեղեկատվությունն է, ինչպիսին է աուդիո և վիդեո տվյալներին ավելացված ժամանակագրական նշանը: Ts շերտը պետք է ավելացնել անհրաժեշտ տեղեկատվությունը pes շերտում տվյալների հոսքի նույնականացման և փոխանցման համար
Նշում. Մանրամասները հետևյալն են
(1) ts շերտ Ts փաթեթի չափը ամրագրված է 188 բայթ, իսկ ts շերտը բաժանված է երեք մասի ՝ ts վերնագիր, հարմարվողականության դաշտ և բեռ: Ts վերնագիրն ամրագրված է 4 բայթով; հարմարվողականության դաշտը կարող է գոյություն ունենալ կամ գոյություն չունենալ, և դրա հիմնական գործառույթը 188 բայթից պակաս տվյալների լրացումն է. բեռը pes տվյալներն են:
ts վերնագիր
sync_byte 8b համաժամացման բայթ, 0x47 ֆիքսված
transport_error_indicator 1b Տրանսպորտային սխալի ցուցիչ, նշելով, որ ts վերնագրի հարմարվող դաշտից հետո կա անօգուտ բայթ, սովորաբար 0, այս բայթը հաշվարկվում է հարմարվող դաշտի երկարության մեջ
payload_unit_start_indicator 1b Բեռի միավորի մեկնարկի ցուցիչը, որը տվյալների ամբողջական փաթեթի սկզբում նշվում է որպես 1
transport_priority 1b Տրանսպորտային առաջնահերթություն, 0-ը ցածր առաջնահերթություն է, 1-ը ՝ բարձր առաջնահերթություն, սովորաբար ՝ 0
pid 13b pid արժեք
transport_scrambling_control 2b Տրանսպորտային մագլցման հսկողություն, 00 նշանակում է չսոդագրված
adaptation_field_control 2b Արդյո՞ք ներառելու են ադապտացման դաշտը, «00» -ը վերապահված է. «01» նշանակում է ոչ մի հարմարվողական դաշտ, այլ միայն բեռ: «10» նշանակում է միայն հարմարեցման դաշտ ՝ առանց բեռի բեռի. «11» նշանակում է, որ հարմարվողականությունը ներառված է նաև Դոմեն և բեռ:
շարունակականություն_հաշվիչ 4b Հաշվիչի մեծացում ՝ 0-f- ից, սկզբնական արժեքը պարտադիր չէ, որ վերցնի 0, բայց այն պետք է լինի շարունակական
Ts շերտի պարունակությունը որոշվում է PID արժեքով, իսկ հիմնական բովանդակությունը ներառում է ՝ PAT աղյուսակ, PMT աղյուսակ, աուդիո հոսք և վիդեո հոսք: Ts հոսքը վերլուծելու համար նախ պետք է գտնեք PAT աղյուսակը, քանի դեռ գտնում եք PAT, կարող եք գտնել PMT, ապա կարող եք գտնել աուդիո և վիդեո հոսքերը: PAT աղյուսակի PID արժեքը ֆիքսված է 0. XNUMX. PAT աղյուսակը և PMT աղյուսակը պետք է պարբերաբար տեղադրվեն ts հոսքի մեջ, քանի որ օգտվողը ցանկացած պահի կարող է միանալ ts հոսքին, այս միջակայքը համեմատաբար փոքր է, սովորաբար ամեն մի քանիսը տեսանյութերի շրջանակներ ՝ PAT և PMT ավելացնելու համար: PAT և PMT աղյուսակները անհրաժեշտ են, և այլ սեղաններ, ինչպիսիք են SDT (ծառայության նկարագրության աղյուսակ), նույնպես կարող են ավելացվել, բայց hls հոսքը կարող է խաղարկվել այնքան ժամանակ, քանի դեռ կան PAT և PMT:
PAT աղյուսակ. Դրա հիմնական գործառույթն է ցույց տալ PMT աղյուսակի PID արժեքը:
PMT աղյուսակ. Դրա հիմնական գործառույթն է նշել աուդիո և վիդեո հոսքի PID արժեքը:
Աուդիո հոսք / վիդեո հոսք. Կրեք աուդիո և վիդեո բովանդակություն:
հարմարեցում
adaptation_field_length 1B հարմարեցման դաշտի երկարությունը, հետևյալ բայթերի քանակը
flag 1B- ն տանում է 0x50 նշելու PCR- ը կամ 0x40- ը `PCR- ն չներառելու համար
PCR 5B Program Clock Reference, ծրագրի ժամացույցի տեղեկանք, որն օգտագործվում է համակարգի ժամանակային ժամացույցը STC (System Time Clock) վերականգնելու համար, որը համապատասխանում է ծածկագրիչին:
stuffing_bytes xB լցոնման բայթ, արժեքը 0xff է
Հարմարեցման տարածքի երկարությունը պետք է ներառի փոխանցման սխալի ցուցիչով որոշված մեկ բայթ: pcr- ը ծրագրի ժամացույցի տեղեկանքն է, pcr, dts, pts բոլորն էլ նույն համակարգի ժամացույցի նմուշառված արժեքներն են, pcr- ը ավելանում է, ուստի այն կարող է դրվել որպես dts արժեք, աուդիո տվյալները pcr կարիք չունեն: Եթե դաշտ չկա, ipad- ը կարող է խաղալ, բայց vlc- ն չի կարող խաղալ: Ts հոսքը փաթեթավորելիս PAT և PMT աղյուսակները չունեն հարմարեցման դաշտ: Եթե երկարությունը բավարար չէ, պարզապես լրացրեք 0xff: Եվ վիդեո հոսքը, և աուդիո հոսքը պետք է ավելացնեն հարմարվողականության դաշտ, որը սովորաբար ավելացվում է առաջին ts փաթեթին և շրջանակի վերջին ts փաթեթին, իսկ միջին ts փաթեթը չի ավելացվում:
PAT ձևաչափ
table_id 8b PAT աղյուսակը ամրագրված է 0x00
section_syntax_indicator 1 բ-ն ամրագրված է 1-ի վրա
զրոյական 1 բ-ն ամրագրված է 0-ի վրա
վերապահված 2b- ն ամրագրված է 11-ի վրա
section_length 12b Հետևյալ տվյալների երկարությունը
transport_stream_id 16b Տրանսպորտային հոսքի ID, ամրագրված ՝ 0x0001
վերապահված 2b- ն ամրագրված է 11-ի վրա
version_number 5b Տարբերակի համարը, ամրագրված է 00000, եթե PAT- ը փոխվի, տարբերակի համարը կավելանա 1-ով
current_next_indicator 1b- ը ամրագրված է 1-ի, նշելով, որ այս PAT աղյուսակը կարող է օգտագործվել, եթե այն 0 է, սպասեք հաջորդ PAT աղյուսակին
8_ կետը_բ թիվը ամրագրված է 0x00- ի վրա
last_section_number 8b- ը ամրագրված է 0x00- ի վրա
Սկսեք հանգույց
program_number 16b Երբ ծրագրի համարը 0x0000 է, նշանակում է սա NIT է, երբ ծրագրի համարը 0x0001 է, նշանակում է սա PMT է
վերապահված 3b- ն ամրագրված է 111-ի վրա
IDրագրի համարի բովանդակությանը համապատասխանող PID 13b PID արժեք
Վերջ հանգույց
Նախորդ տվյալների CRC32 32b CRC32 ստուգիչ կոդը
PMT ձևաչափ
table_id 8b PMT աղյուսակն ունի ցանկացած արժեք `0x02
section_syntax_indicator 1 բ-ն ամրագրված է 1-ի վրա
զրոյական 1 բ-ն ամրագրված է 0-ի վրա
վերապահված 2b- ն ամրագրված է 11-ի վրա
section_length 12b Հետևյալ տվյալների երկարությունը
program_number 16b ալիքի համարը, ինչը նշանակում է ընթացիկ PMT- ի հետ կապված ալիք, արժեքը 0x0001
վերապահված 2b- ն ամրագրված է 11-ի վրա
version_number 5b Տարբերակի համարը, ամրագրված է 00000, եթե PAT- ը փոխվի, տարբերակի համարը կավելանա 1-ով
current_next_indicator 1 բ-ն ամրագրված է 1-ի վրա
8_ կետը_բ թիվը ամրագրված է 0x00- ի վրա
last_section_number 8b- ը ամրագրված է 0x00- ի վրա
վերապահված 3b- ն ամրագրված է 111-ի վրա
PCR_PID 13b TS փաթեթի PID- ը, որտեղ գտնվում է PCR (ծրագրի տեղեկատու ժամացույցը), որը նշանակված է որպես տեսանյութ PID
վերապահված 4b- ն ամրագրված է 1111-ի վրա
program_info_length 12b descriptionրագրի նկարագրության վերաբերյալ տեղեկատվությունը, որը նշանակված է որպես 0x000, նշանակում է ոչ
Սկսեք հանգույց
stream_type 8b հոսքի տեսակը, նշանը ՝ Տեսանյութ կամ աուդիո կամ այլ տվյալներ, h.264 կոդավորումը համապատասխանում է 0x1b- ին, aac կոդավորումը համապատասխանում է 0x0f- ին, mp3 կոդավորումը ՝ 0x03
վերապահված 3b- ն ամրագրված է 111-ի վրա
element__PID 13b PID, որը համապատասխանում է stream_type- ին
վերապահված 4b- ն ամրագրված է 1111-ի վրա
ES_info_length 12b Նկարագրության վերաբերյալ տեղեկատվությունը, որը նշանակվել է որպես 0x000, նշանակում է ոչ
Վերջ հանգույց
Նախորդ տվյալների CRC32 32b CRC32 ստուգիչ կոդը
(2) pes շերտ
Pes շերտը յուրաքանչյուր վիդեո / աուդիո շրջանակին ավելացնում է ժամանակի դրոշմակնիք և այլ տեղեկություններ: Pes փաթեթը պարունակում է շատ բովանդակություն, և մենք թողնում ենք միայն ամենատարածված օգտագործվածները:
pes start code 3B start code, ամրագրված է 0x000001
հոսքի id 1B աուդիո արժեքը (0xc0-0xdf), սովորաբար 0xc0
Տեսանյութի արժեքը (0xe0-0xef), սովորաբար 0xe0
pes փաթեթի երկարություն 2B Հետևում pes տվյալների երկարությունը, 0 նշանակում է անսահմանափակ երկարություն,
Միայն տեսանյութի տվյալների երկարությունը կգերազանցի 0xffff- ը
1B դրոշը սովորաբար վերցնում է 0x80 արժեք, ինչը նշանակում է, որ տվյալները կոդավորված չեն, առաջնահերթություն չունեն և պահուստավորվում են տվյալներից
1x արժեքը 0x80 նշանակում է միայն միավորներ, 0xc0 արժեքը նշանակում է միավորներ և միավորներ
տվյալների տվյալների երկարություն 1B Հետևյալ տվյալների երկարությունը `արժեքը 5 կամ 10
միավոր 5B 33 բիթ արժեք
dts 5B 33 բիթ արժեք
pts- ը ցուցադրման ժամանակային դրոշմն է, իսկ dts- ը `ապակոդավորող ժամանակագրական դրոշմը: Տեսանյութերի տվյալների համար պահանջվում են երկու ժամկետային դրոշմները: Աուդիո տվյալների միավորներն ու միավորները նույնն են, ուստի անհրաժեշտ է միայն միավորներ: Գոյություն ունեն երկու timestamps, pts և dts, որոնք առաջանում են B շրջանակներով: I և P շրջանակների միավորները հավասար են dts- ին: Եթե տեսանյութը չունի B շրջանակ, միավորները միշտ նույնն են, ինչ dts- ն է: Ֆայլից հաջորդաբար կարդացեք տեսանյութերի շրջանակները, և արդյունահանվող շրջանակների հաջորդականությունը նույնն է, ինչ dts հաջորդականությունը: Dts ալգորիթմը համեմատաբար պարզ է, նախնական արժեքը + ավելացումը բավական է, pts հաշվարկն ավելի բարդ է, և օֆսեթը պետք է ավելացնել dts- ին:
Աուդիո pes- ում կան միայն միավորներ (նույնն է, ինչ dts), տեսանյութի I և P շրջանակները պետք է ունենան և ժամկետային դրոշմ, իսկ տեսանյութի B շրջանակի համար անհրաժեշտ են միայն միավորներ (նույնն են dts): Pts և dts փաթեթավորելու համար հարկավոր է իմանալ տեսանյութի շրջանակի տեսակը, բայց կոնտեյների ձևաչափով մենք չենք կարող գնահատել շրջանակի տեսակը: Շրջանակի տեսակը ստանալու համար պետք է վերլուծեք h.264 պարունակությունը:
Օրինակ `
IPBBBP
Ընթերցանության կարգը ՝ 1 2 3 4 5 6
dts կարգը. 1 2 3 4 5 6
pts կարգը `1 5 3 2 4 6
Ըստ պահանջի տեսանյութի dts ալգորիթմ.
dts = նախնական արժեքը + 90000 / video_frame_rate, սկզբնական արժեքը կարող է կամայականորեն նշված լինել, բայց լավագույնը 0-ն չլինելն է, video_frame_rate- ը կադրային արագություն է, ինչպես 23, 30:
pts- ը և dts- ը հիմնված են ժամանակային սանդղակի վրա, 1s = 90000 ժամանակային սանդղակ, մեկ շրջանակ պետք է լինի 90000 / video_frame_rate ժամանակային սանդղակ:
Մեկ շրջանակի ժամանակացույցը նմուշառման հաճախականությամբ բաժանելը կարող է փոխակերպվել մեկ շրջանակի նվագարկման տևողության
Ըստ պահանջի աուդիո dts ալգորիթմ.
dts = նախնական արժեքը + (90000 * աուդիո_ նմուշներ_շրջանակի համար) / աուդիո_մեկնարկի_գրաֆիկ, աուդիո_մեկների_համակարգի արժեքը կապված է կոդեկի հետ, aac- ի արժեքը `1024, mp3 արժեքը` 1158, audio_sample_rate- ը `նմուշառման արագություն, օրինակ` 24000, 41000: AAC- ը վերծանում է մի շրջանակի 1024 նմուշ մեկ ալիքի համար, ինչը նշանակում է, որ շրջանակի տևողությունը 1024 / նմուշ_գիտ վայրկյան է: Այսպիսով, յուրաքանչյուր շրջանակի ժամանականշանը 0, 1024 / sample_rate, ..., 1024 * n / sample_rate վայրկյան է:
Կենդանի տեսանյութի dts- ն և pts- ն ուղղակիորեն պետք է օգտագործեն ժամանակը կենդանի տվյալների հոսքում, և չպետք է հաշվարկվեն բանաձևերով:
(3) es շերտ
Es շերտը վերաբերում է աուդիո և վիդեո տվյալների, մենք ներմուծում ենք միայն h.264 տեսանյութ և aac աուդիո:
h.264 տեսանյութը.
H.264 տվյալները փաթեթավորելու համար մենք պետք է վիդեո տվյալներին ավելացնենք նալու (Abանցի աբստրակցիայի շերտի միավոր): Նալուն ներառում է նալուի վերնագիրն ու նալուի տեսակը: Nalu վերնագիրն ամրագրված է 0x00000001 (շրջանակի սկիզբ) կամ 0x000001 (շրջանակում): H.264- ի տվյալները կազմված են կտորներից, իսկ կտորների պարունակությունը ներառում է `տեսանյութ, SPS, pps և այլն: Nalu տիպը որոշում է հետագա h.264 տվյալների պարունակությունը:
F 1b արգելված_ զրո_բիթը, h.264- ը սահմանում է, որ այն պետք է լինի 0
NRI 2b nal_ref_idc, 0 ~ 3 արժեք, ցույց է տալիս այս նալուի կարևորությունը, I շրջանակը, SPS- ն, pps- ը սովորաբար տանում է 3, P շրջանակը սովորաբար տանում է 2, իսկ B շրջանակը սովորաբար տանում է 0
5b տիպը վերաբերում է ստորև բերված աղյուսակին
nal_unit_type նկարագրություն
0 չի օգտագործվել
1 Ոչ IDR պատկեր, IDR- ն վերաբերում է առանցքային շրջանակին
2 կտոր միջնորմ Ա
3 կտոր միջնորմ Բ
|
Անակնկալ ստանալու համար մուտքագրեք էլ
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
Կատեգորիաներ
Տեղեկագիր