El programa de transmisión Qt (archivo de video/transmisión de video/cámara/escritorio convertido a medios de transmisión rtmp+hls+webrtc) se puede ver de forma remota en páginas web y reproductores

1. Introducción

Push streaming es el proceso de transmisión del contenido empaquetado en la etapa de recopilación al servidor. De hecho, es el proceso de empaquetar y transmitir la señal de video en vivo desde el teléfono móvil, la computadora y la cámara al servidor. "Push streaming" tiene requisitos relativamente altos en la red. Si la red es inestable, el efecto de la transmisión en vivo será deficiente y la audiencia experimentará congelaciones al ver la transmisión en vivo y la experiencia de visualización será deficiente. Los principales protocolos de inserción incluyen RTMP, HLS, SRT, etc. RTMP es actualmente el protocolo de transmisión de medios de transmisión por secuencias más convencional. Es compatible con CDN y es menos difícil de implementar. Es la elección de la mayoría de las plataformas de transmisión en vivo. El retraso de la transmisión RTMP suele ser de 1 a 3 segundos, lo que es adecuado para teléfonos móviles. Sin embargo, RTMP no es compatible con los navegadores. Si el servicio de transmisión en vivo requiere un navegador, se requiere compatibilidad con el protocolo push adicional. HLS es un protocolo de transmisión en tiempo real de medios de transmisión basado en HTTP definido por Apple. HLS realiza la experiencia de transmisión en vivo con tecnología bajo demanda. Debido a que la duración de cada archivo pequeño es muy breve, el cliente puede cambiar rápidamente la tasa de bits para adaptarse a la reproducción en diferentes condiciones de ancho de banda. Sin embargo, la latencia de HLS es generalmente más alta que la de los protocolos de transmisión en vivo ordinarios. RTC es un protocolo de código abierto que admite navegadores para conversaciones de voz y video en tiempo real. RTC es compatible con los principales navegadores actuales y tiene buena estabilidad incluso cuando la señal de la red es normal. Puede realizar la comunicación punto a punto, y la demora entre las partes de la comunicación es baja.Es una mejor opción para realizar la función de "micrófono conectado".

Pull streaming es para retransmitir videos desde otras plataformas. Es el proceso de extraer el contenido en vivo existente del servidor con la dirección especificada. El cliente envía una solicitud de acceso al servidor para la dirección de transmisión del archivo de video, luego accede a la plataforma bajo demanda para distribuir la transmisión de video en vivo y luego recibe los datos de video distribuidos para lograr el efecto de ver la retransmisión. video en la plataforma de terceros. Las secuencias push y pull básicamente usan ffmpeg, y el código ffmpeg se puede usar para implementar la reproducción de secuencias push y pull, pero los servidores de transmisión de medios generalmente eligen ruedas de componentes de terceros, como mediamtx, srs, EasyDarwin, LiveQing, ZLMediaKit, etc. Preferencia personal es usar mediamtx, publicación de un solo archivo y funciones satisfactorias. La escritura de Go es inherentemente de alta concurrencia, de código abierto y gratuita.

2. Características

2.1 Empuje de archivos

  1. Especifique la tarjeta de red y el puerto de escucha, y reciba solicitudes de red para enviar varios archivos, como audio y video.
  2. Las estadísticas en tiempo real muestran el número de visitas correspondientes a cada archivo, el número total de visitas y el número de visitas desde diferentes direcciones IP.
  3. Se pueden especificar varios modos, 0 reproducción directa, 1 reproducción de descarga.
  4. La impresión en tiempo real muestra varios datos de solicitud y respuesta de envío y recepción.
  5. Cada archivo corresponde a un identificador único encriptado MD5, que se utiliza para solicitar el sufijo de la dirección para distinguir a qué archivo acceder.
  6. Admite varios navegadores (Google chromium/Microsoft edge/Firefox firefox, etc.), varios reproductores (vlc/mpv/ffplay/potplayer/mpchc, etc.) para abrir solicitudes.
  7. Durante el proceso de reproducción, el progreso de la reproducción se puede cambiar arbitrariamente y se admite la reproducción a doble velocidad.
  8. El historial de nombres del archivo que debe transmitirse se almacena automáticamente y se abre para cargar la aplicación.
  9. Cambie de archivo para obtener la dirección de acceso y copie automáticamente la dirección en el portapapeles para pegarla y probarla directamente.
  10. Uso de CPU extremadamente bajo, la transmisión simultánea de 1080P de 128 canales es menos del 1% de uso de CPU, mecanismo de envío de datos asíncrono.
  11. Comunicación pura QTcpSocket, no depende del programa de servicio de transmisión de medios, el código fuente central tiene menos de 500 líneas, con anotaciones detalladas y funciones completas.
  12. Admite cualquier versión de Qt4/Qt5/Qt6, admite cualquier sistema (windows/linux/macos/android/embedded linux, etc.).

2.2 Transmisión en red

  1. Admite varios archivos de video locales y archivos de video en red.
  2. Admite varias transmisiones de video en red, cámaras web, protocolos que incluyen rtsp, rtmp, http.
  3. Admite la transmisión de dispositivos de cámara locales y se puede especificar la resolución y la velocidad de fotogramas.
  4. Admite la transmisión de escritorios locales, especificando el área de la pantalla y la velocidad de fotogramas, etc.
  5. Inicie automáticamente el programa de servicio de transmisión de medios, el mediamtx predeterminado (anteriormente rtsp-simple-server), puede elegir srs, EasyDarwin, LiveQing, ZLMediaKit, etc.
  6. Puede cambiar y obtener una vista previa de los archivos de video en tiempo real.
  7. La claridad y la calidad de la transmisión se pueden ajustar.
  8. Los archivos, directorios y direcciones se pueden agregar dinámicamente.
  9. Los archivos de video se transmiten automáticamente en un bucle. Si la fuente de video es una transmisión de video, se volverá a conectar automáticamente después de desconectarse.
  10. La transmisión de video en red se vuelve a conectar automáticamente, la reconexión se realiza correctamente y la transmisión continuará automáticamente.
  11. El rendimiento en tiempo real de la transmisión de video en red es extremadamente alto y la demora es extremadamente baja. El tiempo de demora es de aproximadamente 100 ms.
  12. Uso de CPU extremadamente bajo, 4 canales de transmisión de flujo principal solo necesitan ocupar el 0,2% de la CPU. Teóricamente, no hay presión para impulsar 100 canales en máquinas de PC ordinarias convencionales, y el principal cuello de botella de rendimiento se encuentra en la red.
  13. Después de enviar la transmisión, además de usar la dirección rtmp para acceder, también admite el acceso directo a hls/webrtc, y puede abrir directamente el navegador para ver la pantalla en tiempo real.
  14. Puede enviar la transmisión al servidor de red externo y luego reproducir la transmisión de video correspondiente a través de teléfonos móviles, computadoras, tabletas y otros dispositivos.
  15. Admite cualquier versión de Qt4/Qt5/Qt6, admite cualquier sistema (windows/linux/macos/android/embedded linux, etc.).

3. Dirección de experiencia

  1. Dirección de la experiencia: https://pan.baidu.com/s/1d7TH_GEYl5nOecuNlWJJ7g Código de extracción: 01jf Nombre: bin_video_push
  2. Sitio nacional: https://gitee.com/feiyangqingyun
  3. Sitio internacional: https://github.com/feiyangqingyun
  4. Página de inicio personal: https://blog.csdn.net/feiyangqingyun
  5. Página de inicio de Zhihu: https://www.zhihu.com/people/feiyangqingyun/

4. Usar pasos

4.1 Transmisión de archivos

  1. Seleccione o complete la dirección IP de la tarjeta de red que se va a monitorear, complete el puerto de escucha y se recomienda establecer los valores predeterminados.
  2. Haga clic en Agregar archivo o directorio, seleccione los archivos de audio y video que se agregarán a la transmisión push y se incluirán automáticamente en la tabla una vez que la adición se haya realizado correctamente.
  3. Haga clic en el botón Iniciar servicio, cambiará para detener el servicio, lo que indica que el servicio se inició correctamente.
  4. Seleccione una línea de la tabla, la dirección de reproducción del archivo de audio y video se completará automáticamente en la esquina inferior derecha y también se copiará automáticamente en el portapapeles.
  5. Pegue la dirección en la barra de direcciones del navegador y presione Entrar para ver la reproducción de audio y video, y puede cambiar el progreso de la reproducción de forma arbitraria.
  6. Abra la dirección con vlc u otros reproductores para ver la reproducción de audio y video, y puede cambiar el progreso de la reproducción de forma arbitraria.
  7. El servicio de transmisión de archivos admite múltiples solicitudes simultáneas, y la tabla mostrará la cantidad de solicitudes que se realizan para cada archivo, y la esquina inferior derecha también cuenta la cantidad total de solicitudes, así como la cantidad total de solicitudes de diferentes direcciones IP.
  8. Al hacer clic en el botón de detener el servicio, se detendrán todos los servicios. Debido a la existencia del caché, el video en el caché puede continuar reproduciéndose después de detenerse, pero no se reproducirá después de un período de tiempo.
  9. Admite la adición dinámica de archivos, la eliminación de archivos y la eliminación de archivos después de iniciar el servicio.

4.2 Transmisión en red

  1. Seleccione o complete la dirección de prefijo de la transmisión push, se recomienda la predeterminada.
  2. Haga clic en Agregar archivo o directorio, seleccione los archivos de audio y video que se agregarán a la transmisión push y se incluirán automáticamente en la tabla una vez que la adición se haya realizado correctamente.
  3. Haga clic en Agregar dirección, puede seleccionar o completar desde el cuadro desplegable, las opciones desplegables son algunas plantillas de formato, como cámara local, escritorio local, estación de TV, cámara de red, etc.
  4. Haga clic en el botón Iniciar servicio, cambiará para detener el servicio, lo que indica que el servicio se inició correctamente.
  5. Después de iniciar el servicio, admite la adición dinámica de direcciones, la eliminación de direcciones y la eliminación de direcciones. Si está en el servicio de inicio, enviará la transmisión inmediatamente después de agregarla.
  6. Seleccione una línea de la tabla, la dirección de reproducción se completará automáticamente en la esquina inferior derecha y también se copiará automáticamente en el portapapeles.
  7. Se puede acceder a una transmisión push desde diferentes direcciones. Hay tres direcciones en la esquina inferior derecha. La primera es la dirección de la transmisión de video que comienza con rtmp, que pueden abrir varios jugadores. La segunda es la dirección en hls (m3u8 ), generalmente se utiliza para la visualización de navegadores web, y el tercer tipo es la dirección en formato webrtc, que generalmente se usa en navegadores o reproductores que soportan parcialmente este formato.
  8. Pegue la dirección en la barra de direcciones del navegador y presione Entrar para ver la transmisión de video, y la dirección también se puede abrir con un reproductor.
  9. Al hacer clic en el botón de detener el servicio, se detendrán todos los servicios y se admitirá la adición dinámica de archivos, la eliminación de archivos y la eliminación de archivos después de iniciar los servicios.

Cinco, representaciones

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/feiyangqingyun/article/details/130656915
Recomendado
Clasificación