FMUSER Wirless Transmit Video and Audio Máis 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 -> árabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerí
eu.fmuser.org -> éuscaro
be.fmuser.org -> bielorruso
bg.fmuser.org -> Búlgaro
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chinés (simplificado)
zh-TW.fmuser.org -> Chinés (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> Checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estoniano
tl.fmuser.org -> filipino
fi.fmuser.org -> finés
fr.fmuser.org -> Francés
gl.fmuser.org -> galego
ka.fmuser.org -> xeorxiano
de.fmuser.org -> alemán
el.fmuser.org -> Grego
ht.fmuser.org -> crioulo haitiano
iw.fmuser.org -> Hebreo
hi.fmuser.org -> hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandés
id.fmuser.org -> indonesio
ga.fmuser.org -> irlandés
it.fmuser.org -> Italiano
ja.fmuser.org -> xaponés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituano
mk.fmuser.org -> macedonio
ms.fmuser.org -> malaio
mt.fmuser.org -> maltés
no.fmuser.org -> Norwegian
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> Portugués
ro.fmuser.org -> Romanés
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> Eslovaco
sl.fmuser.org -> Esloveno
es.fmuser.org -> castelán
sw.fmuser.org -> Suahili
sv.fmuser.org -> Sueco
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> ucraíno
ur.fmuser.org -> urdú
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
Hai uns días, pasei un tempo estudando a tecnoloxía de transmisión en directo HTTP (HLS) e implementar un codificador HLS, hlsliveencoder, escrito en C + +. A súa función é capturar a cámara e o micrófono, a codificación de vídeo H.264 en tempo real e a codificación de audio AAC e, segundo a especificación do protocolo HLS, xerar un ficheiro TS estándar e un ficheiro de índice m3u8. A través do meu hlsliveencoder e do servidor HTTP de terceiros (como nginx), realizamos con éxito a transmisión en directo de HTTP e pasamos a proba no iPhone. Aquí escribirei algúns dos beneficios.
1. Análise da tecnoloxía HLS
A transmisión en directo HTTP (HLS) é un protocolo de transporte de medios de transmisión baseado en HTTP implementado por Apple Inc., que pode realizar medios de transmisión en directo e baixo demanda. Úsase principalmente no sistema IOS para proporcionar solucións de audio e vídeo en directo e baixo demanda para dispositivos IOS (como iPhone e iPad). HLS baixo demanda é basicamente un HTTP segmentado común baixo demanda. A diferenza é que os seus segmentos son moi pequenos. Para realizar HLS baixo demanda, a clave é segmentar os ficheiros multimedia. Na actualidade, hai moitas ferramentas de código aberto que se poden empregar. Non vou discutilo aquí, só falo da tecnoloxía de transmisión en directo HLS.
En comparación cos protocolos de transmisión en directo comúns, como o protocolo RTMP, o protocolo RTSP, o protocolo MMS, etc., a maior diferenza da transmisión en directo HLS é que o cliente en directo non obtén un fluxo de datos completo. O protocolo HLS almacena o fluxo de datos en directo como ficheiros multimedia continuos, a curto prazo e longo prazo (formato mpeg-ts) no lado do servidor, mentres que o lado do cliente descarga e reproduce continuamente estes pequenos ficheiros, porque o lado do servidor sempre xera novos ficheiros a os últimos datos en directo, de xeito que o lado do cliente só precisa reproducir os ficheiros obtidos do servidor para poder realizar o directo. Pódese ver que HLS realiza basicamente emisións en directo mediante tecnoloxía VOD. Debido a que os datos transmítense a través do protocolo HTTP, non é necesario considerar o problema do firewall ou proxy e o tempo de segmentación dos ficheiros é moi curto. O cliente pode seleccionar e cambiar rapidamente a taxa de código para adaptarse á reprodución baixo diferentes condicións de ancho de banda. Non obstante, debido ás características técnicas de HLS, o seu atraso é sempre superior ao do protocolo de transmisión en directo ordinario.
Segundo o entendido anteriormente, para conseguir a transmisión en directo HTTP en directo, necesitamos estudar e implementar as seguintes tecnoloxías clave.
(1) Recolla os datos da fonte de vídeo e da fonte de audio
(2) Os datos orixinais están codificados por H264 e AAC
(3) Os datos de vídeo e audio están empaquetados como paquetes mpeg-ts
(4) Estratexia de xeración de segmentación HLS e ficheiro de índice m3u8
2. Protocolo de transporte HTTP
Entre eles, o primeiro e segundo puntos mencionáronse no meu artigo anterior e o último punto é que podemos usar o servidor HTTP existente, polo que a implementación do terceiro e cuarto punto é a clave.
(1) Marco e implementación do programa
A través da análise anterior, a lóxica e o proceso do codificador en directo HLS son basicamente claros: inicia o fío de codificación de audio e vídeo respectivamente, realiza a adquisición de audio e vídeo a través da tecnoloxía DirectShow (ou outra) e chama libx264 e libfaac respectivamente para vídeo e codificación de audio. Despois de que os dous fíos de codificación codifiquen os datos de audio e vídeo en tempo real, almacénanos nun ficheiro de segmento en formato mpeg-ts segundo a estratexia de partición personalizada. Cando se almacena un ficheiro de segmento, actualízase o ficheiro de índice m3u8. Como se mostra na seguinte figura:
Na figura anterior, despois de recibir os datos de vídeo e audio, hlsliveencoder primeiro debe determinar se a partición actual debería rematar e crear unha nova partición para continuar a xeración continua da partición TS. Cómpre ter en conta que a nova fragmentación debería comezar dende o cadro clave para evitar que o xogador decodifique o fallo. O código principal é o seguinte:
A interface de tsmuxer tamén é relativamente sinxela.
(2) Estratexia de xeración de segmentos HLS e m3u8
① Estratexia de segmentación
Recoméndase basicamente dividir a estratexia de segmentación de HLS cada 10 segundos. Por suposto, o tempo específico debe marcarse segundo a lonxitude real da división
En xeral, por mor da caché e outras razóns, os últimos enderezos de tres fragmentos gárdanse no ficheiro de índice e actualízanse en forma de "xanela deslizante".
② Introdución do ficheiro m3u8
M3u8 é o ficheiro de índice de transmisión en directo HTTP. M3u8 pode considerarse como. Arquivo en formato M3U basicamente, a diferenza é que o ficheiro m3u8 usa a codificación de caracteres UTF-8.
Copia o código
A cabeceira do ficheiro # Extm3u M3U debe colocarse na primeira liña
# Número de serie do primeiro segmento TS da secuencia ext-x-media
# Ext-x-targetduration a duración máxima de cada segmento TS
#Dext ext-x-allow-cache permite caché
#Final do ficheiro m3u8 ext-x-endlist
#Extinf información adicional, a información de ts divididos, como duración, ancho de banda, etc.
|
Introduce o correo electrónico para obter unha 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 -> árabe
hy.fmuser.org -> Armenian
az.fmuser.org -> azerí
eu.fmuser.org -> éuscaro
be.fmuser.org -> bielorruso
bg.fmuser.org -> Búlgaro
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chinés (simplificado)
zh-TW.fmuser.org -> Chinés (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> Checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estoniano
tl.fmuser.org -> filipino
fi.fmuser.org -> finés
fr.fmuser.org -> Francés
gl.fmuser.org -> galego
ka.fmuser.org -> xeorxiano
de.fmuser.org -> alemán
el.fmuser.org -> Grego
ht.fmuser.org -> crioulo haitiano
iw.fmuser.org -> Hebreo
hi.fmuser.org -> hindi
hu.fmuser.org -> Hungarian
is.fmuser.org -> islandés
id.fmuser.org -> indonesio
ga.fmuser.org -> irlandés
it.fmuser.org -> Italiano
ja.fmuser.org -> xaponés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituano
mk.fmuser.org -> macedonio
ms.fmuser.org -> malaio
mt.fmuser.org -> maltés
no.fmuser.org -> Norwegian
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> Portugués
ro.fmuser.org -> Romanés
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> Eslovaco
sl.fmuser.org -> Esloveno
es.fmuser.org -> castelán
sw.fmuser.org -> Suahili
sv.fmuser.org -> Sueco
th.fmuser.org -> Thai
tr.fmuser.org -> turco
uk.fmuser.org -> ucraíno
ur.fmuser.org -> urdú
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
FMUSER Wirless Transmit Video and Audio Máis fácil!
contacto
dirección:
No.305 Sala HuiLan Building No.273 Huanpu Road Guangzhou China 510620
categorías
boletín informativo