FMUSER Wirless lähettää videota ja ääntä helpommin!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albania
ar.fmuser.org -> arabia
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaidžanilainen
eu.fmuser.org -> baski
be.fmuser.org -> valkovenäläinen
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> katalaani
zh-CN.fmuser.org -> kiina (yksinkertaistettu)
zh-TW.fmuser.org -> Kiina (perinteinen)
hr.fmuser.org -> kroatia
cs.fmuser.org -> tšekki
da.fmuser.org -> tanska
nl.fmuser.org -> Dutch
et.fmuser.org -> viro
tl.fmuser.org -> filippiiniläinen
fi.fmuser.org -> suomi
fr.fmuser.org -> French
gl.fmuser.org -> galicialainen
ka.fmuser.org -> Georgian
de.fmuser.org -> saksa
el.fmuser.org -> Greek
ht.fmuser.org -> Haitin kreoli
iw.fmuser.org -> heprea
hi.fmuser.org -> Hindi
hu.fmuser.org -> Unkari
is.fmuser.org -> islanti
id.fmuser.org -> indonesia
ga.fmuser.org -> irlantilainen
it.fmuser.org -> Italian
ja.fmuser.org -> japani
ko.fmuser.org -> korea
lv.fmuser.org -> latvia
lt.fmuser.org -> Liettua
mk.fmuser.org -> makedonia
ms.fmuser.org -> malaiji
mt.fmuser.org -> maltalainen
no.fmuser.org -> Norja
fa.fmuser.org -> persia
pl.fmuser.org -> puola
pt.fmuser.org -> portugali
ro.fmuser.org -> Romania
ru.fmuser.org -> venäjä
sr.fmuser.org -> serbia
sk.fmuser.org -> slovakki
sl.fmuser.org -> Slovenian
es.fmuser.org -> espanja
sw.fmuser.org -> swahili
sv.fmuser.org -> ruotsi
th.fmuser.org -> Thai
tr.fmuser.org -> turkki
uk.fmuser.org -> ukraina
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kymri
yi.fmuser.org -> Jiddiš
HLS ja Http Live Streaming ovat Applen määrittelemiä reaaliaikaisen suoratoiston protokollia. HLS toteutetaan HTTP-protokollan perusteella. Lähetyssisältö sisältää kaksi osaa, yksi on M3U8-kuvaustiedosto ja toinen on TS-mediatiedosto.
1. M3U8-tiedosto
Mediatiedosto kuvataan tekstissä, joka koostuu sarjasta tunnisteita.
#EXTM3U
# EXT-X-KOHTEEN KESTO: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Jokaisen M3U8-tiedoston ensimmäisen rivin on oltava tämä tagi.
# EXT-X-TARGETDURATION: Määritä mediasegmentin enimmäispituus (sekuntia). Kohdassa #EXTINF määritetyn ajan pituuden on oltava pienempi tai yhtä suuri kuin tämä enimmäisarvo. Tämä arvo voi näkyä vain kerran.
#EXTINF: Kuvaa yksittäisen mediatiedoston pituus. Seuraavat mediatiedostot, kuten ./0.ts
2. ts-tiedosto
TS-tiedosto on siirtovirta, päävideokoodauksen muoto on h264 / mpeg4 ja ääni on acc / MP3.
Ts-tiedosto on jaettu kolmeen kerrokseen: ts-kerroksen siirtovirta, pes-kerroksen pakettien elementtivirta, es-kerroksen alku-virta. Es-kerros on ääni- ja videodata, ja pes-kerros on datakehyksen kuvaustieto, kuten ääni- ja videodataan lisätty aikaleima. TS-kerroksen on lisättävä tarvittavat tiedot pes-kerroksen tietovirran tunnistamiseksi ja lähettämiseksi
Huomaa: Yksityiskohdat ovat seuraavat
(1) ts-kerros ts-pakettikoko on kiinteä 188 tavua, ja ts-kerros on jaettu kolmeen osaan: ts-otsikko, sopeutumiskenttä ja hyötykuorma. Ts-otsikko on kiinteä 4 tavua; sopeutumiskenttä voi olla tai ei olla, ja sen päätehtävänä on täyttää alle 188 tavua suuremmat tiedot; hyötykuorma on pes-tietoja.
ts otsikko
sync_byte 8b synkronointitavu, kiinteä 0x47
transport_error_indicator 1b Liikennevirheen ilmaisin, joka osoittaa, että ts-otsikon adapt-kentän jälkeen on hyödytön tavu, yleensä 0, tämä tavu lasketaan adapt-kentän pituudelle
payload_unit_start_indicator 1b Lataa yksikön aloitusilmaisin, joka on merkitty yhdellä koko datapaketin alussa
kuljetus_prioriteetti 1b Kuljetusprioriteetti, 0 on matala prioriteetti, 1 on korkea prioriteetti, yleensä 0
pid 13b pid -arvo
transport_scrambling_control 2b Kuljetuksen salausohjaus, 00 tarkoittaa salaamatonta
adaptation_field_control 2b Sisällytetäänkö mukautuskenttä, '00' on varattu; '01' ei tarkoita mukautuskenttää, vaan vain hyötykuormaa; '10' tarkoittaa vain mukautuskenttää, ei hyötykuormaa; '11' tarkoittaa, että mukautus sisältyy myös toimialueeseen ja hyötykuormaan.
continuity_counter 4b Laskurin nousu 0-f: stä alkaen lähtöarvo ei välttämättä vie 0, mutta sen on oltava jatkuva
Ts-kerroksen sisältö tunnistetaan PID-arvon perusteella, ja pääsisältö sisältää: PAT-taulukon, PMT-taulukon, äänivirran ja videovirran. Ts-virran jäsentämiseksi sinun on ensin löydettävä PAT-taulukko, kunhan löydät PAT: n, löydät PMT: n ja sitten ääni- ja videovirrat. PAT-taulukon PID-arvo on kiinteä 0. PAT-taulukko ja PMT-taulukko on lisättävä ts-virtaan säännöllisesti, koska käyttäjä voi liittyä ts-virtaan milloin tahansa, tämä väli on suhteellisen pieni, yleensä muutaman välein videokehykset PAT: n ja PMT: n lisäämiseksi. PAT- ja PMT-taulukot ovat välttämättömiä, ja muita taulukoita, kuten SDT (palvelukuvaustaulukko), voidaan myös lisätä, mutta hls-virtaa voidaan toistaa niin kauan kuin PAT ja PMT ovat.
PAT-taulukko: Sen päätehtävänä on osoittaa PMT-taulukon PID-arvo.
PMT-taulukko: Sen päätoiminto on määrittää ääni- ja videovirran PID-arvo.
Äänivirta / videovirta: Kanna ääni- ja videosisältöä.
mukautumista
adaptation_field_length 1B mukautuskentän pituus, tavujen lukumäärä takana
lippu 1B vie 0x50 osoittamaan PCR: ää tai 0x40 ei sisällä PCR: ää
PCR 5B Program Clock Reference, ohjelmakelloviite, jota käytetään kooderin mukaisen järjestelmän ajastuskellon STC (System Time Clock) palauttamiseen.
stuffing_bytes xB täytetavu, arvo on 0xff
Sopeutumisalueen pituuden on sisällettävä yksi tavu, joka on tunnistettu lähetysvirheen osoittimella. pcr on ohjelman kelloviite, pcr, dts, pts ovat kaikki saman järjestelmän kellon näytteitä, pcr on inkrementaalinen, joten se voidaan asettaa dts-arvoksi, äänidata ei tarvitse pcr: tä. Jos kenttää ei ole, ipad voi toistaa, mutta vlc ei voi toistaa. Ts-virtaa pakattaessa PAT- ja PMT-taulukoilla ei ole mukautuskenttää. Jos pituus ei riitä, täytä vain 0xff. Sekä videovirran että äänivirran on lisättävä mukautuskenttä, joka lisätään yleensä kehyksen ensimmäiseen ts-pakettiin ja viimeiseen ts-pakettiin, eikä keskimmäistä ts-pakettia lisätä.
PAT-muoto
table_id 8b PAT-taulukko on kiinteä 0x00
section_syntax_indicator 1b on kiinteä 1
nolla 1b on kiinteä 0
varattu 2b on kiinteä 11
section_length 12b Seuraavien tietojen pituus
transport_stream_id 16b Siirtovirran tunnus, kiinteä 0x0001
varattu 2b on kiinteä 11
version_number 5b Versionumero, kiinteä 00000, jos PAT muuttuu, versionumero kasvaa yhdellä
current_next_indicator 1b on kiinteä arvoon 1, mikä osoittaa, että tätä PAT-taulukkoa voidaan käyttää, jos se on 0, odota seuraavaa PAT-taulukkoa
section_number 8b on kiinteä 0x00
last_section_number 8b on kiinteä 0x00
Aloita silmukka
ohjelman_numero 16b Kun ohjelman numero on 0x0000, se tarkoittaa, että tämä on NIT, kun ohjelman numero on 0x0001, se tarkoittaa, että tämä on PMT
varattu 3b on kiinteä 111
PID 13b PID-arvo, joka vastaa ohjelman numeron sisältöä
Loppusilmukka
CRC32 32b CRC32-tarkistuskoodi edellisistä tiedoista
PMT-muoto
table_id 8b PMT-taulukolla on mikä tahansa arvo, 0x02
section_syntax_indicator 1b on kiinteä 1
nolla 1b on kiinteä 0
varattu 2b on kiinteä 11
section_length 12b Seuraavien tietojen pituus
ohjelmanumero 16b kanavanumero, joka tarkoittaa nykyiseen PMT: hen liittyvää kanavaa, arvo on 0x0001
varattu 2b on kiinteä 11
version_number 5b Versionumero, kiinteä 00000, jos PAT muuttuu, versionumero kasvaa yhdellä
current_next_indicator 1b on kiinteä 1
section_number 8b on kiinteä 0x00
last_section_number 8b on kiinteä 0x00
varattu 3b on kiinteä 111
PCR_PID 13b Video-PID: ksi sen TS-paketin PID, jossa PCR (ohjelman referenssikello) sijaitsee.
varattu 4b on kiinteä 1111
program_info_length 12b Ohjelman kuvaustiedot, nimetty 0x000, tarkoittaa ei
Aloita silmukka
stream_type 8b Suoratyyppi, merkki on Video tai Audio tai muuta dataa, h.264-koodaus vastaa 0x1b, aac-koodaus vastaa 0x0f, mp3-koodaus vastaa 0x03
varattu 3b on kiinteä 111
elementary_PID 13b PID, joka vastaa virtaustyyppiä
varattu 4b on kiinteä 1111
ES_info_length 12b Kuvausinformaatio, nimeltään 0x000, tarkoittaa ei
Loppusilmukka
CRC32 32b CRC32-tarkistuskoodi edellisistä tiedoista
(2) pes-kerros
Pes-kerros lisää aikaleiman ja muita tietoja kuhunkin video- / äänikehykseen. Pes-paketti sisältää paljon sisältöä, ja jätämme vain yleisimmin käytetyt.
pes-aloituskoodi 3B-aloituskoodi, kiinteä 0x000001
virran tunnus 1B: n ääniarvo (0xc0-0xdf), yleensä 0xc0
Videon arvo (0xe0-0xef), yleensä 0xe0
pes-paketin pituus 2B Pes-datan pituus takana, 0 tarkoittaa rajoittamatonta pituutta,
Vain videodatan pituus ylittää 0xffff
Lippu 1B ottaa yleensä arvon 0x80, mikä tarkoittaa, että tietoja ei ole salattu, sillä ei ole prioriteettia ja varmuuskopioidaan tiedot
Lippu 1B: n arvo 0x80 tarkoittaa vain pistettä, arvo 0xc0 tarkoittaa pistettä ja pistettä
pes datan pituus 1B Seuraavien tietojen pituus, arvo on 5 tai 10
pts 5B 33 bitin arvo
dts 5B 33bit arvo
pts on näytön aikaleima ja dts on dekoodauksen aikaleima. Molemmat aikaleimat vaaditaan videotiedoille. Äänitietojen pts ja dts ovat samat, joten tarvitaan vain pts. Aikaleimoja, pts ja dts, on kaksi, jotka johtuvat B-kehyksistä. I- ja P-kehysten pisteet ovat yhtä suuria kuin dts. Jos videolla ei ole B-kehystä, pts ovat aina samat kuin dts. Lue videokehykset peräkkäin tiedostosta, ja purettujen kehysten järjestys on sama kuin dts-sekvenssi. DTS-algoritmi on suhteellisen yksinkertainen, alkuarvo + lisäys riittää, pts-laskenta on monimutkaisempi ja offset on lisättävä dts: ään.
Äänipesuissa on vain pt (sama kuin dts), videon I- ja P-kehyksissä on oltava molemmat aikaleimat, ja video B -kehyksessä tarvitaan vain pt (sama kuin dts). Pisteiden ja pisteiden pakkaamiseksi sinun on tiedettävä videokehystyyppi, mutta emme voi arvioida kehystyyppiä säilömuodon perusteella. Sinun on jäsennettävä h.264-sisältö, jotta saat kehystyypin.
Esimerkiksi:
IPBBBP
Lukemisjärjestys: 1 2 3 4 5 6
dts järjestys: 1 2 3 4 5 6
pts järjestys: 1 5 3 2 4 6
On-demand-video-DTS-algoritmi:
dts = alkuarvo + 90000 / video_frame_rate, alkuperäinen arvo voidaan määrittää mielivaltaisesti, mutta on parasta olla ottamatta 0, video_frame_rate on kehysnopeus, kuten 23, 30.
pts ja dts perustuvat aikatauluun, 1s = 90000 aikaskaala, yhden kehyksen tulee olla 90000 / video_frame_rate aikaväli.
Yhden kehyksen aikajanan jakaminen näytteenottotaajuudella voidaan muuntaa yhden kehyksen toiston kestoksi
On-demand audio dts -algoritmi:
dts = alkuarvo + (90000 * ääninäytteiden_kehys) / äänen_näyte_nopeus, äänen_näytteiden_kehysarvo liittyy koodekiin, aac-arvo on 1024, mp3-arvo on 1158, äänen_näyte_nopeus on näytteenottotaajuus, kuten 24000, 41000. AAC purkaa kehyksen 1024 näytettä kanavaa kohti, mikä tarkoittaa, että kehyksen kesto on 1024 / näyte_nopeus sekuntia. Joten kunkin kehyksen aikaleima on 0, 1024 / näyte_nopeus, ..., 1024 * n / näyte_nopeus sekuntia.
Suoran videon dts- ja pts-arvojen tulisi käyttää suoraan aikaa live-datavirrassa, eikä niitä pitäisi laskea kaavojen avulla.
(3) es kerros
Es-kerros viittaa ääni- ja videodataan, otamme käyttöön vain h.264-video- ja aac-äänen.
h.264 -video:
H.264-tietojen pakkaamiseksi meidän on lisättävä videotietoihin nalu (Network Abstraction Layer -yksikkö). Nalu sisältää nalu-otsikon ja nalu-tyypin. Nalu-otsikko on kiinteä 0x00000001 (kehyksen alku) tai 0x000001 (kehyksessä). H.264: n tiedot koostuvat viipaleista, ja viipaleiden sisältö sisältää: video, sps, pps jne. Nalu-tyyppi määrittää myöhempien h.264-tietojen sisällön.
F 1b kielletty_zero_bit, h.264 määrää, että sen on oltava 0
NRI 2b nal_ref_idc, arvo 0 ~ 3, osoittaa tämän nalu: n tärkeyden, I-kehys, sps, pps yleensä 3, P-kehys yleensä 2 ja B-kehys yleensä 0
Tyyppi 5b viittaa alla olevaan taulukkoon
nal_unit_type kuvaus
0 ei käytetty
1 Muu kuin IDR-kuva, IDR viittaa avainkehykseen
2 viipale osiota A
3 siivuosio B
|
Kirjoita sähköpostiosoite saadaksesi yllätyksen
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albania
ar.fmuser.org -> arabia
hy.fmuser.org -> Armenian
az.fmuser.org -> azerbaidžanilainen
eu.fmuser.org -> baski
be.fmuser.org -> valkovenäläinen
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> katalaani
zh-CN.fmuser.org -> kiina (yksinkertaistettu)
zh-TW.fmuser.org -> Kiina (perinteinen)
hr.fmuser.org -> kroatia
cs.fmuser.org -> tšekki
da.fmuser.org -> tanska
nl.fmuser.org -> Dutch
et.fmuser.org -> viro
tl.fmuser.org -> filippiiniläinen
fi.fmuser.org -> suomi
fr.fmuser.org -> French
gl.fmuser.org -> galicialainen
ka.fmuser.org -> Georgian
de.fmuser.org -> saksa
el.fmuser.org -> Greek
ht.fmuser.org -> Haitin kreoli
iw.fmuser.org -> heprea
hi.fmuser.org -> Hindi
hu.fmuser.org -> Unkari
is.fmuser.org -> islanti
id.fmuser.org -> indonesia
ga.fmuser.org -> irlantilainen
it.fmuser.org -> Italian
ja.fmuser.org -> japani
ko.fmuser.org -> korea
lv.fmuser.org -> latvia
lt.fmuser.org -> Liettua
mk.fmuser.org -> makedonia
ms.fmuser.org -> malaiji
mt.fmuser.org -> maltalainen
no.fmuser.org -> Norja
fa.fmuser.org -> persia
pl.fmuser.org -> puola
pt.fmuser.org -> portugali
ro.fmuser.org -> Romania
ru.fmuser.org -> venäjä
sr.fmuser.org -> serbia
sk.fmuser.org -> slovakki
sl.fmuser.org -> Slovenian
es.fmuser.org -> espanja
sw.fmuser.org -> swahili
sv.fmuser.org -> ruotsi
th.fmuser.org -> Thai
tr.fmuser.org -> turkki
uk.fmuser.org -> ukraina
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnam
cy.fmuser.org -> kymri
yi.fmuser.org -> Jiddiš
FMUSER Wirless lähettää videota ja ääntä helpommin!
Ota yhteyttä
Osoite:
Nro 305 huone HuiLan-rakennus nro 273 Huanpu Road Guangzhou Kiina 510620
Kategoriat
Uutiskirje