Az FMUSER Wirless könnyebben továbbítja a videót és a hangot!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albán
ar.fmuser.org -> arab
hy.fmuser.org -> örmény
az.fmuser.org -> azerbajdzsán
eu.fmuser.org -> baszk
be.fmuser.org -> belorusz
bg.fmuser.org -> bolgár
ca.fmuser.org -> katalán
zh-CN.fmuser.org -> kínai (egyszerűsített)
zh-TW.fmuser.org -> kínai (hagyományos)
hr.fmuser.org -> horvát
cs.fmuser.org -> cseh
da.fmuser.org -> dán
nl.fmuser.org -> holland
et.fmuser.org -> észt
tl.fmuser.org -> filippínó
fi.fmuser.org -> finn
fr.fmuser.org -> francia
gl.fmuser.org -> galíciai
ka.fmuser.org -> grúz
de.fmuser.org -> német
el.fmuser.org -> Görög
ht.fmuser.org -> haiti kreol
iw.fmuser.org -> héber
hi.fmuser.org -> hindi
hu.fmuser.org -> magyar
is.fmuser.org -> izlandi
id.fmuser.org -> indonéz
ga.fmuser.org -> ír
it.fmuser.org -> olasz
ja.fmuser.org -> japán
ko.fmuser.org -> koreai
lv.fmuser.org -> lett
lt.fmuser.org -> litván
mk.fmuser.org -> macedón
ms.fmuser.org -> maláj
mt.fmuser.org -> máltai
no.fmuser.org -> norvég
fa.fmuser.org -> perzsa
pl.fmuser.org -> lengyel
pt.fmuser.org -> portugál
ro.fmuser.org -> román
ru.fmuser.org -> orosz
sr.fmuser.org -> szerb
sk.fmuser.org -> szlovák
sl.fmuser.org -> Szlovén
es.fmuser.org -> spanyol
sw.fmuser.org -> szuahéli
sv.fmuser.org -> svéd
th.fmuser.org -> Thai
tr.fmuser.org -> török
uk.fmuser.org -> ukrán
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnámi
cy.fmuser.org -> walesi
yi.fmuser.org -> jiddis
A HLS és a Http Live Streaming az Apple által meghatározott valós idejű streaming protokollok. A HLS a HTTP protokoll alapján valósul meg. Az átviteli tartalom két részből áll, az egyik az M3U8 leíró fájl, a másik pedig a TS média fájl.
1. M3U8 fájl
A médiafájl szövege van leírva, amely címkék sorozatából áll.
#EXTM3U
# EXT-X-CÉL IDŐTARTAM: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Minden M3U8 fájl első sorának ennek a címkének kell lennie.
# EXT-X-TARGETDURATION: Adja meg a média szegmens maximális időtartamát (másodpercben). Az #EXTINF mezőben megadott időhossznak kisebbnek vagy egyenlőnek kell lennie ezzel a maximális értékkel. Ez az érték csak egyszer jelenhet meg.
#EXTINF: Írja le egyetlen médiafájl hosszát. Médiafájlok következnek, például ./0.ts
2. ts fájl
A ts fájl egy szállítási adatfájl, a fő videokódolási formátum h264 / mpeg4, a hang pedig acc / MP3.
A ts fájl három rétegre oszlik: ts réteg Transport Stream, pes réteg Packet Elemental Stream, es réteg Elementary Stream. Az es réteg az audio és video adat, a pes réteg pedig az adatkeret leírási információ, például egy időbélyeg az audio és video adatokhoz. A ts rétegnek hozzá kell adnia a szükséges információt az adatfolyam azonosításához és továbbításához a pes rétegben
Megjegyzés: A részletek a következők
(1) ts réteg A ts csomagméret 188 bájtban van rögzítve, és a ts réteg három részre oszlik: ts fejléc, adaptációs mező és hasznos terhelés. A ts fejléc 4 bájtra van rögzítve; az adaptációs mező létezhet vagy nem, és fő feladata 188 bájtnál kevesebb adat kitöltése; a hasznos teher pes adat.
ts fejléc
sync_byte 8b szinkronizációs bájt, 0x47-re rögzítve
transport_error_indicator 1b Szállítási hibajelző, jelezve, hogy a ts fejléc adapt mezője után használhatatlan bájt található, általában 0, ez a bájt az adapt mező hosszában számít
payload_unit_start_indicator 1b Betöltési egység kezdő jelzője, amelyet 1-nek jelölnek a teljes adatcsomag elején
transport_priority 1b Szállítási prioritás: 0 alacsony prioritású, 1 magas prioritású, általában 0
pid 13b pid érték
transport_scrambling_control 2b Szállítási kódolási vezérlés, 00 nem titkosított
adaptation_field_control 2b Az adaptációs mező beillesztésére a „00” van fenntartva; „01”: nincs alkalmazkodási mező, csak a hasznos teher; „10” csak az adaptációs mezőt jelenti, nincs hasznos teher; A „11” azt jelenti, hogy az adaptáció tartalmazza a tartományt és a hasznos terhet is.
folytonosság_számláló 4b Növekvő számláló 0-f-től, a kiindulási érték nem feltétlenül 0-t vesz fel, de folyamatosnak kell lennie
A ts réteg tartalmát a PID érték azonosítja, és a fő tartalom a következőket tartalmazza: PAT tábla, PMT tábla, audio stream és video stream. A ts adatfolyam elemzéséhez először meg kell találnia a PAT táblázatot, mindaddig, amíg megtalálja a PAT-ot, megtalálja a PMT-t, majd megtalálja a hang- és videofolyamokat. A PAT tábla PID értéke 0-ra van rögzítve. A PAT táblázatot és a PMT táblázatot rendszeresen be kell illeszteni a ts adatfolyamba, mert a felhasználó bármikor csatlakozhat a ts adatfolyamhoz, ez az intervallum viszonylag kicsi, általában néhányonként videokeretek a PAT és a PMT hozzáadásához. Szükség van a PAT és a PMT táblákra, és más táblázatok is hozzáadhatók, például az SDT (service description table), de a hls adatfolyam lejátszható mindaddig, amíg vannak PAT és PMT.
PAT táblázat: Fő feladata a PMT táblázat PID értékének feltüntetése.
PMT táblázat: Fő funkciója az audio- és videófolyam PID-értékének megadása.
Hangfolyam / videofolyam: Hang- és videotartalom hordozása.
adaptáció
adaptációs_mező_hossz 1B adaptációs mező hossza, a mögöttük lévő bájtok száma
Az 1B jelzőnek 0x50 kell a PCR jelzése, vagy 0x40 a PCR nélkül
PCR 5B Program Clock Reference, programóra referencia, a kódolóval összhangban lévő rendszer STC (System Time Clock) helyreállítására szolgál.
tömés_bájt xB töltelék bájt, az értéke 0xff
Az alkalmazkodási terület hosszának tartalmaznia kell egy átviteli hibajelző által azonosított bájtot. A pcr a program órajel-referenciája, a pcr, dts, pts ugyanannak a rendszernek az összes mintavételezett értéke, a pcr növekményes, tehát dts értékként állítható be, az audio adatokhoz nincs szükség pcr-re. Ha nincs mező, akkor az ipad játszhat, de a vlc nem. A ts adatfolyam csomagolásakor a PAT és a PMT tábláknak nincs adaptációs mezőjük. Ha a hossz nem elég, csak töltse ki a 0xff értéket. A videofolyamnak és az audió folyamnak is hozzá kell adnia egy adaptációs mezőt, amelyet általában a keret első ts csomagjához és utolsó ts csomagjához adnak, és a középső ts csomag nem kerül hozzáadásra.
PAT formátum
table_id 8b A PAT tábla értéke 0x00
section_syntax_indicator 1b fix értéke 1
az 1b nulla értéke 0
a 2b fenntartva 11-re van rögzítve
section_length 12b A következő adatok hossza
transport_stream_id 16b Szállítási adatfolyam azonosító, 0x0001 néven rögzítve
a 2b fenntartva 11-re van rögzítve
version_number 5b Verziószám, rögzítve: 00000, ha a PAT megváltozik, a verziószám 1-gyel nő
Az 1b current_next_indicator 1-re van rögzítve, jelezve, hogy ez a PAT tábla használható, ha 0, akkor várjon a következő PAT táblára
section_number 8b fixen 0x00
A last_section_number 8b értéke 0x00
Start hurok
program_szám 16b Ha a program száma 0x0000, ez azt jelenti, hogy ez NIT, amikor a program száma 0x0001, ez azt jelenti, hogy ez PMT
a 3b fenntartva 111-re van rögzítve
PID 13b A programszám tartalmának megfelelő PID-érték
Vége hurok
CRC32 32b Az előző adatok CRC32 ellenőrző kódja
PMT formátum
table_id 8b A PMT tábla értéke 0x02
section_syntax_indicator 1b fix értéke 1
az 1b nulla értéke 0
a 2b fenntartva 11-re van rögzítve
section_length 12b A következő adatok hossza
program_szám 16b csatornaszám, ami az aktuális PMT-hez társított csatornát jelenti, értéke 0x0001
a 2b fenntartva 11-re van rögzítve
version_number 5b Verziószám, rögzítve: 00000, ha a PAT megváltozik, a verziószám 1-gyel nő
Az 1b current_next_indicator értéke 1
section_number 8b fixen 0x00
A last_section_number 8b értéke 0x00
a 3b fenntartva 111-re van rögzítve
PCR_PID 13b A TS-csomag PID-je, ahol a PCR (program-referencia óra) található, video PID-ként jelölve
a 4b fenntartva 1111-re van rögzítve
program_info_length 12b A programleírás információi, 0x000-ként jelölve nem
Start hurok
stream_type 8b Stream típus, jelölés Video vagy Audio vagy egyéb adat, a h.264 kódolás megfelel 0x1b, az aac kódolás megfelel 0x0f, mp3 kódolás megfelel 0x03
a 3b fenntartva 111-re van rögzítve
elementary_PID 13b A stream_type-nak megfelelő PID
a 4b fenntartva 1111-re van rögzítve
ES_info_length 12b A leírás információ, 0x000 -ként jelölve, nem
Vége hurok
CRC32 32b Az előző adatok CRC32 ellenőrző kódja
(2) pes réteg
A pes réteg időbélyeget és egyéb információkat ad hozzá az egyes video / audio keretekhez. A pes csomag sok tartalmat tartalmaz, és csak a leggyakrabban használtakat hagyjuk meg.
pes kezdőkód 3B kezdőkód, fixen 0x000001
stream id 1B audioérték (0xc0-0xdf), általában 0xc0
Videóérték (0xe0-0xef), általában 0xe0
pes csomag hossza 2B A pes adat hossza mögött, 0 korlátlan hosszúságot jelent,
Csak a videó adathossza haladja meg a 0xffff értéket
Az 1B jelző általában 0x80 értéket vesz fel, ami azt jelenti, hogy az adatok nincsenek titkosítva, nincs prioritása és biztonsági másolatot készít az adatokról
Az 1B jelző értéke 0x80 csak pontokat, a 0xc0 érték pedig pontokat és pontokat jelent
pes adatok hossza 1B A következő adatok hossza, értéke 5 vagy 10
pont 5B 33bit érték
dts 5B 33bit érték
a pts a kijelző időbélyege, a dts pedig a dekódolási időbélyeg. Mindkét időbélyegző szükséges a video adatokhoz. A hangadatok pontja és pontja megegyezik, ezért csak pontokra van szükség. Két időbélyeg, pts és dts van, amelyeket a B keretek okoznak. Az I és P keretek pontja megegyezik a dts-kel. Ha egy videónak nincs B kerete, a pontok mindig megegyeznek a dts-kel. Olvassa el egymás után a videó képkockákat a fájlból, és a kibontott képkockák sorrendje megegyezik a dts sorrendjével. A dts algoritmus viszonylag egyszerű, a kezdeti érték + növekmény elegendő, a pts számítás bonyolultabb, és az offsetet hozzá kell adni a dts-hez.
Az audio pes-ekben csak pontok vannak (ugyanazok, mint a dts-ek), a videó I és P képkockáinak mindkét időbélyegzővel kell rendelkezniük, a B videó képkockához pedig csak pontokra van szükség (ugyanaz, mint a dts-re). Pts és dts csomagolásához ismernie kell a videokeret típusát, de a konténer formátum alapján nem tudjuk megítélni a keret típusát. A kerettípus megszerzéséhez elemeznie kell a h.264 tartalmat.
például:
IPBBBP
Olvasási sorrend: 1 2 3 4 5 6
dts sorrend: 1 2 3 4 5 6
pont sorrend: 1 5 3 2 4 6
Igény szerinti videó dts algoritmus:
dts = kezdeti érték + 90000 / video_frame_rate, a kezdeti érték tetszőlegesen megadható, de a legjobb, ha nem 0, a video_frame_rate az a képkockasebesség, például 23, 30.
a pontok és a dts időkereten alapulnak, 1s = 90000 időskála, az egyik képkockának 90000 / video_frame_rate időskálának kell lennie.
Ha egy képkockát elosztunk a mintavételi frekvenciával, akkor egy képkocka lejátszási időtartamává alakítható
Igény szerinti audio dts algoritmus:
dts = kezdeti érték + (90000 * audio_minták_keret) / audio_sample_rate, az audio_samples_per_frame értéke a kodekhez kapcsolódik, az aac értéke 1024, az mp3 értéke 1158, az audio_sample_rate a mintavételezési arány, például 24000, 41000. 1024 minta csatornánként, ami azt jelenti, hogy a keret időtartama 1024 / minta_arány másodperc. Tehát az egyes képkockák időbélyege 0, 1024 / minta_ráta, ..., 1024 * n / minta_ráta másodperc.
Az élő videó adatainak és pontjainak közvetlenül fel kell használniuk az élő adatfolyamban lévő időt, és nem képletek alapján kell kiszámítani.
(3) es réteg
Az es réteg audio és video adatokra vonatkozik, csak h.264 video és aac audiót vezetünk be.
h.264 videó:
A h.264 adatok csomagolásához hozzá kell adnunk egy nalu (Network Abstraction Layer egységet) a videoadatokhoz. A nalu tartalmazza a nalu fejlécet és a nalu típust. A Nalu fejléc értéke 0x00000001 (keret kezdete) vagy 0x000001 (keretben). A h.264 adatai szeletekből állnak, és a szeletek tartalma a következőket tartalmazza: video, sps, pps stb. A nalu típus határozza meg a későbbi h.264 adatok tartalmát.
Az F 1b tiltott_nulla_bit, h.264 előírja, hogy 0-nak kell lennie
Az NRI 2b nal_ref_idc, 0 ~ 3 érték, jelzi ennek a nalu jelentőségét, az I keret, az sps, a pps általában 3, a P a keret általában 2, a B keret pedig általában 0
Az 5b típus az alábbi táblázatra vonatkozik
nal_unit_type leírás
0 nem használt
1 Nem IDR kép, az IDR kulcskeretre vonatkozik
2 szelet A partíció
3 szelet B partíció
|
Írja be az e-mail címet a meglepetéshez
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> albán
ar.fmuser.org -> arab
hy.fmuser.org -> örmény
az.fmuser.org -> azerbajdzsán
eu.fmuser.org -> baszk
be.fmuser.org -> belorusz
bg.fmuser.org -> bolgár
ca.fmuser.org -> katalán
zh-CN.fmuser.org -> kínai (egyszerűsített)
zh-TW.fmuser.org -> kínai (hagyományos)
hr.fmuser.org -> horvát
cs.fmuser.org -> cseh
da.fmuser.org -> dán
nl.fmuser.org -> holland
et.fmuser.org -> észt
tl.fmuser.org -> filippínó
fi.fmuser.org -> finn
fr.fmuser.org -> francia
gl.fmuser.org -> galíciai
ka.fmuser.org -> grúz
de.fmuser.org -> német
el.fmuser.org -> Görög
ht.fmuser.org -> haiti kreol
iw.fmuser.org -> héber
hi.fmuser.org -> hindi
hu.fmuser.org -> magyar
is.fmuser.org -> izlandi
id.fmuser.org -> indonéz
ga.fmuser.org -> ír
it.fmuser.org -> olasz
ja.fmuser.org -> japán
ko.fmuser.org -> koreai
lv.fmuser.org -> lett
lt.fmuser.org -> litván
mk.fmuser.org -> macedón
ms.fmuser.org -> maláj
mt.fmuser.org -> máltai
no.fmuser.org -> norvég
fa.fmuser.org -> perzsa
pl.fmuser.org -> lengyel
pt.fmuser.org -> portugál
ro.fmuser.org -> román
ru.fmuser.org -> orosz
sr.fmuser.org -> szerb
sk.fmuser.org -> szlovák
sl.fmuser.org -> Szlovén
es.fmuser.org -> spanyol
sw.fmuser.org -> szuahéli
sv.fmuser.org -> svéd
th.fmuser.org -> Thai
tr.fmuser.org -> török
uk.fmuser.org -> ukrán
ur.fmuser.org -> urdu
vi.fmuser.org -> Vietnámi
cy.fmuser.org -> walesi
yi.fmuser.org -> jiddis
Az FMUSER Wirless könnyebben továbbítja a videót és a hangot!
Kapcsolat
Cím:
No. 305 szoba HuiLan épület No.273 Huanpu Road Guangzhou, Kína 510620
Kategóriák
Hírlevél