„FMUSER Wirless“ perduoda vaizdo ir garso įrašus lengviau!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanų kalba
sq.fmuser.org -> albanų
ar.fmuser.org -> arabų
hy.fmuser.org -> armėnas
az.fmuser.org -> azerbaidžanietis
eu.fmuser.org -> baskų
be.fmuser.org -> baltarusių
bg.fmuser.org -> bulgarų
ca.fmuser.org -> katalonų
zh-CN.fmuser.org -> kinų (supaprastinta)
zh-TW.fmuser.org -> kinų (tradicinė)
hr.fmuser.org -> kroatų
cs.fmuser.org -> čekų
da.fmuser.org -> danų
nl.fmuser.org -> Olandų
et.fmuser.org -> estų
tl.fmuser.org -> filipinietis
fi.fmuser.org -> suomių
fr.fmuser.org -> prancūzų
gl.fmuser.org -> Galisų
ka.fmuser.org -> gruzinų
de.fmuser.org -> vokiečių kalba
el.fmuser.org -> graikų
ht.fmuser.org -> Haičio kreolis
iw.fmuser.org -> hebrajų
hi.fmuser.org -> hindi
hu.fmuser.org -> vengrų
is.fmuser.org -> islandų
id.fmuser.org -> indoneziečių
ga.fmuser.org -> airių
it.fmuser.org -> italų kalba
ja.fmuser.org -> japonų
ko.fmuser.org -> korėjiečių
lv.fmuser.org -> latvių
lt.fmuser.org -> lietuvis
mk.fmuser.org -> makedonų
ms.fmuser.org -> malajiečių
mt.fmuser.org -> maltiečių
no.fmuser.org -> norvegų
fa.fmuser.org -> persų
pl.fmuser.org -> lenkų
pt.fmuser.org -> portugalų
ro.fmuser.org -> rumunų
ru.fmuser.org -> rusų
sr.fmuser.org -> serbų
sk.fmuser.org -> slovakų
sl.fmuser.org -> slovėnų
es.fmuser.org -> ispanų
sw.fmuser.org -> svahili kalba
sv.fmuser.org -> švedų
th.fmuser.org -> Tailando
tr.fmuser.org -> turkų
uk.fmuser.org -> ukrainietis
ur.fmuser.org -> urdu
vi.fmuser.org -> vietnamiečių
cy.fmuser.org -> Valų kalba
yi.fmuser.org -> jidiš
„HLS“ ir „Http Live Streaming“ yra „Apple“ apibrėžti srauto realiuoju laiku protokolai. HLS yra įgyvendinamas remiantis HTTP protokolu. Perdavimo turinį sudaro dvi dalys: viena yra M3U8 aprašymo byla, kita - TS laikmenos byla.
1. M3U8 byla
Medijos failas aprašytas tekste, kurį sudaro žymių serija.
#EXTM3U
# EXT-X-TIKSLAS: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Pirmoji kiekvieno M3U8 failo eilutė turi būti ši žyma.
# EXT-X-TARGETDURATION: nurodykite maksimalų laikmenos segmento trukmę (sekundes). #EXTINF nurodytas laiko ilgis turi būti mažesnis arba lygus šiai didžiausiai vertei. Ši vertė gali būti rodoma tik vieną kartą.
#EXTINF: apibūdinkite vieno medijos failo ilgį. Toliau pateikiami medijos failai, pvz., ./0.ts
2. ts byla
TS failas yra transporto srauto failas, pagrindinis vaizdo įrašo kodavimo formatas yra h264 / mpeg4, o garsas yra acc / MP3.
TS failas yra padalintas į tris sluoksnius: ts sluoksnio transporto srautas, pes sluoksnis paketinis elementinis srautas, es sluoksnis elementinis srautas. Es sluoksnis yra garso ir vaizdo duomenys, o pes sluoksnis yra duomenų rėmelio aprašymo informacija, pvz., Laiko žymė, pridėta prie garso ir vaizdo duomenų. TS sluoksnis turi pridėti reikiamą informaciją duomenų srauto identifikavimui ir perdavimui pes sluoksnyje
Pastaba: išsami informacija yra tokia
(1) ts sluoksnis Ts paketo dydis yra fiksuotas 188 baitais, o ts sluoksnis yra padalintas į tris dalis: ts antraštė, adaptacijos laukas ir naudingoji apkrova. TS antraštė yra fiksuota 4 baitais; adaptacijos laukas gali ir nebūti, o jo pagrindinė funkcija yra užpildyti mažiau nei 188 baitų duomenis; naudingoji apkrova yra pes duomenys.
ts antraštė
„sync_byte 8b“ sinchronizavimo baitas, nustatytas 0x47
transport_error_indicator 1b Transporto klaidos indikatorius, nurodantis, kad po ts antraštės adapt lauko yra nenaudingas baitas, paprastai 0, šis baitas yra įskaitomas į adapt lauko ilgį
payload_unit_start_indicator 1b Apkrovos vieneto pradžios indikatorius, kuris pažymėtas kaip 1 viso duomenų paketo pradžioje
transport_priority 1b Transporto prioritetas, 0 yra mažas prioritetas, 1 yra didelis prioritetas, paprastai 0
pid 13b pid vertė
transport_scrambling_control 2b Transporto kodavimo valdymas, 00 reiškia nešifruotą
adaptation_field_control 2b Ar įtraukti adaptacijos lauką, „00“ yra rezervuotas; „01“ reiškia, kad nėra pritaikymo lauko, tik naudingoji apkrova; „10“ reiškia tik pritaikymo lauką, be naudingosios apkrovos; „11“ reiškia, kad adaptacija taip pat apima domeną ir naudingąją apkrovą.
tęstinumo_skaičius 4b Didinant skaitiklį nuo 0-f, pradinė vertė nebūtinai turi būti 0, bet ji turi būti ištisinė
TS sluoksnio turinys identifikuojamas pagal PID reikšmę, o pagrindinį turinį sudaro: PAT lentelė, PMT lentelė, garso srautas ir vaizdo srautas. Norėdami išanalizuoti „ts“ srautą, pirmiausia turite rasti PAT lentelę, jei tik rasite PAT, galite rasti PMT, o tada - garso ir vaizdo srautus. PAT lentelės PID vertė yra fiksuota 0. PAT lentelę ir PMT lentelę reikia reguliariai įterpti į ts srautą, nes vartotojas gali prisijungti prie ts srauto bet kuriuo metu, šis intervalas yra santykinai mažas, paprastai kas keletą vaizdo rėmeliai PAT ir PMT pridėti. PAT ir PMT lentelės yra būtinos, taip pat galima pridėti kitas lenteles, tokias kaip SDT (paslaugų aprašymo lentelė), tačiau „hls“ srautą galima leisti tol, kol yra PAT ir PMT.
PAT lentelė: Pagrindinė jos funkcija yra nurodyti PMT lentelės PID reikšmę.
PMT lentelė: Pagrindinė jos funkcija yra nurodyti garso ir vaizdo srauto PID vertę.
Garso srautas / vaizdo srautas: nešioja garso ir vaizdo turinį.
adaptacija
adaptacijos_ lauko_length 1B adaptacijos lauko ilgis, baitų skaičius už
1B žymėjime reikia 0x50 nurodyti PGR arba 0x40 neįtraukti PGR
„PCR 5B“ programos laikrodžio nuoroda, programos laikrodžio nuoroda, naudojama atkuriant sistemos laiko laikrodį STC („System Time Clock“), atitinkantį kodavimo įrenginį.
stuffing_bytes xB įdaro baitų, vertė yra 0xff
Į pritaikymo srities ilgį įeina vienas baitas, kurį identifikuoja perdavimo klaidos indikatorius. pcr yra programos laikrodžio nuoroda, pcr, dts, pts yra visos to paties sistemos laikrodžio atrinktos reikšmės, pcr yra laipsniškas, todėl jį galima nustatyti kaip dts reikšmę, garso duomenims nereikia pcr. Jei nėra lauko, „iPad“ gali žaisti, bet „vlc“ negali žaisti. Pakuojant ts srautą, PAT ir PMT lentelėse nėra pritaikymo lauko. Jei ilgio nepakanka, tiesiog užpildykite 0xff. Tiek vaizdo srautui, tiek garso srautui reikia pridėti pritaikymo lauką, kuris paprastai pridedamas prie pirmo kadro paketo ir paskutinio kadro paketo, o vidurinis paketas nepridėtas.
PAT formatas
table_id 8b PAT lentelė yra nustatyta 0x00
section_syntax_indicator 1b yra fiksuotas 1
nulis 1b yra fiksuotas 0
rezervuotas 2b yra fiksuotas iki 11
section_length 12b Šių duomenų ilgis
transport_stream_id 16b Transporto srauto ID, nustatytas kaip 0x0001
rezervuotas 2b yra fiksuotas iki 11
version_number 5b Versijos numeris, nustatytas 00000, jei pasikeis PAT, versijos numeris padidės 1
current_next_indicator 1b yra nustatytas į 1, nurodant, kad šią PAT lentelę galima naudoti, jei ji yra 0, palaukite kitos PAT lentelės
section_number 8b yra fiksuotas 0x00
„last_section_number 8b“ yra fiksuota 0x00
Pradžios kilpa
program_number 16b Kai programos numeris yra 0x0000, tai reiškia, kad tai yra NIT, kai programos numeris yra 0x0001, tai reiškia, kad tai yra PMT
rezervuotas 3b yra fiksuotas iki 111
PID 13b PID reikšmė, atitinkanti programos numerio turinį
Pabaigos kilpa
CRC32 32b CRC32 ankstesnių duomenų patikrinimo kodas
PMT formatas
table_id 8b PMT lentelėje yra bet kokia reikšmė, 0x02
section_syntax_indicator 1b yra fiksuotas 1
nulis 1b yra fiksuotas 0
rezervuotas 2b yra fiksuotas iki 11
section_length 12b Šių duomenų ilgis
program_number 16b kanalo numeris, kuris reiškia kanalą, susietą su dabartiniu PMT, vertė yra 0x0001
rezervuotas 2b yra fiksuotas iki 11
version_number 5b Versijos numeris, nustatytas 00000, jei pasikeis PAT, versijos numeris padidės 1
current_next_indicator 1b yra fiksuotas 1
section_number 8b yra fiksuotas 0x00
„last_section_number 8b“ yra fiksuota 0x00
rezervuotas 3b yra fiksuotas iki 111
PCR_PID 13b TS paketo, kuriame yra PCR (programos atskaitos laikrodis), PID, pažymėtas kaip vaizdo PID
rezervuotas 4b yra fiksuotas iki 1111
program_info_length 12b Informacija apie programą, pažymėta kaip 0x000, reiškia Nr
Pradžios kilpa
„stream_type 8b“ Srauto tipas, ženklas yra „Video“ arba „Audio“ ar kiti duomenys, h.264 kodavimas atitinka 0x1b, „aac“ kodavimas - 0x0f, mp3 kodavimas - 0x03
rezervuotas 3b yra fiksuotas iki 111
elementary_PID 13b PID, atitinkantis srauto tipą
rezervuotas 4b yra fiksuotas iki 1111
ES_info_length 12b Aprašymo informacija, pažymėta kaip 0x000, reiškia Nr
Pabaigos kilpa
CRC32 32b CRC32 ankstesnių duomenų patikrinimo kodas
(2) pes sluoksnis
Peso sluoksnis prie kiekvieno vaizdo / garso kadro prideda laiko žymą ir kitą informaciją. Pes pakete yra daug turinio, o mes paliekame tik dažniausiai naudojamus.
pes pradžios kodas 3B pradžios kodas, nustatytas 0x000001
srauto ID 1B garso vertė (0xc0-0xdf), paprastai 0xc0
Vaizdo įrašo vertė (0xe0-0xef), paprastai 0xe0
pes paketo ilgis 2B už pes duomenų ilgis, 0 reiškia neribotą ilgį,
Tik vaizdo įrašo duomenų ilgis viršys 0xffff
1B vėliava paprastai įgyja reikšmę 0x80, o tai reiškia, kad duomenys nėra šifruoti, neturi prioriteto ir yra atsarginės duomenų kopijos
1B žymos reikšmė 0x80 reiškia tik taškus, vertė 0xc0 reiškia taškus ir taškus
pes duomenų ilgis 1B Šių duomenų ilgis, vertė yra 5 arba 10
taškų 5B 33 bitų vertė
dts 5B 33 bitų vertė
pts yra ekrano laiko žymė, o dts - dekodavimo laiko žymė. Abi laiko žymos reikalingos vaizdo duomenims. Garso duomenų taškai ir taškai yra vienodi, todėl reikia tik taškų. Yra dvi laiko žymės, taškai ir dts, kuriuos sukelia B kadrai. I ir P rėmelių taškai yra lygūs dts. Jei vaizdo įraše nėra B kadrų, taškai visada bus tokie patys kaip ir DTS. Skaitykite vaizdo kadrus nuosekliai iš failo, o ištrauktų kadrų seka sutampa su dts seka. DTS algoritmas yra gana paprastas, pakanka pradinės vertės + prieaugio, taškų skaičiavimas yra sudėtingesnis ir prie dts reikia pridėti poslinkį.
Garso pesuose yra tik taškai (tokie patys kaip ir dts), vaizdo įrašo I ir P kadrai turi turėti abi laiko žymes, o vaizdo įrašo B kadrui reikia tik taškų (tokių pat kaip ir dts). Norėdami supakuoti taškus ir taškus, turite žinoti vaizdo įrašo kadro tipą, tačiau mes negalime įvertinti kadro tipo pagal sudėtinio rodinio formatą. Norėdami gauti rėmelio tipą, turite išanalizuoti „h.264“ turinį.
pavyzdžiui:
IPBBBP
Skaitymo tvarka: 1 2 3 4 5 6
dts tvarka: 1 2 3 4 5 6
taškų tvarka: 1 5 3 2 4 6
Vaizdo DTS algoritmas pagal pareikalavimą:
dts = pradinė vertė + 90000 / video_frame_rate, pradinę vertę galima nurodyti savavališkai, tačiau geriausia neimti 0, video_frame_rate yra kadrų dažnis, pvz., 23, 30.
taškų ir taškų dydis yra pagrįstas laiko skale, 1s = 90000 laiko skalė, vienas kadras turėtų būti 90000 / video_frame_rate laiko skalė.
Vieno kadro laiko skalę padalijus iš atrankos dažnio, galima konvertuoti į vieno kadro atkūrimo trukmę
Pagal poreikį garso DTS algoritmas:
dts = pradinė vertė + (90000 * garso pavyzdžių_kadras) / garso_pavyzdžio norma, garso_pavyzdžių_kadro vertė yra susijusi su kodeku, aac vertė yra 1024, mp3 reikšmė yra 1158, garso_ mėginio norma yra atrankos dažnis, pvz., 24000, 41000. AAC iššifruoja kadrą 1024 pavyzdžiai vienam kanalui, tai reiškia, kad kadro trukmė yra 1024 / sample_rate sekundės. Taigi kiekvieno kadro laiko žymė yra 0, 1024 / pavyzdžio norma, ..., 1024 * n / pavyzdžio norma.
Tiesioginio vaizdo įrašo taškuose ir taškuose turėtų būti tiesiogiai naudojamas laikas tiesioginiame duomenų sraute, jie neturėtų būti skaičiuojami pagal formules.
(3) es sluoksnis
Es sluoksnis reiškia garso ir vaizdo duomenis, mes pristatome tik h.264 vaizdo ir „AAC“ garsą.
h.264 vaizdo įrašas:
Norėdami supakuoti „h.264“ duomenis, prie vaizdo duomenų turime pridėti „nalu“ (tinklo abstrakcijos sluoksnio vienetą). Nalu apima nalu antraštę ir nalu tipą. „Nalu“ antraštė yra fiksuota kaip 0x00000001 (kadro pradžia) arba 0x000001 (kadre). „H.264“ duomenys sudaromi iš griežinėlių, o riekelių turinį sudaro: vaizdo įrašai, sps, pps ir kt. Nalu tipas lemia vėlesnių h.264 duomenų turinį.
F 1b draudžiamas_ nulis_bit, h.264 numato, kad jis turi būti 0
NRI 2b nal_ref_idc, vertė 0 ~ 3, rodo šio nalu svarbą, I kadras, sps, pps paprastai užima 3, P kadras paprastai užima 2, o B kadras paprastai užima 0
5b tipas nurodomas toliau pateiktoje lentelėje
nal_unit_type aprašymas
0 nenaudojamas
1 Ne IDR vaizdas, IDR nurodo pagrindinį rėmelį
2 skiltelių skaidinys A
3 skiltelių pertvara B
|
Įveskite el. Pašto adresą, kad gautumėte staigmeną
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikanų kalba
sq.fmuser.org -> albanų
ar.fmuser.org -> arabų
hy.fmuser.org -> armėnas
az.fmuser.org -> azerbaidžanietis
eu.fmuser.org -> baskų
be.fmuser.org -> baltarusių
bg.fmuser.org -> bulgarų
ca.fmuser.org -> katalonų
zh-CN.fmuser.org -> kinų (supaprastinta)
zh-TW.fmuser.org -> kinų (tradicinė)
hr.fmuser.org -> kroatų
cs.fmuser.org -> čekų
da.fmuser.org -> danų
nl.fmuser.org -> Olandų
et.fmuser.org -> estų
tl.fmuser.org -> filipinietis
fi.fmuser.org -> suomių
fr.fmuser.org -> prancūzų
gl.fmuser.org -> Galisų
ka.fmuser.org -> gruzinų
de.fmuser.org -> vokiečių kalba
el.fmuser.org -> graikų
ht.fmuser.org -> Haičio kreolis
iw.fmuser.org -> hebrajų
hi.fmuser.org -> hindi
hu.fmuser.org -> vengrų
is.fmuser.org -> islandų
id.fmuser.org -> indoneziečių
ga.fmuser.org -> airių
it.fmuser.org -> italų kalba
ja.fmuser.org -> japonų
ko.fmuser.org -> korėjiečių
lv.fmuser.org -> latvių
lt.fmuser.org -> lietuvis
mk.fmuser.org -> makedonų
ms.fmuser.org -> malajiečių
mt.fmuser.org -> maltiečių
no.fmuser.org -> norvegų
fa.fmuser.org -> persų
pl.fmuser.org -> lenkų
pt.fmuser.org -> portugalų
ro.fmuser.org -> rumunų
ru.fmuser.org -> rusų
sr.fmuser.org -> serbų
sk.fmuser.org -> slovakų
sl.fmuser.org -> slovėnų
es.fmuser.org -> ispanų
sw.fmuser.org -> svahili kalba
sv.fmuser.org -> švedų
th.fmuser.org -> Tailando
tr.fmuser.org -> turkų
uk.fmuser.org -> ukrainietis
ur.fmuser.org -> urdu
vi.fmuser.org -> vietnamiečių
cy.fmuser.org -> Valų kalba
yi.fmuser.org -> jidiš
„FMUSER Wirless“ perduoda vaizdo ir garso įrašus lengviau!
Susisiekite su mumis
Adresas:
Nr. 305 kambarys „HuiLan“ pastatas Nr. 273 Huanpu Road Guangdžou, Kinija 510620
Kategorijos
Naujienlaiškis