FMUSER Wirless Overfør video og lyd lettere.
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albansk
ar.fmuser.org -> arabisk
hy.fmuser.org -> Armensk
az.fmuser.org -> aserbajdsjansk
eu.fmuser.org -> baskisk
be.fmuser.org -> hviderussisk
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalansk
zh-CN.fmuser.org -> Kinesisk (forenklet)
zh-TW.fmuser.org -> Kinesisk (traditionelt)
hr.fmuser.org -> Kroatisk
cs.fmuser.org -> Tjekkisk
da.fmuser.org -> dansk
nl.fmuser.org -> Hollandsk
et.fmuser.org -> estisk
tl.fmuser.org -> filippinsk
fi.fmuser.org -> finsk
fr.fmuser.org -> Fransk
gl.fmuser.org -> galicisk
ka.fmuser.org -> Georgisk
de.fmuser.org -> tysk
el.fmuser.org -> Greek
ht.fmuser.org -> haitisk kreolsk
iw.fmuser.org -> hebraisk
hi.fmuser.org -> hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandsk
id.fmuser.org -> Indonesisk
ga.fmuser.org -> Irsk
it.fmuser.org -> Italiensk
ja.fmuser.org -> japansk
ko.fmuser.org -> koreansk
lv.fmuser.org -> lettisk
lt.fmuser.org -> Litauisk
mk.fmuser.org -> Makedonsk
ms.fmuser.org -> malaysisk
mt.fmuser.org -> maltesisk
no.fmuser.org -> Norwegian
fa.fmuser.org -> persisk
pl.fmuser.org -> polsk
pt.fmuser.org -> portugisisk
ro.fmuser.org -> Romanian
ru.fmuser.org -> russisk
sr.fmuser.org -> serbisk
sk.fmuser.org -> Slovakisk
sl.fmuser.org -> Slovensk
es.fmuser.org -> spansk
sw.fmuser.org -> swahili
sv.fmuser.org -> svensk
th.fmuser.org -> Thai
tr.fmuser.org -> tyrkisk
uk.fmuser.org -> ukrainsk
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesisk
cy.fmuser.org -> walisisk
yi.fmuser.org -> Jiddisch
HLS og Http Live Streaming er protokoller til streaming i realtid defineret af Apple. HLS implementeres baseret på HTTP-protokollen. Transmissionsindholdet indeholder to dele, den ene er M3U8-beskrivelsesfilen, og den anden er TS-mediefilen.
1. M3U8-fil
Mediefilen er beskrevet i tekst, som består af en række tags.
#EXTM3U
# EKSTRE-X-MÅLVARIGHED: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: Den første linje i hver M3U8-fil skal være dette tag.
# EXT-X-MÅLVARIGHED: Angiv den maksimale mediesegmenttidslængde (sekunder). Den tid, der er angivet i #EXTINF, skal være mindre end eller lig med denne maksimale værdi. Denne værdi kan kun vises en gang.
#EXTINF: Beskriv længden af en enkelt mediefil. Mediefiler følger, såsom ./0.ts
2. ts-fil
Ts-filen er en transportstrømfil, det vigtigste videokodningsformat er h264 / mpeg4, og lyden er acc / MP3.
Ts-filen er opdelt i tre lag: ts-lag Transportstrøm, pes-lag Pakke Elementarstrøm, es-lag Elementærstrøm. ES-laget er lyd- og videodataene, og pes-laget er datarammebeskrivelsesinformationen, såsom et tidsstempel tilføjet til lyd- og videodataene. Ts-laget er at tilføje de nødvendige oplysninger til identifikation og transmission af datastrømmen i pes-laget
Bemærk: Detaljerne er som følger
(1) ts lag Ts pakkestørrelse er fastlagt til 188 bytes, og ts laget er opdelt i tre dele: ts header, tilpasningsfelt og nyttelast. Ts-headeren er fastgjort til 4 bytes; tilpasningsfeltet eksisterer måske eller måske ikke, og dets hovedfunktion er at udfylde data mindre end 188 byte; nyttelasten er pes-data.
ts overskrift
sync_byte 8b synkroniseringsbyte, fast til 0x47
transport_error_indicator 1b Transportfejlindikator, der indikerer, at der er en ubrugelig byte efter tilpasningsfeltet i ts-overskriften, normalt 0, denne byte tælles i længden af tilpasningsfeltet
payload_unit_start_indicator 1b Startindikator for belastningsenhed, der er markeret som 1 i begyndelsen af en komplet datapakke
transportprioritet 1b Transportprioritet, 0 har lav prioritet, 1 er høj prioritet, normalt 0
pid 13b pid-værdi
transport_scrambling_control 2b Transport scrambling control, 00 betyder ukrypteret
adaptation_field_control 2b Hvorvidt tilpasningsfeltet skal inkluderes, er '00' reserveret; '01' betyder intet tilpasningsfelt, kun nyttelasten '10' betyder kun tilpasningsfeltet, ingen nyttelast '11' betyder, at tilpasningen også er inkluderet Domæne og nyttelast.
continuity_counter 4b Stigende tæller fra 0-f tager startværdien ikke nødvendigvis 0, men den skal være kontinuerlig
Indholdet af ts-laget identificeres af PID-værdien, og hovedindholdet inkluderer: PAT-tabel, PMT-tabel, lydstrøm og videostream. For at analysere ts-strømmen skal du først finde PAT-tabellen, så længe du finder PAT, kan du finde PMT, og derefter kan du finde lyd- og videostreams. PAT-værdien for PAT-tabellen er fastgjort til 0. PAT-tabellen og PMT-tabellen skal indsættes i ts-strømmen regelmæssigt, fordi brugeren til enhver tid kan deltage i ts-strømmen, dette interval er relativt lille, normalt hvert par videorammer for at tilføje PAT og PMT. PAT- og PMT-tabeller er nødvendige, og andre tabeller såsom SDT (servicebeskrivelsestabel) kan også tilføjes, men hls-strømmen kan afspilles, så længe der er PAT og PMT.
PAT-tabel: Hovedfunktionen er at indikere PID-værdien for PMT-tabellen.
PMT-tabel: Dens hovedfunktion er at specificere PID-værdien for lyd- og videostrømmen.
Audiostream / videostream: Bær lyd- og videoindhold.
tilpasning
tilpasningsfelt_længde 1B tilpasningsfeltlængde, antallet af byte bagved
flag 1B tager 0x50 for at angive PCR eller 0x40 for ikke at inkludere PCR
PCR 5B Programurreference, programurreference, bruges til at gendanne systemtidsuret STC (System Time Clock) i overensstemmelse med koderen.
stuffing_bytes xB stuffing bytes, værdien er 0xff
Længden af tilpasningsområdet skal omfatte en byte, der er identificeret ved transmissionsfejlindikatoren. pcr er programurreferencen, pcr, dts, pts er alle samplede værdier for det samme systemur, pcr er trinvist, så det kan indstilles som dts-værdi, lyddata har ikke brug for pcr. Hvis der ikke er noget felt, kan ipad spille, men vlc kan ikke spille. Når du pakker ts-strømmen, har PAT- og PMT-tabellerne ikke et tilpasningsfelt. Hvis længden ikke er nok, skal du blot udfylde 0xff. Både videostream og lydstream skal tilføje et tilpasningsfelt, som normalt føjes til den første ts-pakke og den sidste ts-pakke i en ramme, og den midterste ts-pakke tilføjes ikke.
PAT-format
table_id 8b PAT-tabel er fastgjort til 0x00
section_syntax_indicator 1b er fastsat til 1
nul 1b er fast på 0
reserveret 2b er fast til 11
section_length 12b Længden af følgende data
transport_stream_id 16b Transportstrøm-id, fast som 0x0001
reserveret 2b er fast til 11
version_nummer 5b Versionsnummer, fastsat til 00000, hvis PAT ændres, vil versionsnummeret stige med 1
current_next_indicator 1b er fastgjort til 1, hvilket indikerer, at denne PAT-tabel kan bruges, hvis den er 0, vent på den næste PAT-tabel
sektionsnummer 8b er fastgjort til 0x00
last_section_number 8b er fastsat til 0x00
Start loop
programnummer 16b Når programnummeret er 0x0000, betyder det, at dette er NIT, når programnummeret er 0x0001, betyder det, at dette er PMT
reserveret 3b er fast til 111
PID 13b PID-værdi svarende til indholdet af programnummeret
Afslut løkke
CRC32 32b CRC32-kontrolkode for de tidligere data
PMT-format
tabel_id 8b PMT-tabel har en hvilken som helst værdi, 0x02
section_syntax_indicator 1b er fastsat til 1
nul 1b er fast på 0
reserveret 2b er fast til 11
section_length 12b Længden af følgende data
programnummer 16b kanalnummer, hvilket betyder den kanal, der er knyttet til den aktuelle PMT, værdien er 0x0001
reserveret 2b er fast til 11
version_nummer 5b Versionsnummer, fastsat til 00000, hvis PAT ændres, vil versionsnummeret stige med 1
strøm_næste_indikator 1b er fast på 1
sektionsnummer 8b er fastgjort til 0x00
last_section_number 8b er fastsat til 0x00
reserveret 3b er fast til 111
PCR_PID 13b PID'en for TS-pakken, hvor PCR (programreferenceur) er placeret, udpeget som video-PID
reserveret 4b er fast til 1111
program_info_length 12b Information om programbeskrivelse, betegnet 0x000 betyder nr
Start loop
stream_type 8b Streamtype, mærke er video eller lyd eller andre data, h.264-kodning svarer til 0x1b, aac-kodning svarer til 0x0f, mp3-kodning svarer til 0x03
reserveret 3b er fast til 111
elementary_PID 13b PID svarende til stream_type
reserveret 4b er fast til 1111
ES_info_length 12b Beskrivelse af oplysninger, betegnet 0x000 betyder nr
Afslut løkke
CRC32 32b CRC32-kontrolkode for de tidligere data
(2) pes-lag
Pes-laget tilføjer tidsstempel og anden information til hver video / lydramme. Pes-pakken indeholder meget indhold, og vi efterlader kun de mest anvendte.
pes startkode 3B startkode, fast på 0x000001
stream id 1B lydværdi (0xc0-0xdf), normalt 0xc0
Video værdi (0xe0-0xef), normalt 0xe0
pes-pakkelængde 2B Længden af pes-data bagved, 0 betyder ubegrænset længde,
Kun videodatalængden overstiger 0xffff
Flag 1B tager normalt værdien 0x80, hvilket betyder, at dataene ikke er krypteret, ikke har nogen prioritet og sikkerhedskopieres data
Flag 1B-værdi 0x80 betyder kun pts, værdi 0xc0 betyder pts og dts
pes datalængde 1B Længden af følgende data, værdien er 5 eller 10
pts 5B 33bit værdi
dts 5B 33bit værdi
pts er skærmens tidsstempel og dts er afkodningens tidsstempel. Begge tidsstempler kræves til videodata. Pts og dts af lyddata er de samme, så der er kun brug for pts. Der er to tidsstempler, pts og dts, der er forårsaget af B-rammer. Punktene i I- og P-rammer er lig med dts. Hvis en video ikke har nogen B-rammer, vil pts altid være den samme som dts. Læs videobillederne sekventielt fra filen, og sekvensen af de udpakkede rammer er den samme som dts-sekvensen. Dts-algoritmen er relativt enkel, den oprindelige værdi + inkrement er nok, pts-beregningen er mere kompliceret, og forskydningen skal føjes til dts.
Der er kun pts i audio pes (samme som dts), I- og P-rammerne for videoen skal have begge tidsstempler, og video B-rammen har kun brug for pts (det samme som dts). For at pakke pts og dts skal du kende videobilledtypen, men vi kan ikke bedømme rammetypen gennem containerformatet. Du skal analysere h.264-indholdet for at få rammetypen.
for eksempel:
IPBBBP
Læserækkefølge: 1 2 3 4 5 6
dts rækkefølge: 1 2 3 4 5 6
pt rækkefølge: 1 5 3 2 4 6
On-demand video dts algoritme:
dts = startværdi + 90000 / video_frame_rate, den oprindelige værdi kan specificeres vilkårligt, men det er bedst ikke at tage 0, video_frame_rate er billedhastigheden, såsom 23, 30.
pts og dts er baseret på tidsskala, 1s = 90000 tidsskala, en ramme skal være 90000 / video_frame_rate tidsskala.
At dividere tidsrammen for et billede efter samplingsfrekvensen kan konverteres til afspilningens varighed på et billede
On-demand lyd dts algoritme:
dts = startværdi + (90000 * audio_samples_per_frame) / audio_sample_rate, værdien af audio_samples_per_frame er relateret til codec, aac-værdi er 1024, mp3-værdi er 1158, audio_sample_rate er samplingshastighed, såsom 24000, 41000. AAC afkoder en ramme på 1024 prøver pr. Kanal, hvilket betyder, at varighed af en ramme er 1024 / sample_rate sekunder. Så tidsstemplet for hver ramme er 0, 1024 / sample_rate, ..., 1024 * n / sample_rate seconds.
Dts og pts i livevideoen skal bruge tiden i live datastream direkte og skal ikke beregnes med formler.
(3) es lag
ES-laget refererer til lyd- og videodata, vi introducerer kun h.264-video og aac-lyd.
h.264-video:
For at pakke h.264-dataene skal vi tilføje en nalu (Network Abstraction Layer-enhed) til videodataene. Nalu inkluderer nalu-overskriften og nalu-typen. Nalu-overskriften er fastgjort til 0x00000001 (start af ramme) eller 0x000001 (i ramme). Dataene fra h.264 er sammensat af udsnit, og indholdet af udsnittene inkluderer: video, sps, pps osv. Nalu-typen bestemmer indholdet af de efterfølgende h.264-data.
F 1b forbudt_zero_bit, h.264 bestemmer, at den skal være 0
NRI 2b nal_ref_idc, værdi 0 ~ 3, angiver vigtigheden af denne nalu, I-ramme, sps, pps tager normalt 3, P-ramme tager normalt 2, og B-ramme tager normalt 0
Type 5b henvises til nedenstående tabel
beskrivelse af nal_unit_type
0 ikke brugt
1 Ikke-IDR-billede, IDR henviser til nøgleramme
2 skive partition A
3 skive partition B
|
Indtast e-mail for at få en overraskelse
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikaans
sq.fmuser.org -> albansk
ar.fmuser.org -> arabisk
hy.fmuser.org -> Armensk
az.fmuser.org -> aserbajdsjansk
eu.fmuser.org -> baskisk
be.fmuser.org -> hviderussisk
bg.fmuser.org -> Bulgarian
ca.fmuser.org -> Catalansk
zh-CN.fmuser.org -> Kinesisk (forenklet)
zh-TW.fmuser.org -> Kinesisk (traditionelt)
hr.fmuser.org -> Kroatisk
cs.fmuser.org -> Tjekkisk
da.fmuser.org -> dansk
nl.fmuser.org -> Hollandsk
et.fmuser.org -> estisk
tl.fmuser.org -> filippinsk
fi.fmuser.org -> finsk
fr.fmuser.org -> Fransk
gl.fmuser.org -> galicisk
ka.fmuser.org -> Georgisk
de.fmuser.org -> tysk
el.fmuser.org -> Greek
ht.fmuser.org -> haitisk kreolsk
iw.fmuser.org -> hebraisk
hi.fmuser.org -> hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandsk
id.fmuser.org -> Indonesisk
ga.fmuser.org -> Irsk
it.fmuser.org -> Italiensk
ja.fmuser.org -> japansk
ko.fmuser.org -> koreansk
lv.fmuser.org -> lettisk
lt.fmuser.org -> Litauisk
mk.fmuser.org -> Makedonsk
ms.fmuser.org -> malaysisk
mt.fmuser.org -> maltesisk
no.fmuser.org -> Norwegian
fa.fmuser.org -> persisk
pl.fmuser.org -> polsk
pt.fmuser.org -> portugisisk
ro.fmuser.org -> Romanian
ru.fmuser.org -> russisk
sr.fmuser.org -> serbisk
sk.fmuser.org -> Slovakisk
sl.fmuser.org -> Slovensk
es.fmuser.org -> spansk
sw.fmuser.org -> swahili
sv.fmuser.org -> svensk
th.fmuser.org -> Thai
tr.fmuser.org -> tyrkisk
uk.fmuser.org -> ukrainsk
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamesisk
cy.fmuser.org -> walisisk
yi.fmuser.org -> Jiddisch
FMUSER Wirless Overfør video og lyd lettere.
Kontakt
Adresse:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Kina 510620
Kategorier
Nyhedsbrev