FMUSER bežični prijenos videa i zvuka lakše!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albanski
ar.fmuser.org -> arapski
hy.fmuser.org -> Armenski
az.fmuser.org -> azerbejdžanski
eu.fmuser.org -> baskijski
be.fmuser.org -> bjeloruski
bg.fmuser.org -> Bugarski
ca.fmuser.org -> katalonski
zh-CN.fmuser.org -> kineski (pojednostavljeni)
zh-TW.fmuser.org -> Kineski (tradicionalni)
hr.fmuser.org -> hrvatski
cs.fmuser.org -> češki
da.fmuser.org -> danski
nl.fmuser.org -> Nizozemski
et.fmuser.org -> estonski
tl.fmuser.org -> filipinski
fi.fmuser.org -> finski
fr.fmuser.org -> Francuski
gl.fmuser.org -> galicijski
ka.fmuser.org -> gruzijski
de.fmuser.org -> njemački
el.fmuser.org -> Grčki
ht.fmuser.org -> haićanski kreolski
iw.fmuser.org -> hebrejski
hi.fmuser.org -> hindski
hu.fmuser.org -> Mađarski
is.fmuser.org -> islandski
id.fmuser.org -> indonezijski
ga.fmuser.org -> irski
it.fmuser.org -> Talijanski
ja.fmuser.org -> japanski
ko.fmuser.org -> korejski
lv.fmuser.org -> latvijski
lt.fmuser.org -> Litvanski
mk.fmuser.org -> makedonski
ms.fmuser.org -> malajski
mt.fmuser.org -> malteški
no.fmuser.org -> Norveška
fa.fmuser.org -> perzijski
pl.fmuser.org -> poljski
pt.fmuser.org -> portugalski
ro.fmuser.org -> Rumunjski
ru.fmuser.org -> ruski
sr.fmuser.org -> srpski
sk.fmuser.org -> slovački
sl.fmuser.org -> Slovenski
es.fmuser.org -> španjolski
sw.fmuser.org -> svahili
sv.fmuser.org -> švedski
th.fmuser.org -> Tajlandski
tr.fmuser.org -> turski
uk.fmuser.org -> ukrajinski
ur.fmuser.org -> urdu
vi.fmuser.org -> Vijetnamski
cy.fmuser.org -> velški
yi.fmuser.org -> Jidiš
HLS i Http Live Streaming protokoli su za streaming u stvarnom vremenu koje je definirao Apple. HLS se provodi na temelju HTTP protokola. Sadržaj prijenosa uključuje dva dijela, jedan je datoteka opisa M3U8, a drugi je TS medijska datoteka.
1. Datoteka M3U8
Medijska datoteka opisana je u tekstu koji se sastoji od niza oznaka.
#EXTM3U
# EXT-X-CILJNA TRAJANJA: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Prvi redak svake datoteke M3U8 mora biti ova oznaka.
# EXT-X-TARGETDURATION: Odredite maksimalnu duljinu segmenta medija (u sekundama). Duljina vremena navedena u #EXTINF mora biti manja ili jednaka ovoj maksimalnoj vrijednosti. Ova se vrijednost može pojaviti samo jednom.
#EXTINF: Opišite duljinu jedne medijske datoteke. Slijede medijske datoteke, poput ./0.ts
2. ts datoteka
Datoteka ts je datoteka prijenosnog prijenosa, glavni format kodiranja video zapisa je h264 / mpeg4, a zvuk je u skladu s MP3.
Datoteka ts podijeljena je u tri sloja: ts sloj Transport Stream, sloj pes Packet Elemental Stream, sloj Elementary Stream. Sloj es su audio i video podaci, a sloj pes podaci o opisu podatkovnog okvira, poput vremenske oznake dodane audio i video podacima. Sloj ts treba dodati potrebne informacije za identifikaciju i prijenos toka podataka u sloju pes
Napomena: Detalji su sljedeći
(1) ts sloj Veličina ts paketa fiksirana je na 188 bajtova, a ts sloj podijeljen je u tri dijela: zaglavlje ts, polje prilagodbe i korisni teret. Zaglavlje ts fiksirano je na 4 bajta; polje prilagodbe može postojati ili ne, a glavna mu je funkcija popuniti podatke manje od 188 bajtova; nosivost je pes podataka.
ts zaglavlje
sync_byte 8b bajt za sinkronizaciju, fiksiran na 0x47
transport_error_indicator 1b Pokazatelj transportne pogreške, koji ukazuje da postoji beskoristan bajt nakon polja prilagodbe zaglavlja ts, obično 0, taj se bajt računa u duljinu polja prilagodbe
payload_unit_start_indicator 1b Pokazatelj pokretanja jedinice učitavanja, koji je označen kao 1 na početku cjelovitog podatkovnog paketa
transport_prioritet 1b Prijevozni prioritet, 0 je nizak prioritet, 1 je visoki prioritet, obično 0
pid 13b pid vrijednost
transport_scrambly_control 2b Kontrola kodiranja prijevoza, 00 znači nešifrirano
adaptacija_polje_kontrole 2b Treba li uključiti polje prilagodbe, rezervirano je '00'; '01' znači da nema prilagodbenog polja, samo korisni teret; '10' znači samo prilagodbeno polje, bez korisnog tereta; '11' znači da je uključena i prilagodba Domena i korisni teret.
continuity_counter 4b Povećavajući brojač, od 0-f, početna vrijednost ne mora nužno biti 0, ali mora biti kontinuirana
Sadržaj ts sloja identificiran je vrijednošću PID, a glavni sadržaj uključuje: PAT tablicu, PMT tablicu, audio tok i video tok. Da biste raščlanili ts stream, prvo morate pronaći PAT tablicu, sve dok pronađete PAT, možete pronaći PMT, a zatim možete pronaći audio i video tokove. PID vrijednost PAT tablice fiksirana je na 0. PAT tablicu i PMT tablicu potrebno je redovito umetati u ts stream, jer se korisnik može pridružiti ts streamu u bilo kojem trenutku, ovaj interval je relativno mali, obično svakih nekoliko video okviri za dodavanje PAT i PMT. Potrebne su PAT i PMT tablice, a mogu se dodati i druge tablice poput SDT (tablica opisa usluge), ali hls stream se može reproducirati sve dok postoje PAT i PMT.
PAT tablica: Njegova glavna funkcija je naznačiti PID vrijednost PMT tablice.
PMT tablica: Njegova glavna funkcija je odrediti PID vrijednost audio i video toka.
Audio stream / video stream: Nosite audio i video sadržaj.
privikavanje
adaptacija_polje_duljina 1B duljina polja prilagodbe, broj bajtova iza
zastavica 1B uzima 0x50 da označi PCR ili 0x40 da ne uključuje PCR
Referenca programskog sata PCR 5B, referenca programskog sata, koja se koristi za oporavak vremenskog sata sustava STC (System Time Clock) u skladu s kodorom.
stuffing_bytes xB stuffing bytes, vrijednost je 0xff
Duljina područja prilagodbe uključuje jedan bajt identificiran indikatorom pogreške prijenosa. pcr je referenca programskog sata, pcr, dts, pts su sve uzorkovane vrijednosti istog sistemskog sata, pcr je inkrementalni, pa se može postaviti kao dts vrijednost, audio podaci ne trebaju pcr. Ako nema polja, ipad može igrati, ali vlc ne može igrati. Pri pakiranju ts toka, PAT i PMT tablice nemaju polje prilagodbe. Ako duljina nije dovoljna, samo ispunite 0xff. I video i audio tok trebaju dodati prilagodbeno polje, koje se obično dodaje prvom ts paketu i posljednjem ts paketu okvira, a srednji ts paket se ne dodaje.
PAT format
table_id 8b PAT tablica fiksirana je na 0x00
section_syntax_indicator 1b je fiksiran na 1
nula 1b je fiksirana na 0
rezervirano 2b fiksirano je na 11
section_length 12b Duljina sljedećih podataka
transport_stream_id 16b ID transportnog toka, fiksiran kao 0x0001
rezervirano 2b fiksirano je na 11
version_number 5b Broj verzije, fiksiran na 00000, ako se PAT promijeni, broj verzije povećat će se za 1
current_next_indicator 1b je fiksiran na 1, što znači da se ova PAT tablica može koristiti, ako je 0, pričekajte sljedeću PAT tablicu
odjeljak_broj 8b fiksiran je na 0x00
last_section_number 8b je fiksiran na 0x00
Startna petlja
program_broj 16b Kada je broj programa 0x0000, to znači da je to NIT, kada je broj programa 0x0001, to znači da je ovo PMT
rezervirano 3b fiksirano je na 111
PID 13b PID vrijednost koja odgovara sadržaju broja programa
Krajnja petlja
CRC32 32b CRC32 kontrolni kôd prethodnih podataka
PMT format
table_id 8b PMT tablica ima bilo koju vrijednost, 0x02
section_syntax_indicator 1b je fiksiran na 1
nula 1b je fiksirana na 0
rezervirano 2b fiksirano je na 11
section_length 12b Duljina sljedećih podataka
program_number 16b Broj kanala, što znači da je kanal povezan s trenutnim PMT-om vrijednost 0x0001
rezervirano 2b fiksirano je na 11
version_number 5b Broj verzije, fiksiran na 00000, ako se PAT promijeni, broj verzije povećat će se za 1
current_next_indicator 1b je fiksiran na 1
odjeljak_broj 8b fiksiran je na 0x00
last_section_number 8b je fiksiran na 0x00
rezervirano 3b fiksirano je na 111
PCR_PID 13b PID TS paketa u kojem se nalazi PCR (programski referentni sat), označen kao video PID
rezervirano 4b fiksirano je na 1111
program_info_length 12b Podaci o opisu programa, označeni kao 0x000, znače br
Startna petlja
stream_type 8b Vrsta toka, oznaka je Video ili Audio ili drugi podaci, h.264 kodiranje odgovara 0x1b, aac kodiranje odgovara 0x0f, mp3 kodiranje odgovara 0x03
rezervirano 3b fiksirano je na 111
basic_PID 13b PID koji odgovara vrsti_toka
rezervirano 4b fiksirano je na 1111
ES_info_length 12b Podaci o opisu, označeni kao 0x000, znače br
Krajnja petlja
CRC32 32b CRC32 kontrolni kôd prethodnih podataka
(2) sloj pes
Sloj pes dodaje vremensku oznaku i ostale informacije svakom video / audio okviru. Paket pes sadrži puno sadržaja, a mi ostavljamo samo najčešće korištene.
početna šifra pes 3B početna šifra, fiksirana na 0x000001
stream id 1B audio vrijednost (0xc0-0xdf), obično 0xc0
Vrijednost videozapisa (0xe0-0xef), obično 0xe0
duljina pes paketa 2B Duljina pes podataka iza, 0 znači neograničenu duljinu,
Samo će duljina video podataka premašiti 0xffff
Oznaka 1B obično uzima vrijednost 0x80, što znači da podaci nisu šifrirani, nemaju prioritet i izrađuju se sigurnosne kopije podataka
Vrijednost zastavice 1B 0x80 znači samo bodove, vrijednost 0xc0 znači bodove i bodove
duljina podataka pes 1B Duljina sljedećih podataka, vrijednost je 5 ili 10
bodova 5B 33-bitna vrijednost
dts 5B 33bitna vrijednost
pts je vremenska oznaka prikaza, a dts vremenska oznaka dekodiranja. Obje vremenske oznake potrebne su za video podatke. Pts i dts audio podaci su isti, pa su potrebni samo pts. Postoje dvije vremenske oznake, pts i dts, koje su uzrokovane B okvirima. Bodovi I i P okvira jednaki su dts. Ako videozapis nema B okvira, bodovi će uvijek biti isti kao dts. Uzastopno čitajte video okvire iz datoteke, a slijed izvađenih okvira jednak je dts redoslijedu. DTS algoritam je relativno jednostavan, dovoljna je početna vrijednost + prirast, pts izračun je složeniji, a pomak treba dodati u dts.
U audio pesu postoje samo bodovi (isto što i dts), I i P okviri videozapisa moraju imati obje vremenske oznake, a video B okviru trebaju samo bodovi (isto kao i dts). Da biste spakirali pts i dts, morate znati vrstu video okvira, ali ne možemo procijeniti vrstu okvira putem formata spremnika. Morate raščlaniti sadržaj h.264 da biste dobili vrstu okvira.
na primjer:
IPBBBP
Redoslijed čitanja: 1 2 3 4 5 6
dts redoslijed: 1 2 3 4 5 6
red za bodove: 1 5 3 2 4 6
DTS algoritam za video na zahtjev:
dts = početna vrijednost + 90000 / video_frame_rate, početna vrijednost može se proizvoljno odrediti, ali najbolje je ne uzimati 0, video_frame_rate je brzina sličica, poput 23, 30.
pts i dts temelje se na vremenskom okviru, 1s = 90000 vremenska skala, jedan kadar treba biti 90000 / video_frame_rate vremenska skala.
Podijelom vremenskog okvira jednog kadra s frekvencijom uzorkovanja može se pretvoriti u trajanje reprodukcije jednog kadra
Audio dts algoritam na zahtjev:
dts = početna vrijednost + (90000 * audio_samples_per_frame) / audio_sample_rate, vrijednost audio_samples_per_frame povezana je s kodekom, vrijednost aac je 1024, vrijednost mp3 je 1158, audio_sample_rate je brzina uzorkovanja, kao što je 24000, 41000. AAC dekodira okvir od 1024 uzorka po kanalu, što znači da trajanje okvira iznosi 1024 / sample_rate seconds. Dakle, vremenska oznaka svakog okvira je 0, 1024 / sample_rate, ..., 1024 * n / sample_rate seconds.
Dts i pts videozapisa uživo trebali bi izravno koristiti vrijeme u streamu podataka uživo i ne bi se trebali izračunavati formulama.
(3) sloj
Sloj es odnosi se na audio i video podatke, mi samo uvodimo h.264 video i aac audio.
h.264 video:
Da bismo spakirali podatke h.264, video podacima moramo dodati nalu (jedinica sloja mrežne apstrakcije). Nalu uključuje nalu zaglavlje i tip nalu. Nalu zaglavlje fiksirano je na 0x00000001 (početak okvira) ili 0x000001 (u okviru). Podaci h.264 sastoje se od kriški, a sadržaj kriški uključuje: video, sps, pps itd. Nalu vrsta određuje sadržaj sljedećih podataka h.264.
F 1b prohib_zero_bit, h.264 propisuje da mora biti 0
NRI 2b nal_ref_idc, vrijednost 0 ~ 3, ukazuje na važnost ovog nalua, I okvir, sps, pps obično traje 3, P okvir obično traje 2, a B okvir obično 0
Tip 5b odnosi se na donju tablicu
opis nal_unit_type
0 nije korišteno
1 Slika koja nije IDR, IDR se odnosi na okvir ključa
Particija od 2 kriške A
Pregrada s 3 kriške B
|
Unesite e-poštu da biste dobili iznenađenje
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albanski
ar.fmuser.org -> arapski
hy.fmuser.org -> Armenski
az.fmuser.org -> azerbejdžanski
eu.fmuser.org -> baskijski
be.fmuser.org -> bjeloruski
bg.fmuser.org -> Bugarski
ca.fmuser.org -> katalonski
zh-CN.fmuser.org -> kineski (pojednostavljeni)
zh-TW.fmuser.org -> Kineski (tradicionalni)
hr.fmuser.org -> hrvatski
cs.fmuser.org -> češki
da.fmuser.org -> danski
nl.fmuser.org -> Nizozemski
et.fmuser.org -> estonski
tl.fmuser.org -> filipinski
fi.fmuser.org -> finski
fr.fmuser.org -> Francuski
gl.fmuser.org -> galicijski
ka.fmuser.org -> gruzijski
de.fmuser.org -> njemački
el.fmuser.org -> Grčki
ht.fmuser.org -> haićanski kreolski
iw.fmuser.org -> hebrejski
hi.fmuser.org -> hindski
hu.fmuser.org -> Mađarski
is.fmuser.org -> islandski
id.fmuser.org -> indonezijski
ga.fmuser.org -> irski
it.fmuser.org -> Talijanski
ja.fmuser.org -> japanski
ko.fmuser.org -> korejski
lv.fmuser.org -> latvijski
lt.fmuser.org -> Litvanski
mk.fmuser.org -> makedonski
ms.fmuser.org -> malajski
mt.fmuser.org -> malteški
no.fmuser.org -> Norveška
fa.fmuser.org -> perzijski
pl.fmuser.org -> poljski
pt.fmuser.org -> portugalski
ro.fmuser.org -> Rumunjski
ru.fmuser.org -> ruski
sr.fmuser.org -> srpski
sk.fmuser.org -> slovački
sl.fmuser.org -> Slovenski
es.fmuser.org -> španjolski
sw.fmuser.org -> svahili
sv.fmuser.org -> švedski
th.fmuser.org -> Tajlandski
tr.fmuser.org -> turski
uk.fmuser.org -> ukrajinski
ur.fmuser.org -> urdu
vi.fmuser.org -> Vijetnamski
cy.fmuser.org -> velški
yi.fmuser.org -> Jidiš
FMUSER bežični prijenos videa i zvuka lakše!
Kontakt
Adresa:
Br. 305 Soba HuiLan zgrada br. 273 Huanpu Road Guangzhou Kina 510620
Kategorije
Novosti