Cómo convertir una transmisión HTTP a RTMP usando VLC o FFMPEG
Según Wikipedia: "El Protocolo de mensajería en tiempo real (RTMP) fue originalmente un protocolo propietario desarrollado por Macromedia para transmitir audio, vídeo y datos a través de Internet hacia y desde Macromedia. Macromedia ahora es Adobe. Por lo tanto, , Adobe ha publicado una versión incompleta de la especificación para uso público "
El protocolo RTMP tiene los siguientes parámetros:
RTMP: puerto TCP 1935 utilizado originalmente
< p. >RTMPS: Un mecanismo de seguridad para cargar RTMP en SSL, similar a HTTPS.RTMPS: Un mecanismo de seguridad para cargar RTMP en SSL, similar a HTTPS.
RTMPE: Utiliza una versión cifrada de RTMP desarrollada por Adobe.
RTMPT: El protocolo RTMP encapsula el protocolo RTMP en una solicitud HTTP transitable por firewall. Este es un protocolo excelente para eludir los firewalls corporativos utilizando los puertos TCP 80 y 443. Las sesiones encapsuladas pueden contener paquetes RTMP, RTMPS o RTMPE simples.
Transmisión RTMP
VLC admite el protocolo RTMP en la versión 2.0.x. Por ejemplo, 2.0.2, 2.0.3, 2.0.4 y 2.0.6 no son compatibles con servidores Windows 2008 Server 64. Puede habilitar VLC y luego habilitar la transmisión en red, como "RTMP://aaa.bbb.com:1935/live/streaming source" y ver si se abre. La razón principal es que VLC 2.0.x usa bibliotecas ffmpeg/libav, pero algunos paquetes no admiten estas bibliotecas. Entonces tengo que comprobarlo primero. RTMPS funcionará correctamente si la compatibilidad con librtmp está habilitada en ffmpeg/libav.
Las soluciones VLC y RTMP están destinadas principalmente a aplicaciones de captura y transcodificación que generan un único flujo. Se distribuye a múltiples clientes a través de otra aplicación. Esto es muy importante en Wowza. Aunque Wowza también admite VLC usando UDP/RTP/RTSP para recibir transmisiones, es muy inestable en muchos casos.
Los LC conectados directamente a transmisiones RTMP (como Wowza) no escuchan las solicitudes entrantes. Por lo tanto, no es posible ver transmisiones RTMP directamente desde VLC. Esto se puede hacer a través de VLC:
$ vlc rtmp://rtmp.server.com:1935/path/to/stream Debes recordar una cosa. La transmisión RTMP desde VLC al servidor Wowza no siempre es estable. Hay algunos "errores" relacionados con el tiempo que hacen que Wowza cierre la conexión. Estos problemas están relacionados con las marcas de tiempo de "audio" y "vídeo". No es una buena idea utilizar la opción "Audio Sync" para integrar RTMP, pero se puede ajustar y modificar.
Transmisión RTMP de cámara web
La siguiente es una aplicación de cámara web. Otros son dispositivos de captura, equipos, documentación en vídeo y otras aplicaciones.
Ejemplo de Windows
Los dispositivos de captura en Windows utilizan la interfaz DirectShow.
Esta interfaz también la utilizan módulos en VLC llamados "DirectShow" o "dshow". Aquí hay un ejemplo:
$ vlc dshow://"" --sout '#transcode{vcodec=h264, vb=300, fps=25, scale=1, acodec=mp4a, ab=64 , canales=2}: std{access=rtmp, mux= ffmpeg{mux=flv}, dst=rtmp://rtmp.server.com:1935/path/to/stream}' También hay una opción DirectShow en el Interfaz QT
Ejemplos de Linux
Los dispositivos de captura de Linux suelen utilizar la interfaz "video para Linux" (v4l2). vb=300, fps=25, escala=1, acodec=mp4a, ab=64, canal=2}: std{access=rtmp, mux=ffmpeg{mux=flv}, dst=rtmp://rtmp.server. com:1935/path/to/stream}" detectará automáticamente los dispositivos v4l2 y seleccionará el primer dispositivo para capturar la señal. También puede configurar otros parámetros como el estándar de vídeo (PAL, NTSC), croma, ancho, largo, etc. Cabe señalar que la configuración de estos parámetros depende del dispositivo. Cuando usamos el modo de depuración (-vvv), el módulo de video para Linux (v4l2) que viene con VLC mostrará los valores que aparecen durante la ejecución. proporciona las siguientes opciones de optimización:
-v4l2-dev=: Especifique el dispositivo específico para capturar
-v4l2-standard=: Qué estándar de video usar, como SECAM, PAL, NTSC, etc.
-v4l2-width=: El ancho de la presentación del video (en píxeles)
- v4l2-height=: La longitud de la presentación del video (en píxeles)
La introducción anterior Opciones de parámetros para v4l2 Se puede encontrar información completa sobre el módulo v4l2 usando el siguiente comando
$ vlc -H -p v4l2 --advanced Aquí hay otra forma de hacerlo. transcodificar secuencias http a RTMP Aplicable a servidores de vídeo como Adobe Flash Media Server o Wowza Media Server