FMUSER Wirless pārraida video un audio vieglāk!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikands
sq.fmuser.org -> albāņu
ar.fmuser.org -> arābu
hy.fmuser.org -> armēņu
az.fmuser.org -> azerbaidžāņu
eu.fmuser.org -> basku valoda
be.fmuser.org -> baltkrievu
bg.fmuser.org -> bulgāru valoda
ca.fmuser.org -> katalāņu
zh-CN.fmuser.org -> ķīniešu (vienkāršotā)
zh-TW.fmuser.org -> ķīniešu (tradicionālā)
hr.fmuser.org -> horvātu
cs.fmuser.org -> čehu
da.fmuser.org -> dāņu
nl.fmuser.org -> holandiešu
et.fmuser.org -> igauņu
tl.fmuser.org -> filipīniešu
fi.fmuser.org -> somu
fr.fmuser.org -> franču valoda
gl.fmuser.org -> galisiešu valoda
ka.fmuser.org -> gruzīnu
de.fmuser.org -> vācu
el.fmuser.org -> grieķu
ht.fmuser.org -> Haiti kreolu
iw.fmuser.org -> ebreju
hi.fmuser.org -> hindi
hu.fmuser.org -> ungāru valoda
is.fmuser.org -> islandiešu
id.fmuser.org -> indonēziešu
ga.fmuser.org -> īru
it.fmuser.org -> itāļu
ja.fmuser.org -> japāņu
ko.fmuser.org -> korejiešu
lv.fmuser.org -> latviski
lt.fmuser.org -> lietuviešu
mk.fmuser.org -> maķedoniešu
ms.fmuser.org -> malajiešu
mt.fmuser.org -> maltiešu
no.fmuser.org -> norvēģu
fa.fmuser.org -> persiešu
pl.fmuser.org -> poļu
pt.fmuser.org -> portugāļu
ro.fmuser.org -> rumāņu
ru.fmuser.org -> krievu valoda
sr.fmuser.org -> serbu
sk.fmuser.org -> slovāku
sl.fmuser.org -> slovēņu
es.fmuser.org -> spāņu
sw.fmuser.org -> svahili
sv.fmuser.org -> zviedru
th.fmuser.org -> taizemiešu
tr.fmuser.org -> turku
uk.fmuser.org -> ukraiņu
ur.fmuser.org -> urdu valoda
vi.fmuser.org -> vjetnamiešu
cy.fmuser.org -> velsiešu
yi.fmuser.org -> jidišs
HLS un Http Live Streaming ir reāllaika straumēšanas protokoli, kurus definē Apple. HLS tiek ieviesta, pamatojoties uz HTTP protokolu. Pārraides saturs ietver divas daļas, viena ir M3U8 apraksta fails, bet otra - TS multivides fails.
1. M3U8 fails
Multivides fails ir aprakstīts tekstā, kas sastāv no tagu sērijas.
#EXTM3U
# EXT-X-MĒRĶA ILGUMS: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Katra M3U8 faila pirmajai rindai jābūt šai atzīmei.
# EXT-X-TARGETDURATION: norādiet maksimālo multivides segmenta laika garumu (sekundēs). Laikā, kas norādīts #EXTINF, jābūt mazākam vai vienādam ar šo maksimālo vērtību. Šī vērtība var parādīties tikai vienu reizi.
#EXTINF: aprakstiet viena multivides faila garumu. Tālāk seko multivides faili, piemēram, ./0.ts
2. ts fails
Ts fails ir transporta straumes fails, galvenais video kodēšanas formāts ir h264 / mpeg4, un audio ir acc / MP3.
TS fails ir sadalīts trīs slāņos: ts slāņa transporta plūsma, pes slāņa pakešu elementārā plūsma, es slāņa elementārā straume. Es slānis ir audio un video dati, un pes slānis ir datu ietvara apraksta informācija, piemēram, laika zīmogs, kas pievienots audio un video datiem. Ts slānim ir jāpievieno nepieciešamā informācija datu plūsmas identificēšanai un pārsūtīšanai pes slānī
Piezīme. Sīkāka informācija ir šāda
(1) ts slānis Ts pakešu lielums ir fiksēts 188 baitos, un ts slānis ir sadalīts trīs daļās: ts galvene, adaptācijas lauks un lietderīgā slodze. Ts galvene ir fiksēta 4 baiti; adaptācijas lauks var pastāvēt vai nebūt, un tā galvenā funkcija ir aizpildīt datus, kas mazāki par 188 baitiem; lietderīgā slodze ir pes dati.
ts galvene
sync_byte 8.b sinhronizācijas baits, fiksēts uz 0x47
transport_error_indicator 1b Transporta kļūdas indikators, kas norāda, ka pēc ts galvenes adapt lauka ir bezjēdzīgs baits, parasti 0, šis baits tiek ieskaitīts adapt lauka garumā
payload_unit_start_indicator 1b Kravas vienības sākuma indikators, kas pilnīgas datu paketes sākumā ir atzīmēts kā 1
transport_priority 1b Transporta prioritāte, 0 ir zema prioritāte, 1 ir augsta prioritāte, parasti 0
pid 13b pid vērtība
transport_scrambling_control 2b Transporta kodēšanas vadība, 00 nozīmē nešifrētu
adaptation_field_control 2b Vai iekļaut adaptācijas lauku, “00” ir rezervēts; “01” nozīmē, ka nav pielāgošanas lauka, ir tikai lietderīgā slodze; “10” nozīmē tikai adaptācijas lauku, bez lietderīgās slodzes; “11” nozīmē, ka adaptācija ietver arī domēnu un lietderīgo slodzi.
continuity_counter 4b Palielinot skaitītāju no 0-f, sākuma vērtībai nav obligāti jābūt 0, bet tai jābūt nepārtrauktai
Ts slāņa saturs tiek identificēts pēc PID vērtības, un galvenais saturs ietver: PAT tabulu, PMT tabulu, audio straumi un video straumi. Lai parsētu ts straumi, vispirms jāatrod PAT tabula, kamēr atrodat PAT, varat atrast PMT, un pēc tam varat atrast audio un video straumes. PAT tabulas PID vērtība ir fiksēta uz 0. PAT tabula un PMT tabula regulāri jāievieto ts straumē, jo lietotājs var pievienoties ts straumei jebkurā laikā, šis intervāls ir salīdzinoši mazs, parasti ik pēc pāris video kadri, lai pievienotu PAT un PMT. PAT un PMT tabulas ir nepieciešamas, un var pievienot arī citas tabulas, piemēram, SDT (pakalpojumu apraksta tabula), taču hls straumi var atskaņot, kamēr ir PAT un PMT.
PAT tabula: tās galvenā funkcija ir norādīt PMT tabulas PID vērtību.
PMT tabula: tās galvenā funkcija ir norādīt audio un video straumes PID vērtību.
Audio straume / video straume: veiciet audio un video saturu.
adaptācija
adaptation_field_length 1B adaptācijas lauka garums, aiz baitu skaits
karodziņš 1B prasa 0x50, lai norādītu PCR, vai 0x40, lai neiekļautu PCR
PCR 5B programmas pulksteņa atsauce, programmas pulksteņa atsauce, ko izmanto, lai atjaunotu sistēmas laika pulksteni STC (System Time Clock) atbilstoši kodētājam.
stuffing_bytes xB pildīšanas baiti, vērtība ir 0xff
Pielāgošanas apgabala garumā ietilpst viens baits, ko identificē pārraides kļūdas indikators. pcr ir programmas pulksteņa atsauce, pcr, dts, pts ir visas tā paša sistēmas pulksteņa izlases vērtības, pcr ir inkrementāls, tāpēc to var iestatīt kā dts vērtību, audio datiem nav nepieciešams pcr. Ja lauka nav, iPad var atskaņot, bet vlc nevar. Iepakojot ts straumi, PAT un PMT tabulām nav adaptācijas lauka. Ja garums nav pietiekams, vienkārši aizpildiet 0xff. Gan video straumei, gan audio straumei jāpievieno adaptācijas lauks, kas parasti tiek pievienots kadra pirmajai ts paketei un pēdējai ts paketei, un vidējā ts pakete netiek pievienota.
PAT formāts
table_id 8b PAT tabula ir fiksēta uz 0x00
section_syntax_indicator 1b ir fiksēts uz 1
nulle 1b ir fiksēta uz 0
rezervētais 2.b ir fiksēts uz 11
section_length 12b Šo datu garums
transport_stream_id 16b Transporta straumes ID, fiksēts kā 0x0001
rezervētais 2.b ir fiksēts uz 11
version_number 5b Versijas numurs, fiksēts uz 00000, ja PAT mainās, versijas numurs palielināsies par 1
current_next_indicator 1b ir fiksēts uz 1, norādot, ka šo PAT tabulu var izmantot, ja tā ir 0, pagaidiet nākamo PAT tabulu
section_number 8b ir fiksēts uz 0x00
last_section_number 8b ir fiksēts uz 0x00
Sākuma cilpa
programmas_numurs 16b Ja programmas numurs ir 0x0000, tas nozīmē, ka tas ir NIT, ja programmas numurs ir 0x0001, tas nozīmē, ka tas ir PMT
rezervētais 3.b ir fiksēts uz 111
PID 13b PID vērtība, kas atbilst programmas numura saturam
Beigu cilpa
CRC32 32b CRC32 iepriekšējo datu pārbaudes kods
PMT formāts
table_id 8b PMT tabulai ir jebkura vērtība 0x02
section_syntax_indicator 1b ir fiksēts uz 1
nulle 1b ir fiksēta uz 0
rezervētais 2.b ir fiksēts uz 11
section_length 12b Šo datu garums
program_number 16b kanāla numurs, kas nozīmē kanālu, kas saistīts ar pašreizējo PMT, vērtība ir 0x0001
rezervētais 2.b ir fiksēts uz 11
version_number 5b Versijas numurs, fiksēts uz 00000, ja PAT mainās, versijas numurs palielināsies par 1
current_next_indicator 1b ir fiksēts uz 1
section_number 8b ir fiksēts uz 0x00
last_section_number 8b ir fiksēts uz 0x00
rezervētais 3.b ir fiksēts uz 111
PCR_PID 13b TS paketes PID, kur atrodas PCR (programmas atsauces pulkstenis), kas apzīmēts kā video PID
rezervētais 4.b ir fiksēts uz 1111
program_info_length 12b Informācija par programmu, kas apzīmēta kā 0x000, nozīmē Nr
Sākuma cilpa
stream_type 8b Straumes tips, atzīme ir Video vai Audio vai citi dati, h.264 kodējums atbilst 0x1b, aac kodējums atbilst 0x0f, mp3 kodējums atbilst 0x03
rezervētais 3.b ir fiksēts uz 111
elementary_PID 13b PID, kas atbilst straumes tipam
rezervētais 4.b ir fiksēts uz 1111
ES_info_length 12b Apraksta informācija, kas apzīmēta kā 0x000, nozīmē Nr
Beigu cilpa
CRC32 32b CRC32 iepriekšējo datu pārbaudes kods
(2) pes slānis
Pes slānis katram video / audio kadram pievieno laika zīmogu un citu informāciju. Pese paketē ir daudz satura, un mēs atstājam tikai visbiežāk lietotos.
pes sākuma kods 3B sākuma kods, fiksēts uz 0x000001
straumes ID 1B audio vērtība (0xc0-0xdf), parasti 0xc0
Video vērtība (0xe0-0xef), parasti 0xe0
pes paketes garums 2B Aiz pes datu garums, 0 nozīmē neierobežotu garumu,
Tikai video datu garums pārsniegs 0xffff
Karodziņš 1B parasti iegūst vērtību 0x80, kas nozīmē, ka dati nav šifrēti, tiem nav prioritātes un dati tiek dublēti
Karoga 1B vērtība 0x80 nozīmē tikai pts, vērtība 0xc0 nozīmē pts un dts
pes datu garums 1B Šo datu garums, vērtība ir 5 vai 10
5B 33 bitu vērtība
dts 5B 33 bitu vērtība
pts ir displeja laika zīmogs un dts ir dekodēšanas laika zīmogs. Abi laika zīmogi ir nepieciešami video datiem. Audio datu punkti un datumi ir vienādi, tāpēc ir nepieciešami tikai punkti. Ir divi laika zīmogi, pts un dts, kurus izraisa B rāmji. I un P rāmju punkti ir vienādi ar dts. Ja videoklipam nav B kadru, punktu punkti vienmēr būs tādi paši kā dts. No faila secīgi lasiet video rāmjus, un izvilkto kadru secība ir tāda pati kā dts secība. DTS algoritms ir salīdzinoši vienkāršs, pietiek ar sākotnējo vērtību + pieaugumu, pts aprēķins ir sarežģītāks, un dts ir jāpievieno nobīde.
Audio pesos ir tikai pts (tas pats, kas dts), video I un P rāmjiem jābūt abiem laika zīmogiem, un video B rāmim ir nepieciešami tikai pt (tādi paši kā dts). Lai iesaiņotu pts un dts, jums jāzina video rāmja tips, taču mēs nevaram spriest par rāmja veidu, izmantojot konteinera formātu. Lai iegūtu rāmja tipu, jums ir jāanalizē h.264 saturs.
piemēram:
IPBBBP
Lasīšanas secība: 1 2 3 4 5 6
secība: 1 2 3 4 5 6
punktu secība: 1 5 3 2 4 6
Video pēc pieprasījuma DTS algoritms:
dts = sākotnējā vērtība + 90000 / video_frame_rate, sākotnējo vērtību var patvaļīgi norādīt, bet vislabāk nav ņemt 0, video_frame_rate ir kadru ātrums, piemēram, 23, 30.
punktu un dts pamatā ir laika skala, 1s = 90000 laika skala, vienam kadram jābūt 90000 / video_frame_rate laika skalam.
Viena kadra laika skalas dalīšanu ar paraugu ņemšanas biežumu var pārveidot par viena kadra atskaņošanas ilgumu
Pēc pieprasījuma audio dts algoritms:
dts = sākotnējā vērtība + (90000 * audio_samples_per_frame) / audio_sample_rate, audio_samples_per_frame vērtība ir saistīta ar kodeku, aac vērtība ir 1024, mp3 vērtība ir 1158, audio_sample_rate ir paraugu ņemšanas ātrums, piemēram, 24000, 41000. AAC atšifrē kadru 1024 paraugi vienā kanālā, kas nozīmē, ka kadra ilgums ir 1024 / sample_rate sekundes. Tātad katra kadra laika zīmogs ir 0, 1024 / sample_rate, ..., 1024 * n / sample_rate sekundes.
Tiešraides video punktiem un punktiem vajadzētu tieši izmantot laiku tiešsaistes datu straumē, un tos nedrīkst aprēķināt pēc formulas.
(3) es slānis
Es slānis attiecas uz audio un video datiem, mēs ieviešam tikai h.264 video un aac audio.
h.264 video:
Lai iesaiņotu h.264 datus, video datiem jāpievieno nalu (tīkla abstrakcijas slāņa vienība). Nalu ietver Nalu galveni un Nalu tipu. Nalu galvene ir fiksēta uz 0x00000001 (kadra sākums) vai 0x000001 (kadrā). H.264 datus veido šķēles, un to saturs ietver: video, sps, pps utt. Nalu tips nosaka turpmāko h.264 datu saturu.
F 1b aizliegts_zero_bit, h.264 nosaka, ka tam jābūt 0
NRI 2b nal_ref_idc, vērtība 0 ~ 3, norāda uz šī nalu nozīmi, I kadrs, sps, pps parasti aizņem 3, P kadrs parasti aizņem 2, un B kadrs parasti aizņem 0
5.b tips attiecas uz tabulu zemāk
nal_unit_type apraksts
0 nav izmantots
1 Attēls, kas nav IDR, IDR attiecas uz atslēgas rāmi
2 šķēļu nodalījums A
3 šķēlumu nodalījums B
|
Ievadiet e-pastu, lai saņemtu pārsteigumu
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikands
sq.fmuser.org -> albāņu
ar.fmuser.org -> arābu
hy.fmuser.org -> armēņu
az.fmuser.org -> azerbaidžāņu
eu.fmuser.org -> basku valoda
be.fmuser.org -> baltkrievu
bg.fmuser.org -> bulgāru valoda
ca.fmuser.org -> katalāņu
zh-CN.fmuser.org -> ķīniešu (vienkāršotā)
zh-TW.fmuser.org -> ķīniešu (tradicionālā)
hr.fmuser.org -> horvātu
cs.fmuser.org -> čehu
da.fmuser.org -> dāņu
nl.fmuser.org -> holandiešu
et.fmuser.org -> igauņu
tl.fmuser.org -> filipīniešu
fi.fmuser.org -> somu
fr.fmuser.org -> franču valoda
gl.fmuser.org -> galisiešu valoda
ka.fmuser.org -> gruzīnu
de.fmuser.org -> vācu
el.fmuser.org -> grieķu
ht.fmuser.org -> Haiti kreolu
iw.fmuser.org -> ebreju
hi.fmuser.org -> hindi
hu.fmuser.org -> ungāru valoda
is.fmuser.org -> islandiešu
id.fmuser.org -> indonēziešu
ga.fmuser.org -> īru
it.fmuser.org -> itāļu
ja.fmuser.org -> japāņu
ko.fmuser.org -> korejiešu
lv.fmuser.org -> latviski
lt.fmuser.org -> lietuviešu
mk.fmuser.org -> maķedoniešu
ms.fmuser.org -> malajiešu
mt.fmuser.org -> maltiešu
no.fmuser.org -> norvēģu
fa.fmuser.org -> persiešu
pl.fmuser.org -> poļu
pt.fmuser.org -> portugāļu
ro.fmuser.org -> rumāņu
ru.fmuser.org -> krievu valoda
sr.fmuser.org -> serbu
sk.fmuser.org -> slovāku
sl.fmuser.org -> slovēņu
es.fmuser.org -> spāņu
sw.fmuser.org -> svahili
sv.fmuser.org -> zviedru
th.fmuser.org -> taizemiešu
tr.fmuser.org -> turku
uk.fmuser.org -> ukraiņu
ur.fmuser.org -> urdu valoda
vi.fmuser.org -> vjetnamiešu
cy.fmuser.org -> velsiešu
yi.fmuser.org -> jidišs
FMUSER Wirless pārraida video un audio vieglāk!
Kontakti
Adrese:
Nr. 305 istaba HuiLan ēka Nr.273 Huanpu Road Guangzhou, Ķīna 510620
Kategorijas
Saņemt jaunumus