FMUSER Wirless edastab videot ja heli lihtsamalt!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albaania keel
ar.fmuser.org -> araabia
hy.fmuser.org -> Armeenia
az.fmuser.org -> aserbaidžaanlane
eu.fmuser.org -> baski keel
be.fmuser.org -> valgevenelane
bg.fmuser.org -> Bulgaaria
ca.fmuser.org -> katalaani keel
zh-CN.fmuser.org -> hiina (lihtsustatud)
zh-TW.fmuser.org -> Hiina (traditsiooniline)
hr.fmuser.org -> horvaadi keel
cs.fmuser.org -> tšehhi
da.fmuser.org -> taani keel
nl.fmuser.org -> Hollandi
et.fmuser.org -> eesti keel
tl.fmuser.org -> filipiinlane
fi.fmuser.org -> soome keel
fr.fmuser.org -> Prantsusmaa
gl.fmuser.org -> galicia keel
ka.fmuser.org -> gruusia keel
de.fmuser.org -> saksa keel
el.fmuser.org -> Kreeka
ht.fmuser.org -> Haiti kreool
iw.fmuser.org -> heebrea
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungari
is.fmuser.org -> islandi keel
id.fmuser.org -> indoneesia keel
ga.fmuser.org -> iiri keel
it.fmuser.org -> Itaalia
ja.fmuser.org -> jaapani keel
ko.fmuser.org -> korea
lv.fmuser.org -> läti keel
lt.fmuser.org -> Leedu
mk.fmuser.org -> makedoonia
ms.fmuser.org -> malai
mt.fmuser.org -> malta keel
no.fmuser.org -> Norra
fa.fmuser.org -> pärsia keel
pl.fmuser.org -> poola keel
pt.fmuser.org -> portugali keel
ro.fmuser.org -> Rumeenia
ru.fmuser.org -> vene keel
sr.fmuser.org -> serbia
sk.fmuser.org -> slovaki keel
sl.fmuser.org -> Sloveenia
es.fmuser.org -> hispaania keel
sw.fmuser.org -> suahiili keel
sv.fmuser.org -> rootsi keel
th.fmuser.org -> Tai
tr.fmuser.org -> türgi keel
uk.fmuser.org -> ukrainlane
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kõmri keel
yi.fmuser.org -> Jidiši
HLS ja Http Live Streaming on Apple'i määratletud reaalajas voogesituse protokollid. HLS rakendatakse HTTP-protokolli põhjal. Edastuse sisu sisaldab kahte osa, millest üks on kirjeldusfail M3U8 ja teine on TS meediumifail.
1. M3U8 fail
Meediumifaili kirjeldatakse tekstis, mis koosneb siltide seeriast.
#EXTM3U
# EXT-X-SIHTKESTUS: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: iga M3U8-faili esimene rida peab olema see silt.
# EXT-X-TARGETDURATION: määrake meediumisegmendi maksimaalne aja pikkus (sekundites). #EXTINF-is määratud aja pikkus peab olema selle maksimaalse väärtuse väärtusest väiksem või sellega võrdne. Seda väärtust saab kuvada ainult üks kord.
#EXTINF: kirjeldage ühe meediumifaili pikkust. Järgnevad meediumifailid, näiteks ./0.ts
2. ts fail
Ts-fail on transpordivoogude fail, peamine video kodeerimisvorming on h264 / mpeg4 ja heli on acc / MP3.
Ts-fail on jagatud kolmeks kihiks: ts-kihi transpordivoog, pes-kiht pakett-elementaarset voogu, es-kiht elementaarset voogu. Es-kiht on heli- ja videoandmed ning pes-kiht on andmeraami kirjeldusteave, näiteks heli- ja videoandmetele lisatud ajatempel. Ts-kiht peab lisama vajaliku teabe andmevoo tuvastamiseks ja edastamiseks pes-kihis
Märkus: üksikasjad on järgmised
(1) ts kiht Ts paketi suurus on fikseeritud 188 baiti ja ts kiht on jagatud kolmeks osaks: ts päis, kohanemisväli ja kasulik koormus. Ts päis on fikseeritud 4 baiti; kohanemisväli võib olla olemas või mitte ning selle peamine ülesanne on täita vähem kui 188 baiti andmeid; kasulik koormus on pes andmete.
ts päis
sync_byte 8b sünkroonimisbait, fikseeritud väärtusega 0x47
transport_error_indicator 1b Transpordi tõrke indikaator, mis näitab, et ts-päise adaptivälja järel on kasutu bait, tavaliselt 0, see bait arvestatakse adaptivälja pikkusesse
payload_unit_start_indicator 1b Laadimisüksuse alustamise indikaator, mis on täieliku andmepaketi alguses tähistatud kui 1
transport_priority 1b Transpordi prioriteet, 0 on madal prioriteet, 1 on kõrge prioriteet, tavaliselt 0
pid 13b pid väärtus
transport_scrambling_control 2b Transpordi skrambleerimise kontroll, 00 tähendab krüptimata
adaptation_field_control 2b Kas kohandamisväli lisada, on '00' reserveeritud; „01” tähendab kohanemisvälja puudumist, ainult kasulikku koormust; „10” tähendab ainult kohanemisvälja, ilma kasuliku koormuseta; "11" tähendab, et mugandus sisaldab ka domeeni ja kasulikku koormust.
järjepidevuse loendur 4b Kasvav loendur väärtusest 0-f, algväärtus ei pea tingimata olema 0, kuid see peab olema pidev
Ts-kihi sisu tuvastatakse PID-väärtuse järgi ja põhisisu sisaldab: PAT-tabelit, PMT-tabelit, helivoogu ja videovoogu. Ts-voo sõelumiseks peate kõigepealt leidma PAT-tabeli, kui leiate PAT-i, võite leida PMT-i ning seejärel leiate heli- ja videovood. PAT-tabeli PID-väärtus on fikseeritud väärtusele 0. PAT-tabel ja PMT-tabel tuleb ts-voogu sisestada regulaarselt, kuna kasutaja võib ts-vooga liituda igal ajal, see intervall on suhteliselt väike, tavaliselt iga paari tagant videoraamid PAT ja PMT lisamiseks. PAT- ja PMT-tabelid on vajalikud ning lisada saab ka muid tabeleid, näiteks SDT (teenuse kirjelduse tabel), kuid hls-voogu saab mängida seni, kuni on olemas PAT ja PMT.
PAT-tabel: selle peamine ülesanne on näidata PMT-tabeli PID-väärtust.
PMT-tabel: selle peamine ülesanne on määrata heli- ja videovoo PID-väärtus.
Helivoog / videovoog: heli- ja videosisu kandmine.
kohanemine
adaptation_field_length 1B kohandamisvälja pikkus, baitide arv taga
Lipp 1B võtab PCR-i tähistamiseks 0x50 või PCR-i mittekuulumiseks 0x40
PCR 5B programmikella viide, programmi kella viide, mida kasutatakse kooderi kohase süsteemi ajakella STC (System Time Clock) taastamiseks.
stuffing_bytes xB täidise baidid, väärtus on 0xff
Kohandamisala pikkus peab sisaldama ühte baiti, mille tuvastab edastusvea indikaator. pcr on programmi kella viide, pcr, dts, pts on kõik sama süsteemikella valimi väärtused, pcr on inkrementaalne, nii et selle saab määrata dts-väärtuseks, heliandmed ei vaja pcr-i. Kui välja pole, saab ipad mängida, kuid vlc ei saa. Ts voo pakkimisel pole PAT ja PMT tabelitel kohanemisvälja. Kui pikkusest ei piisa, täitke lihtsalt 0xff. Nii videovoog kui ka helivoog peavad lisama kohandamisvälja, mis lisatakse tavaliselt kaadri esimesele ts ja viimasele ts paketile ning keskmist ts paketti ei lisata.
PAT-vorming
table_id 8b PAT-tabeli fikseeritud väärtus on 0x00
section_syntax_indicator 1b on fikseeritud väärtusega 1
null 1b on fikseeritud 0-ga
reserveeritud 2b on fikseeritud 11-le
section_length 12b Järgmiste andmete pikkus
transport_stream_id 16b Transpordivoo ID, fikseeritud kui 0x0001
reserveeritud 2b on fikseeritud 11-le
version_number 5b Versiooninumber, fikseeritud 00000, kui PAT muutub, suureneb versiooninumber 1 võrra
current_next_indicator 1b on fikseeritud väärtusega 1, mis näitab, et seda PAT-tabelit saab kasutada, kui see on 0, oodake järgmist PAT-tabelit
section_number 8b on fikseeritud väärtusega 0x00
last_section_number 8b on fikseeritud väärtusele 0x00
Algusring
program_number 16b Kui programmi number on 0x0000, tähendab see, et see on NIT, kui programmi number on 0x0001, see tähendab, et see on PMT
reserveeritud 3b on fikseeritud 111-le
PID 13b PID väärtus, mis vastab programmi numbri sisule
Lõpu silmus
CRC32 32b Varasemate andmete kontrollkood CRC32
PMT-vorming
table_id 8b PMT tabelil on suvaline väärtus 0x02
section_syntax_indicator 1b on fikseeritud väärtusega 1
null 1b on fikseeritud 0-ga
reserveeritud 2b on fikseeritud 11-le
section_length 12b Järgmiste andmete pikkus
programmnumber 16b kanalinumber, mis tähendab praeguse PMT-ga seotud kanalit, väärtus on 0x0001
reserveeritud 2b on fikseeritud 11-le
version_number 5b Versiooninumber, fikseeritud 00000, kui PAT muutub, suureneb versiooninumber 1 võrra
current_next_indicator 1b on fikseeritud väärtusega 1
section_number 8b on fikseeritud väärtusega 0x00
last_section_number 8b on fikseeritud väärtusele 0x00
reserveeritud 3b on fikseeritud 111-le
PCR_PID 13b TS-paketi PID, kus asub PCR (programmi referentskell), tähistatud kui video PID
reserveeritud 4b on fikseeritud 1111-le
program_info_length 12b Programmi kirjelduse teave tähisega 0x000 tähendab nr
Algusring
stream_type 8b Voo tüüp, märk on Video või Audio või muud andmed, h.264 kodeering vastab 0x1b, aac kodeering vastab 0x0f, mp3 kodeering vastab 0x03
reserveeritud 3b on fikseeritud 111-le
element_PID 13b PID, mis vastab voo tüübile
reserveeritud 4b on fikseeritud 1111-le
ES_info_length 12b Kirjeldusteave, tähistatud kui 0x000, tähendab nr
Lõpu silmus
CRC32 32b Varasemate andmete kontrollkood CRC32
(2) pes kiht
Pes kiht lisab igale video- / heliraamile ajatempli ja muu teabe. Pakett pes sisaldab palju sisu ja me jätame ainult kõige sagedamini kasutatavad.
pesa stardikood 3B stardikood, fikseeritud väärtusega 0x000001
voo ID 1B heliväärtus (0xc0-0xdf), tavaliselt 0xc0
Video väärtus (0xe0-0xef), tavaliselt 0xe0
pesa paketi pikkus 2B taga olevate pesa andmete pikkus 0 tähendab piiramatut pikkust,
Ainult videoandmete pikkus ületab 0xffff
Lipp 1B võtab tavaliselt väärtuse 0x80, mis tähendab, et andmed pole krüpteeritud, neil pole prioriteeti ja varundatakse andmeid
Lipu 1B väärtus 0x80 tähendab ainult punkti, väärtus 0xc0 tähendab punkti ja dts
pesa andmete pikkus 1B Järgmiste andmete pikkus, väärtus on 5 või 10
p 5B 33bit väärtus
dts 5B 33bit väärtus
pts on kuva ajatempel ja dts dekodeerimise ajatempel. Mõlemad ajatemplid on videoandmete jaoks vajalikud. Heliandmete punktid ja punktid on samad, seega on vaja ainult punkte. Seal on kaks ajatemplit, pt ja dts, mille põhjustavad B-kaadrid. I ja P kaadri punktid on võrdsed dts-iga. Kui videol pole B-kaadreid, on punktid alati samad kui dts-id. Loe videokaadreid järjest failist ja eraldatud kaadrite järjestus on sama mis dts jada. Dts-i algoritm on suhteliselt lihtne, piisab algväärtusest + juurdekasvust, pt-de arvutamine on keerulisem ja nihked tuleb lisada dts-i.
Helipesades on ainult pt-d (sama mis dts), video I- ja P-kaadritel peavad olema mõlemad ajatemplid ning video B-kaadril on vaja ainult pt (sama mis dts). Punktide ja dtside pakkimiseks peate teadma videokaadri tüüpi, kuid me ei saa kaadri tüüpi hinnata konteinervormingu kaudu. Raami tüübi saamiseks peate sõeluma h.264 sisu.
näiteks:
IPBBBP
Lugemisjärjestus: 1 2 3 4 5 6
dts järjekord: 1 2 3 4 5 6
punktide järjekord: 1 5 3 2 4 6
Tellitav video dts algoritm:
dts = algväärtus + 90000 / video_frame_rate, algväärtuse saab meelevaldselt määrata, kuid kõige parem on mitte võtta 0, video_frame_rate on kaadrisagedus, näiteks 23, 30.
punktid ja dts põhinevad ajaskaalal, 1s = 90000 ajaskaala, üks kaader peaks olema 90000 / video_frame_rate ajaskaala.
Ühe kaadri ajaskaala jagamine diskreetimissagedusega saab teisendada ühe kaadri taasesituse kestvuseks
Tellitav heli dts algoritm:
dts = algväärtus + (90000 * audio_näidised_raam) / audio_sample_rate, audio_samples_per_frame väärtus on seotud koodekiga, aac väärtus on 1024, mp3 väärtus on 1158, audio_sample_rate on diskreetimissagedus, näiteks 24000, 41000. AAC dekodeerib kaadri 1024 valimit kanali kohta, mis tähendab, et kaadri kestus on 1024 / näidisruut sekundit. Nii et iga kaadri ajatempel on 0, 1024 / näidise_arv, ..., 1024 * n / näidise_kiiruse sekundit.
Otsevideo punktid ja punktid peaksid otseselt kasutama reaalajas andmevoo aega ja neid ei tohiks arvutada valemite järgi.
(3) es kiht
Es-kiht viitab heli- ja videoandmetele, tutvustame ainult h.264 video- ja aac-heli.
h.264 video:
H.264 andmete pakkimiseks peame videoandmetele lisama nalu (Network Abstraction Layer unit). Nalu sisaldab nalu päist ja nalu tüüpi. Nalu päis on fikseeritud väärtusele 0x00000001 (kaadri algus) või 0x000001 (kaadrisse). H.264 andmed koosnevad viiludest ja viilude sisu sisaldab: video, sps, pps jne. Nalu tüüp määrab järgnevate h.264 andmete sisu.
F 1b keelatud_ null null, h.264 sätestab, et see peab olema 0
NRI 2b nal_ref_idc, väärtus 0 ~ 3, näitab selle nalu olulisust, I raam, sps, pps võtab tavaliselt 3, P kaader võtab tavaliselt 2 ja B kaader võtab tavaliselt 0
Tüüp 5b viitab allolevale tabelile
nal_unit_type kirjeldus
0 pole kasutatud
1 Mitte-IDR-pilt, IDR viitab võtmeraamile
2 viilu partitsioon A
3 viilu partitsioon B
|
Üllatuse saamiseks sisestage e-posti aadress
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albaania keel
ar.fmuser.org -> araabia
hy.fmuser.org -> Armeenia
az.fmuser.org -> aserbaidžaanlane
eu.fmuser.org -> baski keel
be.fmuser.org -> valgevenelane
bg.fmuser.org -> Bulgaaria
ca.fmuser.org -> katalaani keel
zh-CN.fmuser.org -> hiina (lihtsustatud)
zh-TW.fmuser.org -> Hiina (traditsiooniline)
hr.fmuser.org -> horvaadi keel
cs.fmuser.org -> tšehhi
da.fmuser.org -> taani keel
nl.fmuser.org -> Hollandi
et.fmuser.org -> eesti keel
tl.fmuser.org -> filipiinlane
fi.fmuser.org -> soome keel
fr.fmuser.org -> Prantsusmaa
gl.fmuser.org -> galicia keel
ka.fmuser.org -> gruusia keel
de.fmuser.org -> saksa keel
el.fmuser.org -> Kreeka
ht.fmuser.org -> Haiti kreool
iw.fmuser.org -> heebrea
hi.fmuser.org -> hindi
hu.fmuser.org -> Ungari
is.fmuser.org -> islandi keel
id.fmuser.org -> indoneesia keel
ga.fmuser.org -> iiri keel
it.fmuser.org -> Itaalia
ja.fmuser.org -> jaapani keel
ko.fmuser.org -> korea
lv.fmuser.org -> läti keel
lt.fmuser.org -> Leedu
mk.fmuser.org -> makedoonia
ms.fmuser.org -> malai
mt.fmuser.org -> malta keel
no.fmuser.org -> Norra
fa.fmuser.org -> pärsia keel
pl.fmuser.org -> poola keel
pt.fmuser.org -> portugali keel
ro.fmuser.org -> Rumeenia
ru.fmuser.org -> vene keel
sr.fmuser.org -> serbia
sk.fmuser.org -> slovaki keel
sl.fmuser.org -> Sloveenia
es.fmuser.org -> hispaania keel
sw.fmuser.org -> suahiili keel
sv.fmuser.org -> rootsi keel
th.fmuser.org -> Tai
tr.fmuser.org -> türgi keel
uk.fmuser.org -> ukrainlane
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kõmri keel
yi.fmuser.org -> Jidiši
FMUSER Wirless edastab videot ja heli lihtsamalt!
Saada sõnum
Aadress:
Nr 305 tuba HuiLan Building No.273 Huanpu Road Guangzhou, Hiina 510620
Kategooriad
Uudiskiri