FMUSER Wirless Transmet vídeo i àudio més fàcil!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> Albanès
ar.fmuser.org -> Àrab
hy.fmuser.org -> Armeni
az.fmuser.org -> Azerbaidjanès
eu.fmuser.org -> basc
be.fmuser.org -> bielorús
bg.fmuser.org -> Bulgària
ca.fmuser.org -> català
zh-CN.fmuser.org -> Xinès (simplificat)
zh-TW.fmuser.org -> Xinès (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> txec
da.fmuser.org -> Danès
nl.fmuser.org -> Holandès
et.fmuser.org -> estonià
tl.fmuser.org -> filipí
fi.fmuser.org -> finès
fr.fmuser.org -> Francès
gl.fmuser.org -> gallec
ka.fmuser.org -> georgià
de.fmuser.org -> alemany
el.fmuser.org -> Grec
ht.fmuser.org -> crioll haitià
iw.fmuser.org -> Hebreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandès
id.fmuser.org -> indonesi
ga.fmuser.org -> irlandès
it.fmuser.org -> Italià
ja.fmuser.org -> japonès
ko.fmuser.org -> coreà
lv.fmuser.org -> Letó
lt.fmuser.org -> Lituània
mk.fmuser.org -> macedoni
ms.fmuser.org -> Malai
mt.fmuser.org -> maltès
no.fmuser.org -> Noruega
fa.fmuser.org -> persa
pl.fmuser.org -> Polonès
pt.fmuser.org -> Portuguès
ro.fmuser.org -> Romanès
ru.fmuser.org -> rus
sr.fmuser.org -> serbi
sk.fmuser.org -> Eslovac
sl.fmuser.org -> Eslovènia
es.fmuser.org -> Castellà
sw.fmuser.org -> Suahili
sv.fmuser.org -> Suec
th.fmuser.org -> Tai
tr.fmuser.org -> turc
uk.fmuser.org -> ucraïnès
ur.fmuser.org -> urdú
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> gal·lès
yi.fmuser.org -> Yiddish
HLS i Http Live Streaming són protocols per a la transmissió en temps real definits per Apple. HLS s’implementa basant-se en el protocol HTTP. El contingut de la transmissió inclou dues parts, una és el fitxer de descripció M3U8 i l’altra és el fitxer multimèdia TS.
1. Fitxer M3U8
El fitxer multimèdia es descriu en text, que es compon d'una sèrie d'etiquetes.
#EXTM3U
# EXT-X-TARGETDURATION: 5
#EXTINF: 5,
./0.ts
#EXTINF: 5,
./1.ts
# EXTM3U: la primera línia de cada fitxer M3U8 ha de ser aquesta etiqueta.
# EXT-X-TARGETDURATION: especifiqueu la durada màxima del segment de suports (segons). La durada especificada a #EXTINF ha de ser inferior o igual a aquest valor màxim. Aquest valor només pot aparèixer una vegada.
#EXTINF: descriviu la longitud d'un sol fitxer multimèdia. Segueixen fitxers multimèdia, com ara ./0.ts
2. fitxer ts
El fitxer ts és un fitxer de flux de transport, el format principal de codificació de vídeo és h264 / mpeg4 i l'àudio és acc / MP3.
El fitxer ts es divideix en tres capes: flux de transport de capa ts, capa de paquet Elemental Stream, capa de flux elemental. La capa es és les dades d'àudio i vídeo, i la capa pes és la informació de descripció del marc de dades, com ara una marca de temps afegida a les dades d'àudio i vídeo. La capa ts és afegir la informació necessària per a la identificació i transmissió del flux de dades a la capa pes
Nota: Els detalls són els següents
(1) capa ts La mida del paquet ts es fixa en 188 bytes i la capa ts es divideix en tres parts: capçalera ts, camp d'adaptació i càrrega útil. La capçalera ts es fixa en 4 bytes; el camp d'adaptació pot existir o no, i la seva funció principal és omplir dades de menys de 188 bytes; la càrrega útil és de dades de pes.
capçalera ts
byte de sincronització sync_byte 8b, fixat a 0x47
transport_error_indicator 1b Indicador d'error de transport, que indica que hi ha un byte inútil després del camp d'adaptació de la capçalera ts, normalment 0, aquest byte es compta en la longitud del camp d'adaptació
payload_unit_start_indicator 1b Indicador d’inici de la unitat de càrrega, que es marca com a 1 al començament d’un paquet de dades complet
transport_priority 1b Prioritat de transport, 0 és baixa prioritat, 1 és alta prioritat, normalment 0
pid 13b valor pid
transport_scrambling_control 2b Control de codificació del transport, 00 significa que no està xifrat
adaptation_field_control 2b Si s'inclou el camp d'adaptació, es reserva '00'; "01" significa que no hi ha cap camp d'adaptació, només la càrrega útil; "10" significa només el camp d'adaptació, sense càrrega útil; "11" significa que també s'inclou l'adaptació Domini i càrrega útil.
continuity_counter 4b Comptador creixent, de 0-f, el valor inicial no necessàriament pren 0, però ha de ser continu
El contingut de la capa ts s’identifica pel valor PID i el contingut principal inclou: taula PAT, taula PMT, flux d’àudio i flux de vídeo. Per analitzar el flux TS, primer heu de trobar la taula PAT, sempre que trobeu el PAT, trobeu el PMT i, a continuació, trobeu els fluxos d'àudio i vídeo. El valor PID de la taula PAT es fixa en 0. La taula PAT i la taula PMT s'han d'inserir regularment al flux TS, perquè l'usuari pot unir-se al flux TS en qualsevol moment, aquest interval és relativament petit, normalment cada pocs dies fotogrames de vídeo per afegir PAT i PMT. Les taules PAT i PMT són necessàries i també es poden afegir altres taules com SDT (taula de descripció del servei), però es pot reproduir el flux hls sempre que hi hagi PAT i PMT.
Taula PAT: la seva funció principal és indicar el valor PID de la taula PMT.
Taula PMT: la seva funció principal és especificar el valor PID del flux d’àudio i vídeo.
Flux d'àudio / flux de vídeo: transporta contingut d'àudio i vídeo.
adaptació
adaptation_field_length 1B longitud del camp d’adaptació, el nombre de bytes que hi ha darrere
el senyal 1B necessita 0x50 per indicar PCR o 0x40 per no incloure PCR
PCR 5B Program Clock Reference, referència de rellotge de programa, que s’utilitza per recuperar el rellotge de sincronització del sistema STC (System Time Clock) compatible amb el codificador.
stuffing_bytes xB octets de farcit, el valor és 0xff
La longitud de l'àrea d'adaptació inclourà un byte identificat per l'indicador d'error de transmissió. pcr és la referència del rellotge del programa, pcr, dts, pts són valors mostrejats del mateix rellotge del sistema, pcr és incremental, de manera que es pot establir com a valor dts, les dades d'àudio no necessiten pcr. Si no hi ha camp, l'iPad pot jugar, però vlc no pot jugar. En empaquetar el flux TS, les taules PAT i PMT no tenen un camp d'adaptació. Si la longitud no és suficient, només cal que empleneu 0xff. Tant el flux de vídeo com el flux d’àudio han d’afegir un camp d’adaptació, que normalment s’afegeix al primer paquet ts i a l’últim paquet ts d’un marc, i no s’afegeix el paquet ts mitjà.
Format PAT
table_id 8b La taula PAT es fixa a 0x00
section_syntax_indicator 1b està fixat a 1
zero 1b està fixat en 0
2b reservat està fixat a 11
section_length 12b La longitud de les dades següents
transport_stream_id 16b Identificador de flux de transport, fixat com a 0x0001
2b reservat està fixat a 11
número_versió 5b Número de versió, fixat a 00000, si PAT canvia, el número de versió augmentarà en 1
current_next_indicator 1b està fixat a 1, cosa que indica que es pot utilitzar aquesta taula PAT; si és 0, espereu la següent taula PAT
secció_número 8b està fixat a 0x00
last_section_number 8b està fixat a 0x00
start loop
número_programa 16b Quan el número de programa és 0x0000, significa que és NIT, quan el número de programa és 0x0001, vol dir que és PMT
3b reservat està fixat a 111
PID 13b Valor PID corresponent al contingut del número del programa
Bucle final
CRC32 32b CRC32 comprova el codi de les dades anteriors
Format PMT
table_id 8b La taula PMT té qualsevol valor, 0x02
section_syntax_indicator 1b està fixat a 1
zero 1b està fixat en 0
2b reservat està fixat a 11
section_length 12b La longitud de les dades següents
número_programa número de canal 16b, que significa el canal associat al PMT actual, el valor és 0x0001
2b reservat està fixat a 11
número_versió 5b Número de versió, fixat a 00000, si PAT canvia, el número de versió augmentarà en 1
current_next_indicator 1b està fixat a 1
secció_número 8b està fixat a 0x00
last_section_number 8b està fixat a 0x00
3b reservat està fixat a 111
PCR_PID 13b El PID del paquet TS on es troba PCR (rellotge de referència del programa), designat com el PID de vídeo
4b reservat està fixat a 1111
program_info_length 12b Informació de la descripció del programa, designada com a 0x000, significa que no
start loop
stream_type 8b Tipus de stream, la marca és vídeo o àudio o altres dades, la codificació h.264 correspon a 0x1b, la codificació aac correspon a 0x0f, la codificació mp3 correspon a 0x03
3b reservat està fixat a 111
elementary_PID 13b PID corresponent a stream_type
4b reservat està fixat a 1111
ES_info_length 12b Informació de la descripció, designada com a 0x000, significa que no
Bucle final
CRC32 32b CRC32 comprova el codi de les dades anteriors
(2) capa de pes
La capa de pes afegeix marca de temps i altra informació a cada marc de vídeo / àudio. El paquet pes conté molt contingut i només en deixem els més utilitzats.
pes codi inicial 3B codi inicial, fixat en 0x000001
valor d'àudio de l'identificador de flux 1B (0xc0-0xdf), normalment 0xc0
Valor del vídeo (0xe0-0xef), normalment 0xe0
pes longitud del paquet 2B La longitud de les dades del pes darrere, 0 significa una longitud il·limitada,
Només la durada de les dades de vídeo superarà 0xffff
El senyalador 1B sol adoptar el valor 0x80, el que significa que les dades no estan xifrades, no tenen prioritat i es fan còpies de seguretat de les dades
El valor 1x0 de la marca 80B només significa pts, el valor 0xc0 significa pts i dts
pes longitud de les dades 1B La longitud de les dades següents, el valor és de 5 o 10
valor 5b de 33 bits
valor dts 5B 33 bits
pts és la marca de temps de visualització i dts és la marca de temps de descodificació. Les dues marques de temps són necessàries per a les dades de vídeo. Els pts i dts de les dades d’àudio són els mateixos, de manera que només es necessiten pts. Hi ha dues marques de temps, pts i dts, que són causades per fotogrames B. Les pts dels marcs I i P són iguals a dts. Si un vídeo no té fotogrames B, els punts sempre seran els mateixos que els dts. Llegiu els fotogrames de vídeo seqüencialment des del fitxer i la seqüència dels fotogrames extrets és la mateixa que la seqüència dts. L’algorisme dts és relativament senzill, el valor inicial + increment és suficient, el càlcul de pts és més complicat i s’ha d’afegir la compensació als dts.
Només hi ha pts al pes d’àudio (igual que els dts), els fotogrames I i P del vídeo han de tenir les dues marques de temps i el fotograma de vídeo B només necessita pts (igual que els dts). Per empaquetar pts i dts, heu de conèixer el tipus de fotograma de vídeo, però no podem jutjar el tipus de fotograma a través del format de contenidor. Heu d'analitzar el contingut h.264 per obtenir el tipus de marc.
per exemple:
IPBBBP
Ordre de lectura: 1 2 3 4 5 6
ordre dts: 1 2 3 4 5 6
ordre de pts: 1 5 3 2 4 6
Algorisme dts de vídeo a la carta:
dts = valor inicial + 90000 / video_frame_rate, el valor inicial es pot especificar arbitràriament, però és millor no prendre 0, video_frame_rate és la freqüència de fotogrames, com ara 23, 30.
pts i dts es basen en escala de temps, 1s = 90000 escala de temps, un fotograma ha de ser 90000 / video_frame_rate timeescale.
La divisió de l’escala de temps d’un fotograma per la freqüència de mostreig es pot convertir a la durada de reproducció d’un fotograma
Algorisme dts d'àudio a la carta:
dts = valor inicial + (90000 * audio_samples_per_frame) / audio_sample_rate, el valor de audio_samples_per_frame està relacionat amb el còdec, el valor AAC és 1024, el valor mp3 és 1158, audio_sample_rate és la freqüència de mostreig, com ara 24000, 41000. AAC descodifica un fotograma de 1024 mostres per canal, el que significa que la durada d'un fotograma és de 1024 / sample_rate segons. Per tant, la marca de temps de cada fotograma és 0, 1024 / sample_rate, ..., 1024 * n / sample_rate seconds.
Els dts i pts del vídeo en directe haurien d’utilitzar directament el temps del flux de dades en directe i no s’han de calcular mitjançant fórmules.
(3) es capa
La capa es fa referència a dades d'àudio i vídeo, només introduïm vídeo h.264 i àudio audio.
vídeo h.264:
Per empaquetar les dades h.264, hem d’afegir un nalu (unitat de capa d’abstracció de xarxa) a les dades de vídeo. El nalu inclou la capçalera nalu i el tipus nalu. La capçalera nalu està fixada a 0x00000001 (inici de fotograma) o 0x000001 (en fotograma). Les dades de h.264 es componen de talls i el contingut de les talls inclouen: vídeo, sps, pps, etc. El tipus nalu determina el contingut de les dades h.264 següents.
F 1b forbidden_zero_bit, h.264 estableix que ha de ser 0
NRI 2b nal_ref_idc, valor 0 ~ 3, indica la importància d’aquest nalu, I frame, sps, pps solen trigar 3, el frame P sol trigar 2 i el frame B sol prendre 0
El tipus 5b es refereix a la taula següent
nal_unit_type descripció
0 no s'utilitza
1 Imatge que no és IDR, IDR fa referència al marc clau
Partició A de 2 talls
Partició B de 3 talls
|
Introduïu el correu electrònic per obtenir una sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> afrikaans
sq.fmuser.org -> Albanès
ar.fmuser.org -> Àrab
hy.fmuser.org -> Armeni
az.fmuser.org -> Azerbaidjanès
eu.fmuser.org -> basc
be.fmuser.org -> bielorús
bg.fmuser.org -> Bulgària
ca.fmuser.org -> català
zh-CN.fmuser.org -> Xinès (simplificat)
zh-TW.fmuser.org -> Xinès (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> txec
da.fmuser.org -> Danès
nl.fmuser.org -> Holandès
et.fmuser.org -> estonià
tl.fmuser.org -> filipí
fi.fmuser.org -> finès
fr.fmuser.org -> Francès
gl.fmuser.org -> gallec
ka.fmuser.org -> georgià
de.fmuser.org -> alemany
el.fmuser.org -> Grec
ht.fmuser.org -> crioll haitià
iw.fmuser.org -> Hebreu
hi.fmuser.org -> Hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandès
id.fmuser.org -> indonesi
ga.fmuser.org -> irlandès
it.fmuser.org -> Italià
ja.fmuser.org -> japonès
ko.fmuser.org -> coreà
lv.fmuser.org -> Letó
lt.fmuser.org -> Lituània
mk.fmuser.org -> macedoni
ms.fmuser.org -> Malai
mt.fmuser.org -> maltès
no.fmuser.org -> Noruega
fa.fmuser.org -> persa
pl.fmuser.org -> Polonès
pt.fmuser.org -> Portuguès
ro.fmuser.org -> Romanès
ru.fmuser.org -> rus
sr.fmuser.org -> serbi
sk.fmuser.org -> Eslovac
sl.fmuser.org -> Eslovènia
es.fmuser.org -> Castellà
sw.fmuser.org -> Suahili
sv.fmuser.org -> Suec
th.fmuser.org -> Tai
tr.fmuser.org -> turc
uk.fmuser.org -> ucraïnès
ur.fmuser.org -> urdú
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> gal·lès
yi.fmuser.org -> Yiddish
FMUSER Wirless Transmet vídeo i àudio més fàcil!
Contacte
Adreça:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou Xina 510620
Categories
Newsletter