FMUSER brezžični prenos video in zvoka lažje!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanščina
sq.fmuser.org -> albanski
ar.fmuser.org -> arabščina
hy.fmuser.org -> Armenščina
az.fmuser.org -> azerbajdžanski
eu.fmuser.org -> baskovščina
be.fmuser.org -> belorusko
bg.fmuser.org -> bolgarščina
ca.fmuser.org -> katalonščina
zh-CN.fmuser.org -> kitajščina (poenostavljena)
zh-TW.fmuser.org -> kitajščina (tradicionalno)
hr.fmuser.org -> hrvaški
cs.fmuser.org -> češčina
da.fmuser.org -> danski
nl.fmuser.org -> nizozemščina
et.fmuser.org -> estonščina
tl.fmuser.org -> filipinsko
fi.fmuser.org -> finski
fr.fmuser.org -> francosko
gl.fmuser.org -> galicijščina
ka.fmuser.org -> gruzijski
de.fmuser.org -> nemščina
el.fmuser.org -> grščina
ht.fmuser.org -> haitijska kreolščina
iw.fmuser.org -> hebrejščina
hi.fmuser.org -> hindujščina
hu.fmuser.org -> madžarščina
is.fmuser.org -> islandski
id.fmuser.org -> indonezijski
ga.fmuser.org -> irski
it.fmuser.org -> italijanščina
ja.fmuser.org -> japonski
ko.fmuser.org -> korejski
lv.fmuser.org -> latvijski
lt.fmuser.org -> litovščina
mk.fmuser.org -> makedonščina
ms.fmuser.org -> malajščina
mt.fmuser.org -> malteščina
no.fmuser.org -> norveščina
fa.fmuser.org -> perzijski
pl.fmuser.org -> poljščina
pt.fmuser.org -> portugalščina
ro.fmuser.org -> romunščina
ru.fmuser.org -> ruščina
sr.fmuser.org -> srbščina
sk.fmuser.org -> slovaški
sl.fmuser.org -> slovenščina
es.fmuser.org -> španščina
sw.fmuser.org -> svahili
sv.fmuser.org -> švedščina
th.fmuser.org -> tajska
tr.fmuser.org -> turški
uk.fmuser.org -> ukrajinski
ur.fmuser.org -> urdujščina
vi.fmuser.org -> Vietnamščina
cy.fmuser.org -> valižanščina
yi.fmuser.org -> jidiš
HLS in Http Live Streaming sta protokola za pretakanje v realnem času, ki ga je določil Apple. HLS se izvaja na podlagi protokola HTTP. Vsebina prenosa vključuje dva dela, eden je opisna datoteka M3U8, drugi pa predstavnostna datoteka TS.
1. Datoteka M3U8
Predstavnostna datoteka je opisana v besedilu, ki je sestavljeno iz vrste oznak.
#EXTM3U
# EXT-X-CILJ TRAJANJA: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Prva vrstica vsake datoteke M3U8 mora biti ta oznaka.
# EXT-X-TARGETDURATION: Določite največjo dolžino časa segmenta medija (v sekundah). Čas, določen v #EXTINF, mora biti manjši ali enak tej največji vrednosti. Ta vrednost se lahko prikaže samo enkrat.
#EXTINF: Opišite dolžino posamezne predstavnostne datoteke. Sledijo predstavnostne datoteke, na primer ./0.ts
2. datoteka ts
Datoteka ts je datoteka transportnega toka, glavni format kodiranja videoposnetka je h264 / mpeg4, zvok pa je v skladu z MP3.
Datoteka ts je razdeljena na tri plasti: sloj ts Transport Stream, sloj pes Packet Elemental Stream, sloj ES Elementarni tok. Sloj es so avdio in video podatki, sloj pes pa informacije o opisu podatkovnega okvira, na primer časovni žig, dodan zvočnim in video podatkom. Sloj ts je dodati potrebne informacije za identifikacijo in prenos podatkovnega toka v sloju pes
Opomba: Podrobnosti so naslednje
(1) sloj ts Velikost paketa ts je določena na 188 bajtov, sloj ts pa je razdeljen na tri dele: glavo ts, prilagoditveno polje in koristni tovor. Glava ts je določena na 4 bajte; prilagoditveno polje lahko obstaja ali pa tudi ne, njegova glavna naloga pa je izpolniti podatke, manjše od 188 bajtov; koristni tovor je pes podatki.
glava ts
sync_byte 8b bajt za sinhronizacijo, določen na 0x47
transport_error_indicator 1b Indikator transportne napake, ki označuje, da po polju za prilagajanje glave ts obstaja neuporaben bajt, običajno 0, ta bajt se šteje v dolžino polja za prilagoditev
payload_unit_start_indicator 1b Kazalnik zagona nalaganja enote, ki je na začetku celotnega podatkovnega paketa označen z 1
transport_priority 1b Prednost prevoza, 0 ima nizko prednost, 1 je prednost, običajno 0
pid 13b vrednost pid
transport_scrambly_control 2b Nadzor nad premešavanjem prenosa, 00 pomeni nešifriran
adaptation_field_control 2b Ali je treba vključiti prilagoditveno polje, '00' je rezervirano; „01“ pomeni nobeno prilagoditveno polje, le koristni tovor; „10“ pomeni samo prilagoditveno polje, brez koristnega tovora; „11“ pomeni, da je vključena tudi prilagoditev Domena in koristni tovor.
continuity_counter 4b Povečanje števca, od 0-f, začetna vrednost ni nujno 0, vendar mora biti neprekinjena
Vsebina sloja ts je označena z vrednostjo PID, glavna vsebina pa vključuje: tabelo PAT, tabelo PMT, avdio tok in video tok. Če želite razčleniti tok ts, morate najprej poiskati tabelo PAT, dokler najdete PAT, najdete PMT, nato pa še tokove zvoka in videa. Vrednost PID tabele PAT je določena na 0. Tabelo PAT in tabelo PMT je treba redno vstavljati v tok ts, ker se lahko uporabnik kadar koli pridruži toku ts, ta interval je razmeroma majhen, običajno vsakih nekaj video okvirji za dodajanje PAT in PMT. Potrebni sta tabeli PAT in PMT, lahko pa se dodajo tudi druge tabele, kot je SDT (tabela z opisi storitev), lahko pa se predvaja hls tok, dokler obstajata PAT in PMT.
Tabela PAT: Njegova glavna funkcija je prikazati vrednost PID tabele PMT.
Tabela PMT: Njegova glavna naloga je določiti vrednost PID avdio in video toka.
Zvočni tok / video tok: prenašajte zvočne in video vsebine.
prilagoditev
adaptation_field_length 1B dolžina polja prilagoditve, število bajtov zadaj
zastavica 1B traja 0x50, da označuje PCR, ali 0x40, da PCR ne vključuje
Referenca programske ure PCR 5B, referenčna programska ura, ki se uporablja za obnovitev sistemske časovne ure STC (sistemska ura ure) v skladu z dajalnikom.
stuffing_bytes xB polnilni bajti, vrednost je 0xff
Dolžina prilagoditvenega območja vključuje en bajt, ki ga identificira indikator napake pri prenosu. pcr je referenca programske ure, pcr, dts, pts so vse vzorčene vrednosti iste sistemske ure, pcr je prirastek, zato ga lahko nastavimo kot vrednost dts, zvočni podatki ne potrebujejo pcr. Če ni polja, lahko ipad igra, vlc pa ne. Pri pakiranju toka ts tabeli PAT in PMT nimata prilagoditvenega polja. Če dolžina ni dovolj, samo izpolnite 0xff. Tako video kot avdio tok morata dodati prilagoditveno polje, ki se običajno doda prvemu paketu ts in zadnjemu paketu ts okvirja, srednji paket ts pa ne.
format PAT
table_id 8b Tabela PAT je določena na 0x00
section_syntax_indicator 1b je določen na 1
ničla 1b je določena na 0
rezervirano 2b je določeno na 11
section_length 12b Dolžina naslednjih podatkov
transport_stream_id 16b ID transportnega toka, določen kot 0x0001
rezervirano 2b je določeno na 11
version_number 5b Številka različice, določena na 00000, če se PAT spremeni, se številka različice poveča za 1
current_next_indicator 1b je pritrjen na 1, kar pomeni, da je mogoče uporabiti to tabelo PAT, če je 0, počakajte na naslednjo tabelo PAT
section_number 8b je določen na 0x00
last_section_number 8b je določen na 0x00
Začetna zanka
program_number 16b Ko je številka programa 0x0000, pomeni, da je to NIT, če je številka programa 0x0001, to pomeni, da je PMT
rezervirano 3b je določeno na 111
PID 13b Vrednost PID, ki ustreza vsebini številke programa
Končna zanka
CRC32 32b CRC32 kontrolna koda prejšnjih podatkov
Format PMT
table_id 8b Tabela PMT ima katero koli vrednost, 0x02
section_syntax_indicator 1b je določen na 1
ničla 1b je določena na 0
rezervirano 2b je določeno na 11
section_length 12b Dolžina naslednjih podatkov
program_number 16b številka kanala, kar pomeni, da je kanal, povezan s trenutnim PMT, vrednost 0x0001
rezervirano 2b je določeno na 11
version_number 5b Številka različice, določena na 00000, če se PAT spremeni, se številka različice poveča za 1
current_next_indicator 1b je določen na 1
section_number 8b je določen na 0x00
last_section_number 8b je določen na 0x00
rezervirano 3b je določeno na 111
PCR_PID 13b PID paketa TS, v katerem je PCR (programska referenčna ura), označen kot video PID
rezervirano 4b je določeno na 1111
program_info_length 12b Informacije o opisu programa, označene kot 0x000, pomenijo št
Začetna zanka
stream_type 8b Vrsta toka, oznaka je Video ali Audio ali drugi podatki, kodiranje h.264 ustreza 0x1b, kodiranje aac ustreza 0x0f, kodiranje mp3 ustreza 0x03
rezervirano 3b je določeno na 111
basic_PID 13b PID, ki ustreza vrsti_toka
rezervirano 4b je določeno na 1111
ES_info_length 12b Podatki o opisu, označeni kot 0x000, pomenijo št
Končna zanka
CRC32 32b CRC32 kontrolna koda prejšnjih podatkov
(2) sloj pes
Sloj pes doda časovni žig in druge informacije vsakemu video / zvočnemu okviru. Paket pes vsebuje veliko vsebine, mi pa pustimo le najpogosteje uporabljene.
začetna koda pes 3B začetna koda, določena na 0x000001
tok id 1B zvočna vrednost (0xc0-0xdf), običajno 0xc0
Vrednost videa (0xe0-0xef), običajno 0xe0
dolžina paketa pes 2B Dolžina podatkov pes pes zadaj, 0 pomeni neomejeno dolžino,
Dolžina samo video podatkov bo presegla 0xffff
Oznaka 1B ima običajno vrednost 0x80, kar pomeni, da podatki niso šifrirani, nimajo prednosti in so varnostno kopirani.
Vrednost zastavice 1B 0x80 pomeni samo točke, vrednost 0xc0 pomeni točke in točke
dolžina podatkov pes 1B Dolžina naslednjih podatkov je vrednost 5 ali 10
pts 5B 33-bitna vrednost
dts 5B 33-bitna vrednost
pts je časovni žig zaslona, dts pa časovni žig dekodiranja. Oba časovna žiga sta potrebna za video podatke. Pts in dts zvočnih podatkov sta enaka, zato so potrebni samo pts. Obstajata dva časovna žiga, pts in dts, ki sta posledica B okvirjev. Pts okvirjev I in P sta enaka dts. Če videoposnetek nima B sličic, bodo točke vedno enake kot dts. Video datoteke preberite zaporedno iz datoteke in zaporedje izvlečenih okvirjev je enako kot zaporedje dts. Algoritem dts je razmeroma preprost, zadostna je začetna vrednost + prirastek, izračun točk je bolj zapleten in dts je treba dodati odmik.
V zvočni pes so samo pts (enako kot dts), I in P okvirja video posnetka morata imeti oba časovna žiga, video B okvir pa potrebuje samo pts (enako kot dts). Če želite spakirati pts in dts, morate poznati vrsto video okvirja, vendar vrste okvira ne moremo oceniti po obliki vsebnika. Če želite pridobiti vrsto okvirja, morate razčleniti vsebino h.264.
na primer:
IPBBBP
Vrstni red branja: 1 2 3 4 5 6
dts vrstni red: 1 2 3 4 5 6
število točk: 1 5 3 2 4 6
DTS algoritem za video na zahtevo:
dts = začetna vrednost + 90000 / video_frame_rate, lahko začetno vrednost poljubno podate, vendar je najbolje, da ne vzamete 0, video_frame_rate je hitrost sličic, na primer 23, 30.
pts in dts temeljijo na časovnem okviru, 1s = 90000 časovna lestvica, en okvir mora biti 90000 / video_frame_rate časovni okvir.
Delitev časovnega okvira enega okvirja s frekvenco vzorčenja lahko pretvorite v trajanje predvajanja enega sličice
Zvočni dts algoritem na zahtevo:
dts = začetna vrednost + (90000 * audio_samples_per_frame) / audio_sample_rate, vrednost audio_samples_per_frame je povezana s kodekom, vrednost aac je 1024, vrednost mp3 je 1158, audio_sample_rate je hitrost vzorčenja, na primer 24000, 41000. AAC dekodira okvir 1024 vzorcev na kanal, kar pomeni, da trajanje sličice znaša 1024 / sample_rate seconds. Torej je časovni žig vsakega okvira 0, 1024 / sample_rate, ..., 1024 * n / sample_rate seconds.
Dts in pts videoposnetka v živo bi morali neposredno uporabljati čas v podatkovnem toku v živo in se ne bi smeli izračunavati s formulami.
(3) sloj
Sloj es se nanaša na avdio in video podatke, uvajamo samo h.264 video in aac audio.
video h.264:
Če želimo zapakirati podatke h.264, moramo video podatkom dodati nalu (enota Layer Abstraction Network). Nalu vključuje glavo nalu in tip nalu. Glava nalu je fiksirana na 0x00000001 (začetek okvira) ali 0x000001 (v okvirju). Podatki h.264 so sestavljeni iz rezin, vsebina rezin pa vključuje: video, sps, pps itd. Tip nalu določa vsebino nadaljnjih podatkov h.264.
F 1b prohib_zero_bit, h.264 določa, da mora biti 0
NRI 2b nal_ref_idc, vrednost 0 ~ 3, označuje pomembnost tega nalu, I okvir, sps, pps običajno traja 3, P okvir običajno traja 2, B okvir pa običajno 0
Tip 5b se nanaša na spodnjo tabelo
opis nal_unit_type
0 ni uporabljeno
1 Slika, ki ni IDR, se IDR nanaša na okvir ključa
2-rezinska particija A
3-rezinska particija B
|
Vnesite e-pošto, da dobite presenečenje
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanščina
sq.fmuser.org -> albanski
ar.fmuser.org -> arabščina
hy.fmuser.org -> Armenščina
az.fmuser.org -> azerbajdžanski
eu.fmuser.org -> baskovščina
be.fmuser.org -> belorusko
bg.fmuser.org -> bolgarščina
ca.fmuser.org -> katalonščina
zh-CN.fmuser.org -> kitajščina (poenostavljena)
zh-TW.fmuser.org -> kitajščina (tradicionalno)
hr.fmuser.org -> hrvaški
cs.fmuser.org -> češčina
da.fmuser.org -> danski
nl.fmuser.org -> nizozemščina
et.fmuser.org -> estonščina
tl.fmuser.org -> filipinsko
fi.fmuser.org -> finski
fr.fmuser.org -> francosko
gl.fmuser.org -> galicijščina
ka.fmuser.org -> gruzijski
de.fmuser.org -> nemščina
el.fmuser.org -> grščina
ht.fmuser.org -> haitijska kreolščina
iw.fmuser.org -> hebrejščina
hi.fmuser.org -> hindujščina
hu.fmuser.org -> madžarščina
is.fmuser.org -> islandski
id.fmuser.org -> indonezijski
ga.fmuser.org -> irski
it.fmuser.org -> italijanščina
ja.fmuser.org -> japonski
ko.fmuser.org -> korejski
lv.fmuser.org -> latvijski
lt.fmuser.org -> litovščina
mk.fmuser.org -> makedonščina
ms.fmuser.org -> malajščina
mt.fmuser.org -> malteščina
no.fmuser.org -> norveščina
fa.fmuser.org -> perzijski
pl.fmuser.org -> poljščina
pt.fmuser.org -> portugalščina
ro.fmuser.org -> romunščina
ru.fmuser.org -> ruščina
sr.fmuser.org -> srbščina
sk.fmuser.org -> slovaški
sl.fmuser.org -> slovenščina
es.fmuser.org -> španščina
sw.fmuser.org -> svahili
sv.fmuser.org -> švedščina
th.fmuser.org -> tajska
tr.fmuser.org -> turški
uk.fmuser.org -> ukrajinski
ur.fmuser.org -> urdujščina
vi.fmuser.org -> Vietnamščina
cy.fmuser.org -> valižanščina
yi.fmuser.org -> jidiš
FMUSER brezžični prenos video in zvoka lažje!
Kontakt
naslov:
No.305 Soba HuiLan stavba št.273 Huanpu Road Guangzhou Kitajska 510620
Kategorije
Novice