FMUSER ¡Transmite video y audio sin cables más fácilmente!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikáans
sq.fmuser.org -> albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenio
az.fmuser.org -> azerbaiyano
eu.fmuser.org -> Vasco
be.fmuser.org -> bielorruso
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chino (simplificado)
zh-TW.fmuser.org -> Chino (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estonio
tl.fmuser.org -> filipino
fi.fmuser.org -> finlandés
fr.fmuser.org -> Francés
gl.fmuser.org -> gallego
ka.fmuser.org -> georgiano
de.fmuser.org -> alemán
el.fmuser.org -> Griego
ht.fmuser.org -> criollo 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 -> japonés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituania
mk.fmuser.org -> macedonio
ms.fmuser.org -> malayo
mt.fmuser.org -> maltés
no.fmuser.org -> Noruega
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> portugués
ro.fmuser.org -> Rumano
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> eslovaco
sl.fmuser.org -> Eslovenia
es.fmuser.org -> español
sw.fmuser.org -> Swahili
sv.fmuser.org -> sueco
th.fmuser.org -> Tailandés
tr.fmuser.org -> turco
uk.fmuser.org -> ucraniano
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
1 、 Desarrollo de transmisión en vivo de video móvil
Se puede ver que, desde la PC al móvil, cada vez hay más aplicaciones de transmisión en vivo en línea, y la transmisión móvil ha entrado en una etapa de explosión sin precedentes. Sin embargo, para la mayoría de las transmisiones móviles en vivo, todavía lo implementan principalmente clientes nativos, pero HTML5 también juega un papel insustituible en el extremo de la transmisión en vivo móvil, como HTML5 Con las ventajas de una transmisión rápida y fácil de lanzar, HTML5 también puede reproducir en vivo video cuando es el más importante.
La transmisión en vivo completa se puede dividir en lo siguiente:
(1) Terminal de grabación de video: en términos generales, es un dispositivo de entrada de audio y video de computadora o una cámara o micrófono en el terminal móvil. Actualmente, el video del teléfono móvil es la parte principal.
(2) Reproductor de video: puede ser un reproductor en la computadora, un reproductor nativo en el lado del teléfono móvil y una etiqueta de video de HTML5. En la actualidad, sigue siendo el principal reproductor nativo del teléfono móvil.
(3) Servidor de video: generalmente, es un servidor nginx, que se utiliza para aceptar la fuente de video proporcionada por el lado de grabación de video y proporcionar el servicio de transmisión hasta el final de la reproducción de video.
2, grabación de video HTML5:
Para la grabación de video HTML5, el poderoso webrtc (comunicación WEB en tiempo real) es una tecnología que admite conversaciones de voz o video en tiempo real en el navegador web. La desventaja es que solo se admite mejor en PC Chrome y el lado móvil no es ideal.
El proceso básico de grabación de video con webrtc es:
Llame a window.navigator.webkitGetUserMedia (obtenga los datos de video de la cámara de la PC del usuario).
Convierta los datos adquiridos en flujo de video a window.webkitRTCPeerConnection (un formato de datos de flujo de video).
Uso de websocket para transferir datos de transmisión de video al servidor
Debido a que muchos métodos deben tener un prefijo con el navegador, muchos navegadores móviles no son compatibles con webrtc, por lo que el cliente (IOS, Android) aún implementa la grabación de video real y el efecto será mejor.
3, transmisión de video en vivo HTML5:
Para la reproducción de video, puede usar el protocolo HLS (transmisión en vivo HTTP) para reproducir transmisión en vivo. Tanto IOS como Android son compatibles con este protocolo de forma natural. Es simple de configurar y usar etiquetas de video directamente.
Aquí hay un código simple para reproducir video en vivo usando video:
(1) que es el protocolo HLS:
En resumen, todo el flujo se divide en pequeños archivos, que se descargan en base a HTTP. Solo algunos se descargan a la vez. El archivo mencionado anteriormente de .M3u8 introducido en la transmisión de video en vivo HTML5 se basa en el protocolo HLS, que almacena los metadatos del flujo de video.
Cada archivo .M3u8 corresponde a varios archivos TS, que son los datos para el almacenamiento de video real. El archivo m3u8 solo almacena la información de configuración y las rutas relacionadas de algunos archivos TS. Cuando se reproduce el video, el archivo .M3u8 cambia dinámicamente. La etiqueta de video analizará el archivo y buscará el archivo TS correspondiente para reproducir. Entonces, para acelerar la velocidad, el archivo .M3u8 se utilizará para analizar el archivo y encontrar el archivo TS correspondiente para su reproducción. Por lo tanto, para acelerar la velocidad, se utilizará el archivo .M3u8 para analizar el archivo y encontrar el archivo TS correspondiente para su reproducción. Por lo tanto, para acelerar, colóquelo en el servidor web y el archivo TS en la CDN.
El archivo .M3u8 es en realidad un archivo M3U codificado con UTF-8. Este archivo no se puede reproducir por sí mismo, solo el archivo de texto que contiene la información de reproducción.
(2) Proceso de solicitud de HLS:
La URL de la solicitud HTTP m3u8.
El servidor devuelve una lista de reproducción de m3u8, que se actualiza en tiempo real. Generalmente, la URL de 5 segmentos de datos se proporciona a la vez.
El cliente analiza la lista de reproducción de m3u8 y luego solicita la URL de cada segmento para obtener el flujo de datos de TS.
(3) Retraso de la transmisión en vivo de HLS:
Sabemos que el protocolo HLS divide la transmisión en vivo en un pequeño segmento de video para descargar y reproducir. Entonces, suponga que la lista contiene 5 archivos TS, cada archivo TS contiene 5 segundos de contenido de video, luego la demora general es de 25 segundos. Porque cuando ve estos videos, el anfitrión grabó el video y lo subió, por lo que el retraso es causado por esto. Por supuesto, la longitud de la lista y el tamaño de un solo archivo TS se pueden acortar para reducir el retraso. En el extremo, la longitud de la lista se puede reducir a 1 y la duración de TS es 1 s. Sin embargo, esto aumentará el número de solicitudes y aumentará la presión del servidor. Cuando la velocidad de la red es lenta, se generará más búfer. Por lo tanto, el tiempo de TS recomendado por Apple oficialmente es de 10 segundos, por lo que cambiará en gran medida el retraso de 30 segundos. Entonces, el servidor recibe la transmisión, la transcodifica, guarda, corta el bloque y luego lo distribuye al cliente. Aquí está la causa principal del retraso.
Si tiene más preguntas sobre retrasos, consulte la dirección oficial de Apple:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StreamingMediaGuide/FrequentlyAskedQuestions/FrequentlyAskedQuestions.html
Sin embargo, el video en vivo HTML5 tiene algunas ventajas insustituibles:
① Buena comunicación, fácil de compartir y otras operaciones.
② Se puede lanzar de forma dinámica, lo que favorece la iteración en tiempo real de los requisitos del producto y un lanzamiento rápido.
③ Sin instalar la aplicación, abra el navegador directamente.
4 collection IOS recopilación (grabación) de datos de audio y video OS
Para la adquisición y grabación de audio y video, primero, se aclaran los siguientes conceptos:
(1) Codificación de video: la codificación de video se refiere a la forma en que un archivo en un formato de video se convierte en otro archivo de formato de video a través de una tecnología de compresión específica. El video grabado por el iPhone que usamos debe codificarse, cargarse y decodificarse antes de que pueda reproducirse en el reproductor del lado del usuario.
(2) Estándar de códec: los estándares de códec más importantes en la transmisión de secuencias de video incluyen H.261, H.263 y H.264 de ITU, en los que el protocolo HLS admite la codificación de formato H.264.
(3) Codificación de audio: similar a la codificación de video, el flujo de audio original se codifica, carga, decodifica de acuerdo con ciertos estándares y se reproduce en el reproductor. Por supuesto, el audio también tiene muchos estándares de codificación, como el código PCM, el código wma, el código AAC, etc. El método de codificación de audio compatible con nuestro protocolo HLS es el código AAC.
La adquisición de datos de video y audio se divide principalmente en los siguientes pasos:
(1) la adquisición de datos de video y audio usando la cámara en IOS
(2) En IOS, el flujo de datos de audio y video original se puede recopilar mediante avcapturesession y avcapturedevice.
(3) El video está codificado con h264 y el audio está codificado AAC. En IOS, ya existen bibliotecas de codificación empaquetadas para realizar la codificación de audio y video.
(4) Los datos de audio y video después de la codificación se ensamblan y sellan;
(5) Establezca la conexión RTMP y empújela hacia el servidor.
El siguiente es el proceso específico de recopilación de datos de audio y video:
(1) acerca de RTMP:
El protocolo de mensajería en tiempo real (RTMP) es un conjunto de protocolos de video en vivo desarrollado por Macromedia y ahora pertenece a adobe. Al igual que con HLS, se puede utilizar para la transmisión de video. La diferencia es que RTMP no se puede reproducir en el navegador IOS basado en flash, pero es mejor en tiempo real que HLS. Por lo tanto, este protocolo se usa generalmente para cargar secuencias de video, es decir, la transmisión de video se envía al servidor.
(2) flujo de empuje
El llamado streaming se refiere al envío de los datos de audio y video que hemos codificado al servidor de transmisión de video. En el código IOS, la transmisión RTMP se usa comúnmente. Librtmp IOS, una biblioteca de terceros, se puede utilizar para la transmisión. Librtmp encapsula algunas API principales para que los usuarios las llamen. Por ejemplo, envíe la API y así sucesivamente, configure la dirección del servidor y luego envíe la transmisión de video de transcodificación al servidor.
Entonces, ¿cómo construir un servidor de transmisión?
Se construye un servidor de transmisión simple. Dado que la transmisión de video que cargamos se basa en el protocolo RTMP, el servidor debe admitir RTMP. Puede tomar los siguientes pasos:
(1) Instale un servidor nginx.
(2) La extensión RTMP de nginx está instalada. Configurar el archivo conf para nginx
(3) Reinicie nginx y escriba la dirección de transmisión de RTMP como rtmp: // ip: 1935 / hls / mystream, donde HLS_ Path representa la dirección de los archivos generados.M3u8 y TS, HLS_ Fragment representa la longitud del segmento y mystream representa una instancia. El nombre del archivo que se generará se puede establecer por sí mismo.
5 、 Interacción del usuario en transmisión en vivo:
Para la interacción del usuario en la transmisión en vivo, se puede dividir a grandes rasgos en:
dando regalos.
Comentar o jugar
Para la entrega de obsequios, DOM y CSS3 se pueden utilizar para realizar la lógica del envío de obsequios y algunas animaciones especiales de obsequio en HTML5. Las dificultades técnicas no son muy grandes.
Para que un bombardeo sea un poco más complejo, es posible que deba prestar atención a lo siguiente:
El rendimiento en tiempo real del proyectil se puede enviar y recibir en tiempo real por webscock y renderizar.
Para los navegadores que no son compatibles con websocket, solo se pueden degradar a un sondeo largo o solicitudes de envío de temporizador de front-end para obtener una ventana emergente en tiempo real.
Detección de animación y colisión (es decir, sin superposición) y así sucesivamente en el renderizado
|
Ingrese el correo electrónico para recibir una sorpresa
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org -> Afrikáans
sq.fmuser.org -> albanés
ar.fmuser.org -> árabe
hy.fmuser.org -> Armenio
az.fmuser.org -> azerbaiyano
eu.fmuser.org -> Vasco
be.fmuser.org -> bielorruso
bg.fmuser.org -> Bulgaria
ca.fmuser.org -> catalán
zh-CN.fmuser.org -> chino (simplificado)
zh-TW.fmuser.org -> Chino (tradicional)
hr.fmuser.org -> croata
cs.fmuser.org -> checo
da.fmuser.org -> danés
nl.fmuser.org -> Holandés
et.fmuser.org -> estonio
tl.fmuser.org -> filipino
fi.fmuser.org -> finlandés
fr.fmuser.org -> Francés
gl.fmuser.org -> gallego
ka.fmuser.org -> georgiano
de.fmuser.org -> alemán
el.fmuser.org -> Griego
ht.fmuser.org -> criollo 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 -> japonés
ko.fmuser.org -> coreano
lv.fmuser.org -> letón
lt.fmuser.org -> Lituania
mk.fmuser.org -> macedonio
ms.fmuser.org -> malayo
mt.fmuser.org -> maltés
no.fmuser.org -> Noruega
fa.fmuser.org -> persa
pl.fmuser.org -> polaco
pt.fmuser.org -> portugués
ro.fmuser.org -> Rumano
ru.fmuser.org -> ruso
sr.fmuser.org -> serbio
sk.fmuser.org -> eslovaco
sl.fmuser.org -> Eslovenia
es.fmuser.org -> español
sw.fmuser.org -> Swahili
sv.fmuser.org -> sueco
th.fmuser.org -> Tailandés
tr.fmuser.org -> turco
uk.fmuser.org -> ucraniano
ur.fmuser.org -> Urdu
vi.fmuser.org -> Vietnamita
cy.fmuser.org -> galés
yi.fmuser.org -> Yiddish
FMUSER ¡Transmite video y audio sin cables más fácilmente!
Contacto
Dirección:
Habitación No.305 Edificio HuiLan No.273 Huanpu Road Guangzhou China 510620
Categorías
Newsletter