FMUSER Bezdrôtové vysielanie videa a zvuku je jednoduchšie!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikánčina
sq.fmuser.org -> albánsky
ar.fmuser.org -> arabčina
hy.fmuser.org -> Arménsky
az.fmuser.org -> azerbajdžanský
eu.fmuser.org -> baskičtina
be.fmuser.org -> bieloruský
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> katalánčina
zh-CN.fmuser.org -> čínština (zjednodušená)
zh-TW.fmuser.org -> čínština (tradičná)
hr.fmuser.org -> chorvátčina
cs.fmuser.org -> čeština
da.fmuser.org -> dánčina
nl.fmuser.org -> Dutch
et.fmuser.org -> estónčina
tl.fmuser.org -> filipínsky
fi.fmuser.org -> fínčina
fr.fmuser.org -> French
gl.fmuser.org -> galícijčina
ka.fmuser.org -> gruzínsky
de.fmuser.org -> nemčina
el.fmuser.org -> Greek
ht.fmuser.org -> haitská kreolčina
iw.fmuser.org -> hebrejčina
hi.fmuser.org -> hindčina
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandský
id.fmuser.org -> indonézština
ga.fmuser.org -> írsky
it.fmuser.org -> Italian
ja.fmuser.org -> japončina
ko.fmuser.org -> kórejčina
lv.fmuser.org -> lotyšský
lt.fmuser.org -> litovčina
mk.fmuser.org -> macedónsky
ms.fmuser.org -> malajčina
mt.fmuser.org -> maltčina
no.fmuser.org -> Norwegian
fa.fmuser.org -> perzský
pl.fmuser.org -> poľština
pt.fmuser.org -> portugalčina
ro.fmuser.org -> rumunčina
ru.fmuser.org -> ruština
sr.fmuser.org -> srbčina
sk.fmuser.org -> slovenčina
sl.fmuser.org -> slovinčina
es.fmuser.org -> španielčina
sw.fmuser.org -> svahilčina
sv.fmuser.org -> švédčina
th.fmuser.org -> Thai
tr.fmuser.org -> turečtina
uk.fmuser.org -> ukrajinčina
ur.fmuser.org -> urdčina
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> waleština
yi.fmuser.org -> jidiš
HLS a Http Live Streaming sú protokoly pre streamovanie v reálnom čase definované spoločnosťou Apple. HLS je implementovaný na základe protokolu HTTP. Obsah prenosu obsahuje dve časti, jednou je popisný súbor M3U8 a druhou mediálny súbor TS.
1. súbor M3U8
Mediálny súbor je opísaný v texte, ktorý sa skladá zo série značiek.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Prvý riadok každého súboru M3U8 musí byť táto značka.
# EXT-X-TARGETDURATION: Zadajte maximálnu dĺžku segmentu média (sekundy). Časový limit uvedený v #EXTINF musí byť menší alebo rovný tejto maximálnej hodnote. Táto hodnota sa môže zobraziť iba raz.
#EXTINF: Popíšte dĺžku jedného mediálneho súboru. Nasledujú mediálne súbory, napríklad ./0.ts
2. súbor ts
Súbor ts je súbor transportného toku, hlavný formát kódovania videa je h264 / mpeg4 a zvuk je acc / MP3.
Súbor ts je rozdelený do troch vrstiev: ts vrstva Transport Stream, pes vrstva Packet Elemental Stream, es vrstva Elementary Stream. Vrstva es sú zvukové a obrazové údaje a vrstva pes sú informácie o popise údajového rámca, ako je napríklad časová značka pridaná k zvukovým a obrazovým údajom. Vrstva ts má pridať potrebné informácie na identifikáciu a prenos dátového toku vo vrstve pes
Poznámka: Podrobnosti sú nasledujúce
(1) vrstva ts Veľkosť paketu ts je pevne stanovená na 188 bajtov a vrstva ts je rozdelená na tri časti: hlavička ts, adaptačné pole a užitočné zaťaženie. Hlavička ts je fixovaná na 4 bajty; adaptačné pole môže, ale nemusí existovať a jeho hlavnou funkciou je vyplnenie údajov menších ako 188 bajtov; užitočné zaťaženie je pes údaje.
hlavička ts
sync_byte 8b synchronizačný bajt, opravený na 0x47
transport_error_indicator 1b Indikátor chyby transportu, označujúci, že za adaptívnym poľom hlavičky ts je zbytočný bajt, zvyčajne 0, tento byte sa počíta do dĺžky adaptačného poľa
payload_unit_start_indicator 1b Indikátor spustenia jednotky načítania, ktorý je označený ako 1 na začiatku kompletného dátového paketu
transport_priority 1b Priorita dopravy, 0 má nízku prioritu, 1 má vysokú prioritu, zvyčajne 0
pid 13b pid hodnota
transport_scrambling_control 2b Riadenie kódovania transportu, 00 znamená nezašifrované
adaptation_field_control 2b Či už má obsahovať adaptačné pole, „00“ je vyhradené; „01“ znamená žiadne adaptačné pole, iba užitočné zaťaženie; „10“ znamená iba adaptačné pole, žiadne užitočné zaťaženie; „11“ znamená, že je zahrnutá aj doména a užitočné zaťaženie.
continuity_counter 4b Zvyšujúce sa počítadlo, od 0 do f počiatočná hodnota nemusí nevyhnutne trvať 0, ale musí byť spojitá
Obsah vrstvy ts je identifikovaný hodnotou PID a hlavný obsah obsahuje: tabuľku PAT, tabuľku PMT, zvukový stream a video stream. Ak chcete analyzovať tok ts, musíte najskôr nájsť tabuľku PAT, pokiaľ nájdete PAT, nájdete PMT a potom zvukové a obrazové toky. Hodnota PID tabuľky PAT je pevne stanovená na 0. Tabuľku PAT a tabuľku PMT je potrebné pravidelne vkladať do toku ts, pretože používateľ sa môže k toku ts kedykoľvek pripojiť, tento interval je relatívne malý, zvyčajne každých pár dní video snímky na pridanie PAT a PMT. Tabuľky PAT a PMT sú nevyhnutné a je možné pridať aj ďalšie tabuľky, ako napríklad SDT (tabuľka s popisom služby), ale prúd hls je možné prehrať, pokiaľ existujú PAT a PMT.
Tabuľka PAT: Jeho hlavnou funkciou je indikácia hodnoty PID tabuľky PMT.
Tabuľka PMT: Jeho hlavnou funkciou je určiť hodnotu PID zvukového a obrazového toku.
Audio stream / video stream: Prenášajte audio a video obsah.
adaptácia
adaptation_field_length 1B dĺžka adaptačného poľa, počet bajtov za sebou
príznak 1B berie 0x50 na indikáciu PCR alebo 0x40 nezahŕňa PCR
Referencia programových hodín PCR 5B, referencia programových hodín, používaná na obnovenie systémových časovacích hodín STC (System Time Clock) zhodných s kódovacím zariadením.
stuffing_bytes xB stuffing bytes, hodnota je 0xff
Dĺžka adaptačnej oblasti musí zahŕňať jeden bajt identifikovaný indikátorom chyby prenosu. pcr je referencia programových hodín, pcr, dts, pts sú všetky vzorkované hodnoty rovnakých systémových hodín, pcr je inkrementálny, takže ho možno nastaviť ako hodnotu dts, zvukové dáta nepotrebujú pcr. Ak nie je k dispozícii žiadne pole, iPad môže hrať, ale vlc nemôže hrať. Pri balení toku ts nemajú tabuľky PAT a PMT adaptačné pole. Ak dĺžka nie je dostatočná, stačí vyplniť 0xff. Ako video stream, tak aj audio stream je potrebné pridať adaptačné pole, ktoré sa zvyčajne pridáva k prvému paketu ts a poslednému ts paketu rámca a stredný ts paket sa nepridáva.
Formát PAT
table_id 8b PAT tabuľka je pevne nastavená na 0x00
section_syntax_indicator 1b je pevne nastavený na 1
nula 1b je pevne stanovená na 0
vyhradené 2b je pevne stanovené na 11
section_length 12b Dĺžka nasledujúcich údajov
transport_stream_id 16b ID transportného toku, opravené ako 0x0001
vyhradené 2b je pevne stanovené na 11
version_number 5b Číslo verzie, pevne stanovené na 00000, ak sa zmení PAT, číslo verzie sa zvýši o 1
current_next_indicator 1b je pevne nastavený na 1, čo naznačuje, že túto PAT tabuľku je možné použiť, ak je 0, počkajte na ďalšiu PAT tabuľku
číslo_sekcie 8b je pevne stanovené na 0x00
last_section_number 8b je pevne stanovené na 0x00
Štartovacia slučka
program_number 16b Ak je číslo programu 0x0000, znamená to NIT, keď je číslo programu 0x0001, znamená to PMT
vyhradené 3b je pevne stanovené na 111
PID 13b Hodnota PID zodpovedajúca obsahu čísla programu
Koncová slučka
CRC32 32b Kontrolný kód CRC32 predchádzajúcich údajov
Formát PMT
table_id 8b PMT tabuľka má ľubovoľnú hodnotu, 0x02
section_syntax_indicator 1b je pevne nastavený na 1
nula 1b je pevne stanovená na 0
vyhradené 2b je pevne stanovené na 11
section_length 12b Dĺžka nasledujúcich údajov
program_number 16b číslo kanálu, čo znamená kanál spojený s aktuálnym PMT, hodnota je 0x0001
vyhradené 2b je pevne stanovené na 11
version_number 5b Číslo verzie, pevne stanovené na 00000, ak sa zmení PAT, číslo verzie sa zvýši o 1
current_next_indicator 1b je pevne nastavený na 1
číslo_sekcie 8b je pevne stanovené na 0x00
last_section_number 8b je pevne stanovené na 0x00
vyhradené 3b je pevne stanovené na 111
PCR_PID 13b PID paketu TS, kde sa nachádza PCR (referenčné hodiny programu), označený ako video PID
vyhradené 4b je pevne stanovené na 1111
program_info_length 12b Informácie o popise programu, označené ako 0x000, znamenajú č
Štartovacia slučka
stream_type 8b Typ toku, značka je Video alebo Audio alebo iné údaje, kódovanie h.264 zodpovedá 0x1b, kódovanie aac zodpovedá 0x0f, kódovanie mp3 zodpovedá 0x03
vyhradené 3b je pevne stanovené na 111
elementary_PID 13b PID zodpovedajúci typu stream_type
vyhradené 4b je pevne stanovené na 1111
ES_info_length 12b Popisné informácie označené ako 0x000 znamenajú č
Koncová slučka
CRC32 32b Kontrolný kód CRC32 predchádzajúcich údajov
(2) pes vrstva
Vrstva pes pridáva časovú pečiatku a ďalšie informácie do každého obrazového / zvukového rámca. Balík pes obsahuje veľa obsahu a ponechávame iba tie najbežnejšie používané.
pes štartovací kód 3B štartovací kód, stanovený na 0x000001
stream ID 1B hodnota zvuku (0xc0-0xdf), zvyčajne 0xc0
Hodnota videa (0xe0-0xef), zvyčajne 0xe0
dĺžka paketu pes 2B Dĺžka dát pes za sebou, 0 znamená neobmedzenú dĺžku,
Iba dĺžka video dát presiahne 0xffff
Príznak 1B má zvyčajne hodnotu 0x80, čo znamená, že údaje nie sú šifrované, nemajú prioritu a sú zálohované.
Hodnota príznaku 1B 0x80 znamená iba body, hodnota 0xc0 znamená body a body
dĺžka dát pes 1B Dĺžka nasledujúcich dát, hodnota je 5 alebo 10
hodnota 5B 33bit
hodnota dts 5B 33bit
pts je časová pečiatka displeja a dts je časová pečiatka dekódovania. Pre video dáta sú potrebné obe časové pečiatky. Body a body zvukových údajov sú rovnaké, takže sú potrebné iba body. Existujú dve časové značky, body a body, ktoré sú spôsobené rámcami B. Body I a P rámcov sa rovnajú dts. Ak video nemá žiadne B snímky, body budú vždy rovnaké ako dts. Čítajte videozáznamy postupne zo súboru a sekvencia extrahovaných snímok je rovnaká ako sekvencia dts. Algoritmus dts je pomerne jednoduchý, stačí počiatočná hodnota + prírastok, výpočet pts je komplikovanejší a k dts je potrebné pridať offset.
V zvukových pesničkách sú iba body (rovnaké ako dts), rámce I a P videa musia mať obe časové značky a rámik videa B vyžaduje iba body (rovnaké ako dts). Na zabalenie bodov PTS a DTS potrebujete poznať typ rámca videa, ale nemôžeme posúdiť typ rámca podľa formátu kontajnera. Ak chcete získať typ rámca, musíte analyzovať obsah h.264.
napríklad:
IPBBBP
Poradie čítania: 1 2 3 4 5 6
objednávka dts: 1 2 3 4 5 6
počet objednávok: 1 5 3 2 4 6
Algoritmus dts videa na požiadanie:
dts = počiatočná hodnota + 90000 / video_frame_rate, počiatočnú hodnotu je možné ľubovoľne určiť, ale najlepšie je neberieť 0, video_frame_rate je snímková frekvencia, napríklad 23, 30.
body a body sú založené na časovej škále, 1s = 90000 časová škála, jeden rámec by mal byť 90000 / video_frame_rate časová os.
Vydelenie časovej škály jednej snímky vzorkovacou frekvenciou možno previesť na trvanie prehrávania jednej snímky
Algoritmus dts audio na požiadanie:
dts = počiatočná hodnota + (90000 * audio_samples_per_frame) / audio_sample_rate, hodnota audio_samples_per_frame súvisí s kodekom, hodnota aac je 1024, hodnota mp3 je 1158, audio_sample_rate je vzorkovacia frekvencia, napríklad 24000, 41000. AAC dekóduje rámec 1024 vzoriek na kanál, čo znamená, že trvanie rámca je 1024 / sample_rate sekúnd. Takže časová pečiatka každého rámca je 0, 1024 / sample_rate, ..., 1024 * n / sample_rate seconds.
DTS a PTS živého videa by mali priamo využívať čas v streame živých údajov a nemali by sa počítať podľa vzorcov.
(3) vrstva es
Vrstva es sa týka zvukových a obrazových údajov, uvádzame iba videozáznamy h.264 a aac audio.
video h.264:
Aby sme mohli zbaliť dáta h.264, musíme do video dát pridať nalu (Network Abstraction Layer unit). Nalu obsahuje hlavičku nalu a typ nalu. Hlavička nalu je pevne nastavená na 0x00000001 (začiatok rámca) alebo 0x000001 (v rámci). Údaje h.264 sa skladajú z rezov a obsah rezov obsahuje: video, sps, pps atď. Typ nalu určuje obsah nasledujúcich údajov h.264.
F 1b zakázané_zero_bit, h.264 stanovuje, že musí byť 0
NRI 2b nal_ref_idc, hodnota 0 ~ 3, označuje dôležitosť tejto nalu, rámec I, sps, pps zvyčajne trvá 3, rámec P zvyčajne trvá 2 a rámec B zvyčajne 0
Typ 5b nájdete v nasledujúcej tabuľke
popis typu nal_unit_type
0 nepoužité
1 Obrázok bez IDR, IDR sa týka kľúčového rámca
2-dielna priečka A
3-dielna priečka B
|
Zadajte e-mail, aby ste dostali prekvapenie
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikánčina
sq.fmuser.org -> albánsky
ar.fmuser.org -> arabčina
hy.fmuser.org -> Arménsky
az.fmuser.org -> azerbajdžanský
eu.fmuser.org -> baskičtina
be.fmuser.org -> bieloruský
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> katalánčina
zh-CN.fmuser.org -> čínština (zjednodušená)
zh-TW.fmuser.org -> čínština (tradičná)
hr.fmuser.org -> chorvátčina
cs.fmuser.org -> čeština
da.fmuser.org -> dánčina
nl.fmuser.org -> Dutch
et.fmuser.org -> estónčina
tl.fmuser.org -> filipínsky
fi.fmuser.org -> fínčina
fr.fmuser.org -> French
gl.fmuser.org -> galícijčina
ka.fmuser.org -> gruzínsky
de.fmuser.org -> nemčina
el.fmuser.org -> Greek
ht.fmuser.org -> haitská kreolčina
iw.fmuser.org -> hebrejčina
hi.fmuser.org -> hindčina
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandský
id.fmuser.org -> indonézština
ga.fmuser.org -> írsky
it.fmuser.org -> Italian
ja.fmuser.org -> japončina
ko.fmuser.org -> kórejčina
lv.fmuser.org -> lotyšský
lt.fmuser.org -> litovčina
mk.fmuser.org -> macedónsky
ms.fmuser.org -> malajčina
mt.fmuser.org -> maltčina
no.fmuser.org -> Norwegian
fa.fmuser.org -> perzský
pl.fmuser.org -> poľština
pt.fmuser.org -> portugalčina
ro.fmuser.org -> rumunčina
ru.fmuser.org -> ruština
sr.fmuser.org -> srbčina
sk.fmuser.org -> slovenčina
sl.fmuser.org -> slovinčina
es.fmuser.org -> španielčina
sw.fmuser.org -> svahilčina
sv.fmuser.org -> švédčina
th.fmuser.org -> Thai
tr.fmuser.org -> turečtina
uk.fmuser.org -> ukrajinčina
ur.fmuser.org -> urdčina
vi.fmuser.org -> Vietnamese
cy.fmuser.org -> waleština
yi.fmuser.org -> jidiš
FMUSER Bezdrôtové vysielanie videa a zvuku je jednoduchšie!
Kontakt
adresa:
Budova č. 305 Izba HuiLan č. 273 Huanpu Road Kanton Čína 510620
Kategórie
Prihlás sa na odber Newslettra